A power management Daemon for Uniclogs. Accepts network commands via UDP.
These instructions assume you have Podman installed and configured.
-
Build and run the container:
podman compose up -d
-
Drop into the container:
podman compose exec stationd bash -
Install dependencies (inside the container):
pip install -e .[dev]
-
Install Python dependencies:
pip install -e . -
Modify the config.ini file at the root of the project to suite your needs.
-
Run the daemon:
python -m stationd
echo "vhf polarization status" | nc -u -w 1 127.0.0.1 5005
# turn on TX for VHF amplifier
vhf pa-power on
# turn off RX for UHF amplifier
uhf lna off
# turn on power for rotator accessory
rotator power on
# returns status for all devices for the L-Band amplifier
l-band status
# return status for polarization of VHF amplifier
vhf polarization status
# returns status for all components of UHF amplifier
uhf status
# get temperature of board
gettemp
<vhf|uhf> <pa-power|rf-ptt|lna> <on|off|status>
<vhf|uhf> polarization <left|right|status>
l-band <pa-power|rf-ptt> <on|off|status>
<rx-swap|satnogs-host|radio-host|sdr-b200|rotator> power <on|off|status>
<vhf|uhf|l-band|rx-swap|satnogs-host|radio-host|sdr-b200|rotator> status
gettemp
This project uses pytest as it's testing framework. Run tests with the following command:
pytestA coverage report will be generated in the root of this project under
htmlcov/ when tests are run. View the report by opening htmlcov/index.html
in a browser.
Releases are managed through an automated workflow using Github Actions. The automation is triggered when a release is published on Github.
- Navigate to this project's "Releases" page
- Click "Draft a new release"
- Click "Tag: Select tag" and click on the "Create new tag" button
- Add a tag following the SemVer standard
- e.g.
v1.2.3
- e.g.
- Ensure that Target button is pointing at the
mainbranch - Add all necessary details about the release under "Release notes"
- Once everything looks good, click the "Publish release" button
Step 7 will trigger the pypi.yml workflow and the new release will be
available on pypi.org.
Once a new release has been created and is available on pypi.org, smoke test the release to ensure it runs as expected.
pip install your-package==X.Y.Z