A power management Daemon for UniClOGS.
Project description
Uniclogs StationD
A power management Daemon for Uniclogs. Accepts network commands via UDP.
Installation
For Development (Container)
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]
For Raspberry Pi (Hardware)
-
Install Python dependencies:
pip install -e .
-
Modify the stationd.ini file at the root of the project to suite your needs.
-
Run the daemon:
python -m stationd
Usage
Example UDP command using Netcat
echo "vhf polarization status" | nc -u -w 1 127.0.0.1 5005
Example StationD Commands
# 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
Supported Commands
<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
Testing
This project uses pytest as it's testing framework. Run tests with the following command:
pytest
A 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.
Release Process
Releases are managed through an automated workflow using Github Actions. The automation is triggered when a release is published on Github.
Creating a Release
- 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.
Post-Release
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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uniclogs_stationd-1.0.2.tar.gz.
File metadata
- Download URL: uniclogs_stationd-1.0.2.tar.gz
- Upload date:
- Size: 25.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
336051152b92447bfe51172c01b92b65572153a8f7e7779059b54ae7f4146fd9
|
|
| MD5 |
1582d1339e313199496ea43480c2831c
|
|
| BLAKE2b-256 |
60a7301199db0fce32ae377258f64f01cf105e9a753d27644274dea9fce8be81
|
Provenance
The following attestation bundles were made for uniclogs_stationd-1.0.2.tar.gz:
Publisher:
pypi.yml on uniclogs/uniclogs-stationd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uniclogs_stationd-1.0.2.tar.gz -
Subject digest:
336051152b92447bfe51172c01b92b65572153a8f7e7779059b54ae7f4146fd9 - Sigstore transparency entry: 946975592
- Sigstore integration time:
-
Permalink:
uniclogs/uniclogs-stationd@0ee508f8a1c96d102ee5ea4aa08eb6594e3ba78e -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/uniclogs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0ee508f8a1c96d102ee5ea4aa08eb6594e3ba78e -
Trigger Event:
release
-
Statement type:
File details
Details for the file uniclogs_stationd-1.0.2-py3-none-any.whl.
File metadata
- Download URL: uniclogs_stationd-1.0.2-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28221009d4230df1ccfe7e4e80c978be833d2f2acbdcfcac6e517c8d7f54fd12
|
|
| MD5 |
63216f82d5844dbd2f61ab593ad41ac0
|
|
| BLAKE2b-256 |
ca8cc44b890831ce8bc4eaef5d560467e6c78893cb18bcc454b3f28dc2e2c323
|
Provenance
The following attestation bundles were made for uniclogs_stationd-1.0.2-py3-none-any.whl:
Publisher:
pypi.yml on uniclogs/uniclogs-stationd
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uniclogs_stationd-1.0.2-py3-none-any.whl -
Subject digest:
28221009d4230df1ccfe7e4e80c978be833d2f2acbdcfcac6e517c8d7f54fd12 - Sigstore transparency entry: 946975602
- Sigstore integration time:
-
Permalink:
uniclogs/uniclogs-stationd@0ee508f8a1c96d102ee5ea4aa08eb6594e3ba78e -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/uniclogs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0ee508f8a1c96d102ee5ea4aa08eb6594e3ba78e -
Trigger Event:
release
-
Statement type: