Difference between revisions of "SatNOGS Client Development"
(Initial write-up.) |
(→Setting up a gr-satnogs development environment) |
||
(11 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | == Intro == | + | ==Intro== |
This page describes the setup of a development environment for the | This page describes the setup of a development environment for the | ||
− | SatNOGS ground station reference setup based on [https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible satnogs-client- | + | SatNOGS ground station reference setup based on [https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible satnogs-client-ansible]. |
− | It is assumed you have already setup your ground station as explained in [[ | + | It is assumed you have already setup your ground station as explained in [[SatNOGS_Client_Setup]]. |
− | == gr- | + | ==satnogs-flowgraphs== |
+ | For each Satellite Transmitter Mode there is a specific flowgraph in this package. There are generic (e.g. CW) and satellite-specific flowgraphs. The Satellite-Transmitter-Mode-to-flowgraph mapping is defined in satnogs-client. This package is using gr-soapy for SDR hardware support and gr-satnogs for required GNURadio blocks. | ||
+ | <br /> | ||
+ | ==gr-satnogs== | ||
− | The gnuradio Out-Of-Tree module [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs gr-satnogs] | + | The gnuradio Out-Of-Tree module [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs gr-satnogs] provides blocks required by satnogs-flowgraphs. The gitlab-CI automatically builds the package in docker containers, configured by the [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs/blob/master/.gitlab-ci.yml .gitlab-ci.yml]. The built packages for releases are pushed to the librespace:satnogs package repository, the built package for the latest development version on master is pushed to the librespace:satnogs-unstable package repository. |
− | To use a modified gr-satnogs module on a SatNOGS ground station, it’s recommended to build | + | To use a modified gr-satnogs module on a SatNOGS ground station, it’s recommended to clone your fork on your station, build the patched gr-satnogs packages and install it. |
− | + | To install the latest development version of gr-satnogs on your station, set <code>experimental=True</code> or configure in <code>satnogs-setup</code>. | |
− | + | <br /> | |
− | + | ===Setting up a gr-satnogs development environment=== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | OUTDATED since [https://gitlab.com/librespacefoundation/satnogs/satnogs-client-ansible/-/commit/336a3206fbeec8e1a5257ce375578f31a92988e4 satnogs-client-ansible@336a320]! | |
− | |||
− | |||
− | |||
− | Please note that satnogs-client and | + | *Fork gr-satnogs |
− | === | + | *Fork gr-satnogs-package |
− | + | *Adjust the repository url of gr-satnogs in [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/debian/debian/rules#L22 gr-satnogs-package/debian/debian/rules#L22] | |
+ | *Adjust the repository url in the version detection in [https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L13 gr-satnogs-package/.gitlab-ci.yml#L13] ,[https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L30 #L30] ,[https://gitlab.com/librespacefoundation/satnogs/gr-satnogs-package/blob/master/.gitlab-ci.yml#L47 #L47] | ||
+ | *Wait for the gitlab-CI to build your first version of gr-satnogs-package (~45 min) | ||
+ | *Install your freshly built gr-satnogs-package by pointing the <code>SATNOGS_RADIO_GR_SATNOGS_PACKAGE</code> in satnogs-setup to the built artifact/debian package of your architecture (e.g. <code>armhf</code>, <code>amd64</code>). The build artifacts are available in your gr-satnogs-package fork by clicking CI/CD, selecting there the latest pipeline, the latest build-job and then in the right column <code>Browse</code>, path <code>build/debian/output/$your_arch/gr-satnogs_$your_arch.deb</code> | ||
+ | |||
+ | ==satnogs-client== | ||
+ | The [https://gitlab.com/librespacefoundation/satnogs/satnogs-client satnogs-client] is a python package, and gets installed by satnogs-setup in a python virtual environment using [https://pip.pypa.io/ pip]. The development is done in the <code>master</code> branch. | ||
+ | |||
+ | Please note that satnogs-client and satnogs-flowgraphs must be installed in compatible versions, due to (frequent) changes in the arguments available in the demodulation scripts, see [[Compatibility]]. | ||
+ | ===Setting up a satnogs-client development environment=== | ||
+ | |||
+ | #Fork [https://gitlab.com/librespacefoundation/satnogs/satnogs-client satnogs-client] | ||
+ | #Clone the repository on your development machine | ||
+ | #Create a new branch (e.g. station123) with your changes & push it | ||
+ | #Run satnogs-setup and change the value of <code>SATNOGS_CLIENT_URL</code> to point to your repository and branch as described in [[SatNOGS_Client_Setup#Advanced_Setup]] | ||
+ | #Hit "Apply" in satnogs-setup to finally install your satnogs-client version | ||
+ | #Profit. | ||
+ | |||
+ | === Miscellaneous development notes === | ||
+ | |||
+ | * [[How to bodge an immediate observation in for testing purposes]] | ||
+ | |||
+ | [[Category:Develop]] | ||
+ | [[Category:Software]] |
Latest revision as of 21:55, 12 August 2022
Contents
Intro
This page describes the setup of a development environment for the SatNOGS ground station reference setup based on satnogs-client-ansible. It is assumed you have already setup your ground station as explained in SatNOGS_Client_Setup.
satnogs-flowgraphs
For each Satellite Transmitter Mode there is a specific flowgraph in this package. There are generic (e.g. CW) and satellite-specific flowgraphs. The Satellite-Transmitter-Mode-to-flowgraph mapping is defined in satnogs-client. This package is using gr-soapy for SDR hardware support and gr-satnogs for required GNURadio blocks.
gr-satnogs
The gnuradio Out-Of-Tree module gr-satnogs provides blocks required by satnogs-flowgraphs. The gitlab-CI automatically builds the package in docker containers, configured by the .gitlab-ci.yml. The built packages for releases are pushed to the librespace:satnogs package repository, the built package for the latest development version on master is pushed to the librespace:satnogs-unstable package repository.
To use a modified gr-satnogs module on a SatNOGS ground station, it’s recommended to clone your fork on your station, build the patched gr-satnogs packages and install it.
To install the latest development version of gr-satnogs on your station, set experimental=True
or configure in satnogs-setup
.
Setting up a gr-satnogs development environment
OUTDATED since satnogs-client-ansible@336a320!
- Fork gr-satnogs
- Fork gr-satnogs-package
- Adjust the repository url of gr-satnogs in gr-satnogs-package/debian/debian/rules#L22
- Adjust the repository url in the version detection in gr-satnogs-package/.gitlab-ci.yml#L13 ,#L30 ,#L47
- Wait for the gitlab-CI to build your first version of gr-satnogs-package (~45 min)
- Install your freshly built gr-satnogs-package by pointing the
SATNOGS_RADIO_GR_SATNOGS_PACKAGE
in satnogs-setup to the built artifact/debian package of your architecture (e.g.armhf
,amd64
). The build artifacts are available in your gr-satnogs-package fork by clicking CI/CD, selecting there the latest pipeline, the latest build-job and then in the right columnBrowse
, pathbuild/debian/output/$your_arch/gr-satnogs_$your_arch.deb
satnogs-client
The satnogs-client is a python package, and gets installed by satnogs-setup in a python virtual environment using pip. The development is done in the master
branch.
Please note that satnogs-client and satnogs-flowgraphs must be installed in compatible versions, due to (frequent) changes in the arguments available in the demodulation scripts, see Compatibility.
Setting up a satnogs-client development environment
- Fork satnogs-client
- Clone the repository on your development machine
- Create a new branch (e.g. station123) with your changes & push it
- Run satnogs-setup and change the value of
SATNOGS_CLIENT_URL
to point to your repository and branch as described in SatNOGS_Client_Setup#Advanced_Setup - Hit "Apply" in satnogs-setup to finally install your satnogs-client version
- Profit.