Skip to main content

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.

  1. Build and run the container:

    podman compose up -d
    
  2. Drop into the container:

    podman compose exec stationd bash
    
  3. Install dependencies (inside the container):

    pip install -e .[dev]
    

For Raspberry Pi (Hardware)

  1. Install Python dependencies:

    pip install -e .
    
  2. Modify the config.ini file at the root of the project to suite your needs.

  3. 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

  1. Navigate to this project's "Releases" page
  2. Click "Draft a new release"
  3. Click "Tag: Select tag" and click on the "Create new tag" button
  4. Add a tag following the SemVer standard
    • e.g. v1.2.3
  5. Ensure that Target button is pointing at the main branch
  6. Add all necessary details about the release under "Release notes"
  7. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uniclogs_stationd-1.0.1.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uniclogs_stationd-1.0.1-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file uniclogs_stationd-1.0.1.tar.gz.

File metadata

  • Download URL: uniclogs_stationd-1.0.1.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uniclogs_stationd-1.0.1.tar.gz
Algorithm Hash digest
SHA256 926514c3347b6ac57475b8f457e43d341687ee36dd7730cf3a7b1e3716c33c13
MD5 f581e9a94789df40631e515ba55545d6
BLAKE2b-256 c02cc950209cd9d3c29d3f5e820448c0dadd3af74201e664cfd35ea754b16f6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for uniclogs_stationd-1.0.1.tar.gz:

Publisher: pypi.yml on uniclogs/uniclogs-stationd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uniclogs_stationd-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for uniclogs_stationd-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b939ad2f70bfb3dba38bb399b4c7afa661d228ada7e8f5578f42c1d75efd469d
MD5 0d8acce5bcb84be9d42244233a292059
BLAKE2b-256 ffc0d7c9ee58899783880f1086aa3e758542be5e0887f21c608e1e13234be670

See more details on using hashes here.

Provenance

The following attestation bundles were made for uniclogs_stationd-1.0.1-py3-none-any.whl:

Publisher: pypi.yml on uniclogs/uniclogs-stationd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page