We plan to receive the Meteor-group satellites. But our software is strongly assigned with NOAA satellites.
The different satellites require different software and configuration. We need a possibility to add new configurations without rewrite our receive scripts or write wrappers in Python for each new subprogram.
Therefore I propose a recipe-based solution. "Recipe" is a shell script which is responsible for receive signal and decode it.
As input each recipe gets three parameters:
Base path - it is a prefix for all files created by script. It contains writable directory and random, unique token. It ensure that any file with this prefix may be safe created.
Frequency - it is frequency for SDR. It is passed as parameter, because some satellites may to use the same receive and decode flow as NOAA familly
LOS date - it is date when script should stop SDR
As output the script should print on standard output in format:
!! CATEGORY: PATH
where is category of file. Now I use "Signal" for initial WAV file and "Product" for decoded imagery. I think that we will need a category for waterfall and text, binary data in future.
User should have a possibility to execute recipe without using Python code.
Recipe is responsible for cleanup all created files excluded the files printed as output. These files are clean up by Python code.
User has a possibility to select recipe by "recipe" parameter in satellite config. Now it is optional and script try to deduce recipe based on satellite. (For example if recipe isn't provided and name starts with NOAA then we use recipe for NOAA).
I include in this MR also few small improves to work with many satellites as add possibility to disable planning for specific satellite, optional keep signal or products on the disk and disable submit to server for specific sat.
We plan to receive the Meteor-group satellites. But our software is strongly assigned with NOAA satellites. The different satellites require different software and configuration. We need a possibility to add new configurations without rewrite our receive scripts or write wrappers in Python for each new subprogram. Therefore I propose a recipe-based solution. "Recipe" is a shell script which is responsible for receive signal and decode it. As input each recipe gets three parameters:
As output the script should print on standard output in format:
!! CATEGORY: PATH
where is category of file. Now I use "Signal" for initial WAV file and "Product" for decoded imagery. I think that we will need a category for waterfall and text, binary data in future.User should have a possibility to execute recipe without using Python code.
Recipe is responsible for cleanup all created files excluded the files printed as output. These files are clean up by Python code.
User has a possibility to select recipe by "recipe" parameter in satellite config. Now it is optional and script try to deduce recipe based on satellite. (For example if recipe isn't provided and name starts with NOAA then we use recipe for NOAA).
I include in this MR also few small improves to work with many satellites as add possibility to disable planning for specific satellite, optional keep signal or products on the disk and disable submit to server for specific sat.