API¶
State Diagram¶
stateDiagram-v2
disconnected: Disconnected
stu_connected: STU Connected
sensor_node_connected: Sensor Node Connected
disconnected --> stu_connected: connect_stu
stu_connected --> disconnected: disconnect_stu
stu_connected --> stu_connected: enable_ota, collect_sensor_nodes, reset
stu_connected --> sensor_node_connected: connect_sensor_node_mac
sensor_node_connected --> stu_connected: disconnect_sensor_node
System¶
- class icostate.ICOsystem¶
Stateful access to ICOtronic system
- async connect_stu()¶
Connect to STU
- Return type:
None
Examples
Import necessary code
>>> from asyncio import run
Connect and disconnect from STU
>>> async def connect_disconnect_stu(icosystem: ICOsystem): ... states = [icosystem.state] ... await icosystem.connect_stu() ... states.append(icosystem.state) ... await icosystem.disconnect_stu() ... states.append(icosystem.state) ... return states >>> run(connect_disconnect_stu(ICOsystem())) [Disconnected, STU Connected, Disconnected]
- async disconnect_stu()¶
Disconnect from STU
- Return type:
None
- async reset_stu()¶
Reset STU
- Return type:
None
Examples
Import necessary code
>>> from asyncio import run
Reset a connected STU
>>> async def reset_stu(icosystem: ICOsystem): ... await icosystem.connect_stu() ... await icosystem.reset_stu() ... await icosystem.disconnect_stu() >>> run(reset_stu(ICOsystem()))
Resetting the STU will not work if the STU is not connected
>>> async def reset_stu_without_connection(icosystem: ICOsystem): ... await icosystem.reset_stu() >>> run(reset_stu_without_connection( ... ICOsystem())) Traceback (most recent call last): ... icostate.error.IncorrectStateError: Resetting STU only allowed in the state: STU Connected