Versatile and flexible Python State Machine library - Micropython Port
Project description
upysm
Versatile and flexible Python State Machine library - Micropython Port
This repository is basically a set of tools to build and deploy (to pypi) the Micropython Port of the pysm library.
It's successfully tested against the ESP-32S ESP-WROOM-32 NodeMCU board.
Installation
import upip upip.install('upysm')
Usage
Basic usage:
import machine import time from pysm import State, StateMachine, Event led = machine.Pin(2, machine.Pin.OUT) def on_enter(state, event): led.value(1) time.sleep(0.1) def on_exit(state, event): led.value(0) time.sleep(0.1) on = State('on') off = State('off') sm = StateMachine('sm') sm.add_state(on, initial=True) sm.add_state(off) sm.add_transition(on, off, events=['off']) sm.add_transition(off, on, events=['on']) on.handlers = {'enter': on_enter, 'exit': on_exit} off.handlers = {'enter': on_enter, 'exit': on_exit} sm.initialize() assert sm.state == on sm.dispatch(Event('off')) assert sm.state == off sm.dispatch(Event('on')) assert sm.state == on
For more examples and API description refer to the pysm documentation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
upysm-0.3.7.tar.gz
(9.3 kB
view hashes)