eesdr-tci
Python package to interact with Expert Electronics SDR TCI control interface.
This package is a work-in-progress and will probably change quite a bit in the near term.
It is currently based on the TCI Protocol.pdf, version 2.0 from the ExpertSDR3/TCI documentation repo.
I have tested basic connectivity, receiving and changing parameters, and receiving and transmitting audio streams in various formats.
Until everything stabilizes, take a look at the example folder to see a couple different ways it can be used. Example utilities include:
json_dump.py: reads startup parameters and outputs them as a JSON dictionaryparam_listener.py: prints out all parameter changes received from the TCI serverreceive_audio.py: receives audio stream from the TCI interface which can be piped to other utilitiesspot_saved_stations.py: repeatedly spots a list of stations to keep them visible in the EESDR interfacescanner.py: moves between a list of stations and pauses if squelch is brokendirewolf_interface.py: provides a pure TCI interface to the direwolf packet soundmodem. (Note: currently, this requires building a modified version which can pipe the transmit audio, see this branch if interested.)ctcss_decode.py: listens for CTCSS/PL tones in receiver audio and prints possible matches.cw_macro_keyer.py: 12-button CW macro keyer with freeform text box and speed adjustment.contest_memo.py: Use the spotting feature to leave notes to yourself during unassissted contest activites.
Recent Changes
v0.0.2
Updated/added a couple of commands to match the most recent TCI protocol definition.
v0.1.0
Refactored several things, including coding style cleanups and adding docstrings to the code. There were two major changes that may impact existing code:
- Module name tci.Listener was changed to tci.listener.
- Listener.get_cached_param_value(...) was removed along with the entire caching setup. It was mainly a remnant of my very first pass at structuring things and I didn't find a need for it in any of the utilities I've made so far. It could also be easily recreated in a program that would make use of it.
Metadata
Release files for eesdr-tci 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| eesdr-tci-0.1.0.tar.gz | 10.2 kB | Without provenance | Details for eesdr-tci-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| eesdr_tci-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for eesdr_tci-0.1.0-py3-none-any.whl |
Total release size: 19.5 kB
Release files / eesdr-tci-0.1.0.tar.gz
| Download URL | eesdr-tci-0.1.0.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a31b5e1a5b3bf5f51f10c9a8f68ce776d91f94f0295ab54bcd84103f4e7e1b9
|
|
BLAKE2b-256 checksum How to use checksums |
074634bc6ba48f73a3d1ab8bb9ce90699481da8f4fe51c58981b26fac36a4ef5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.1
|
Release files / eesdr_tci-0.1.0-py3-none-any.whl
| Download URL | eesdr_tci-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49b59e04c47c64d5f0b20015f4149609728820e31292ca6d87b8e80bc9b6cbcd
|
|
BLAKE2b-256 checksum How to use checksums |
3b0ed81a55968272767fce9b24cee868c2d30a9532ae8229d725110586513c34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.1
|
Security for eesdr-tci 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.