Metadata-Version: 2.1
Name: ioemu
Version: 0.1.3
Summary: IO Emulator with LEDs and buttons
Home-page: https://github.com/tbs1-bo/ioemu
Author: Marco Bakera
Author-email: marco@bakera.de
License: UNKNOWN
Description: 
        # ioemu
        
        ![screenshot](ioemu-screenshot.png)
        
        The ioemu-project provides an  emulator for input/output operations with simple electronic components like LEDs and push buttons.
        
        ## Installation and Upgrade
        
        Use pip for a simple installation. For an update use `install --update`. 
        
        - Linux, MacOS: `python3 -m pip install ioemu`
        - Windows: `python -m pip install ioemu`
        
        ## Starting the emulator
        
        First start the emulator by entering `ioemu` on the commandline. A Gui will show up.
        
        ![screenshot](ioemu-screenshot.png)
        
        It contains a slider for analog values between 0 and 99, threee LEDs and two push buttons from left to right.
        
        ## LEDs
        
        If the emulator is running, you can interact with it from any python program running on the same machine. First import the class `Emulator` from the `ioemu` package.
        
        
        ```python
        from ioemu import Emulator
        ```
        
        Now create an instance of the emulator and switch some LEDs on. They can be controlled by setting the `leds` attribute.
        
        
        ```python
        emu = Emulator()
        emu.leds = [True, False, True]
        ```
        
        ## Buttons
        
        ![screenshot](buttons.gif)
        
        The emulator has two buttons. Their current state (pressed or not pressed) can be read from the attribute `buttons`. It's a bool array corresponding to the state of being pressed.
        
        The following program lights up some LEDs depending on the button being pressed.
        
        
        ```python
        emu = Emulator()
        while True:
            if emu.buttons[0]:
                emu.leds = [False, True, True]
                
            if emu.buttons[1]:
                emu.leds = [True, True, False]
        
            if not (emu.buttons[0] or emu.buttons[1]):
                emu.leds = [False, False, False]
        ```
        
        ## Analog Value (0-99)
        
        Let's look into a program that allows you to control the LEDs with the slider at the left. The current sliders value can be read from the `analog_value` attribute of the Emulator. Its value ranges from 0 to 99.
        
        ![image](analog_value.gif)
        
        
        ```python
        import time
        
        emu = Emulator()
        led_on = 0
        
        while True:
            if 0 <= emu.analog_value < 25:
                emu.leds = [False, False, False]
            elif 25 <= emu.analog_value < 50:
                emu.leds = [True, False, False]
            elif 50 <= emu.analog_value < 75:
                emu.leds = [True, True, False]
            else:
                emu.leds = [True, True, True]
        ```
        
        ## Demo
        
        There is a demo program that can be started with `python -m ioemu.demo`. It will blink the LEDs and print the current button state as well as the analog value to console.
        
        ![demo](demo.gif)
        
        You can find the source code in [demo.py](ioemu/demo.py).
        
        ## Bugs
        
        If you find any bugs or have a feature request, feel free to file a ticket at the projects [bugtracker](https://github.com/tbs1-bo/ioemu/issues/new) at github.
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
