- Connects to an EmBody device over the serial port
- Uses the EmBody protocol to communicate with the device
- Integrates with the EmBody Protocol Codec project
- Asynchronous send without having to wait for response
- Synchronous send where response message is returned
- Send facade for protocol agnostic communication with device
- Provides callback interfaces for incoming messages, response messages and connect/disconnect
- All methods and callbacks are threadsafe
- Separate threads for send, receive and callback processing
- Type safe code using mypy for type checking
- Python 3.9 or newer
- Access to private Aidee Health repositories on Github
You can install Embody Serial via pip:
$ pip install embody-serial
This adds embody-serial
as a library, but also provides the CLI application with the same name.
A very basic example where you send a message request and get a response:
from embodyserial.embodyserial import EmbodySerial
from embodyserial.helpers import EmbodySendHelper
embody_serial = EmbodySerial()
send_helper = EmbodySendHelper(sender=embody_serial)
print(f"Serial no: {send_helper.get_serial_no()}")
embody_serial.shutdown()
If you want to see more of what happens under the hood, activate debug logging before setting up EmbodySerial
:
import logging
logging.basicConfig(level=logging.DEBUG)
The application also provides a CLI application that is automatically added to the path when installing via pip.
Once installed with pip, type:
embody-serial --help
To see which options are available.
Note The serial port is automatically detected, but can be overridden by using the
--device
option.
embody-serial --get-all
embody-serial --get serialno
embody-serial --list-files
embody-serial --set-time
embody-serial --download-files
Contributions are very welcome. To learn more, see the Contributor Guide.
If you encounter any problems, please file an issue along with a detailed description.
This is a known issue and is usually caused by one of two things.
Embody-serial uses the pyserial
library. Run pip list
to see if either the serial
or jserial
library is installed. If they are, remove them with pip uninstall serial
.
Sometimes, for whatever reason, it is necessary to re-install pyserial. Perform a pip uninstall pyserial
and then pip install pyserial
to see if this helps.