Remote Firmata Management
The methods in this section allow your application to perform some Firmata management functions remotely.
keep_alive
For Arduino's utilizing an ATmega328P processor, this exclusive FirmataExpress feature will reset the Arduino if serial communication is lost between pymata4 and the Arduino.
def keep_alive(self, period=1, margin=0.3)
This is a FirmataExpress feature.
Periodically send a keep alive message to the Arduino.
If the Arduino does not received a keep alive, the
Arduino will physically reset itself.
Frequency of keep alive transmission is calculated as follows:
keep_alive_sent = period - (period * margin)
:param period: Time period between keepalives. Range is 0-10 seconds.
0 disables the keepalive mechanism.
:param margin: Safety margin to assure keepalives are
sent before period expires. Range is 0.1 to 0.9
Example:
Notes:
When keep_alive is called, it spawns and runs in its own thread.
send_reset
def send_reset(self)
Send a Sysex reset command to the arduino
Examples:
All examples call shutdown, which in turn calls send_reset.
Notes:
This command will reset several Firmata internal data structures.
- It resets its internal i2c flags to indicate there are no i2c devices present.
- Digital reporting is turned off.
- It resets any analog pin that was set to a digital mode back to analog mode.
- If a pin was configured for tone, the tone is turned off.
- It clears all servo entries from its servo map.
- It sets the number of active sonar devices to zero.
The shutdown method calls send_reset.
shutdown
def shutdown(self)
This method attempts an orderly shutdown.
If any exceptions are thrown, they are ignored.
Examples:
All the examples call shutdown.
Copyright (C) 2020 Alan Yorinks. All Rights Reserved.