git submodule update --init --recursive
Create virtual Python environment:
python3 -m venv venv
Activate Python virtual env:
source venv/bin/activate
Install required packages into venv:
pip install -r requirements.txt
Build C-code and extract bindings for Python:
make
Build Python wheel:
python3 -m build
Build Debian package:
make debpkg
After installing the Python package with pip
, the daemon can be run with sudo atdecc-py
For example:
pip install dist/atdecc-0.1.post0-py3-none-any.whl
(or equivalently sudo python3 -m atdecc
).
Check out atdecc-py --help
for additional options like network interface and AEM config file.
Install the debian package from the package registry with
apt install atdecc-py
.
The service can then be installed and started with systemctl enable atdecc-py --now
.
Check the status with systemctl status atdecc-py
.
As a PoC the Dockerfile can be built to an image, primarily to ensure compilation succeeds on debian when developing locally (note that this presumes you have the git submodules checked out locally):
$ docker buildx build . -t atdecc-py --platform=linux/amd64
Then run it with
$ docker run --rm -ti atdecc-py
This setup can also serve as a blueprint for the setup of the final production image.
The following steps are necessary to compile the daemon on BeagleBone Black/Bela:
$ sudo apt-get install cmake build-essential python3-venv clang libclang-dev libpcap-dev gettext-base
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ pip freeze > requirements.txt
$ make clean
$ make
Running the daemon has to be done as root:
$ sudo su
# export LD_LIBRARY_PATH=$PWD/src
# source venv/bin/activate
# ./src/atdecc.py -d
Note: On Debix you have to specify the interface:
# ./src/atdecc.py -d -i ens33
Afterwards you should be able to discover the SBC in Hive.
An ATDECC End Station is a device that has one or more network ports and has one or more ATDECC Entities.
An ATDECC Entity uses one or more of the following ATDECC protocols for discovering or controlling other ATDECC Entities or for being discovered or controlled by other ATDECC Entities:
An ATDECC Entity shall:
A discoverable ATDECC Entity is an ATDECC Entity that is capable of advertising itself on a local area network (LAN). An ATDECC Entity that is to be discoverable on a network shall implement:
An ATDECC Entity that is to be discoverable on a network may implement:
An ATDECC Entity which has a need to discover other ATDECC Entities on a LAN shall implement:
An ATDECC Entity that implements 9.3.5 “ATDECC Entity Model Entity State Machine” that implements 7.4.5 “READ_DESCRIPTOR Command” shall implement:
An ATDECC Entity that implements 9.3.5 “ATDECC Entity Model Entity State Machine” that implements 7.4.5 “READ_DESCRIPTOR Command” may implement:
An ATDECC Listener is an ATDECC Entity that can sink one or more AVTP Streams.
An ATDECC Listener shall use ATDECC messages transported via IEEE 1722 AVTPDUs.
An ATDECC Listener shall implement the following:
An ATDECC Listener may implement the following: