Communicate with the embody device over a serial port
Project description
Embody Serial
Features
- 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
Requirements
- Python 3.9
- Access to private Aidee Health repositories on Github
Installation
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.
Usage
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)
Using the application from the command line
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.
Example - List all attribute values
embody-serial --get-all
Example - Get serial no of device
embody-serial --get serialno
Example - List files over serial port
embody-serial --list-files
Example - Set time current time (UTC)
embody-serial --set-time
Example - Download files
embody-serial --download-files
Contributing
Contributions are very welcome. To learn more, see the Contributor Guide.
Issues
If you encounter any problems, please file an issue along with a detailed description.
Troubleshooting
I get an error message saying 'no module named serial' or similar
This is a known issue and is usually caused by one of two things.
Ensure you haven't installed serial
or jserial
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
.
Problems with pyserial
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for embody_serial-1.0.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96d832a47907f4e5bf3f52f11aebe5451a42c3ecc99e27ec4cc74fef74dbe092 |
|
MD5 | d44b34c43a7c52024962a88a4c17f335 |
|
BLAKE2b-256 | 24b4c5fa8d07c4923665198651589ef100f0589ac3471f9f22f87ca9ca89f06b |