Skip to content

rpitx-control-dev-0.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@IgrikXD IgrikXD released this 25 Oct 21:05
· 5 commits to master since this release
21e80a9

rpitx-control console GUI implementation:

To begin, you are asked to select an available expansion board from the list. Devices containing "LNA" in their name, in addition to filters, additionally support built-in switchable LNA.
image

After which you can either create a new or load an existing device configuration.
image

When you select the "Load device configuration" option, you will be asked to specify the path to the configuration file that you are going to load.
By default configuration files are saved in (ControlApplication/UserInterface.py:12):
CONFIGS_DIR = "./SavedConfiguration/"
image

If the device configuration is loaded successfully, a corresponding message is displayed.
image

If the configuration file you specified does not exist, an error message is displayed, after which you will be asked to correct the name of the configuration file.
image

When you click the Cancel button, you will be returned to the expansion board selection menu.
image

If you create a new configuration, you will be prompted to select the case style and the appropriate filter/amplifier depending on the expansion board used.
image
image

After creating a configuration for the current expansion board, information about it will be saved:
image

If you press the Cancel button while creating the device configuration, the configuration creation will be interrupted and you will return to the expansion board selection menu.
image

What is device configuration? Essentially, this is just a list of filters and amplifiers that are used on your specific expansion board. This information is used for informational purposes only, so that when switching filters you understand which specific filter and with what characteristics you are using without having to write this information somewhere else.

Once a configuration is created or loaded, information about the active configuration is displayed.
image

After which you are taken to the main menu of the program, where you can activate a specific filter or switch the state of the built-in LNA.
image

When you enable a specific filter, a message is displayed indicating that the filter has been activated and the status of the active filter is updated. If the selected filter is different from the current one, the state of the GPIO ports will be changed to enable a different RF signal path for the RF input and output switch. When you try to enable an already active filter, the state of the GPIO ports does not change!
image
image

When you switch the status of the built-in LNA, information about its new installed status is displayed.
image

To terminate the program, you need to select the Cancel option, after which the program will be finished.
image

Added .csv files for filter and LNA models:

To build the filter model we use the following information:
Model Number, Case Style, Description, Filter Type, Passband F1 (MHz), Passband F2 (MHz), Stopband F3 (MHz), Stopband F4 (MHz)
.csv files with information about filters located in (ControlApplication/main.py:12):
FILTER_MODELS_DIR = "./FiltersList"

To build an amplifier model we use the following information:
Model Number, Case Style, Subcategories, F Low (MHz), F High (MHz), Gain (dB) Typ.
.csv files with information about amolifiers located in (ControlApplication/main.py:11):
AMPLIFIER_MODELS_DIR = "./AmplifiersList"

.csv files are processed only when the program is launched for the first time. Based on the extracted information, a list of available filters and amplifiers is created, which is saved in files (ControlApplication/main.py:13-14):
FILTER_DUMP_FILE = "FiltersListDump.pkl"
AMPLIFIER_DUMP_FILE = "AmplifierDump.pkl"
When you run the program again, these files are read and avoid repeated parsing of .csv files, which saves startup time.

Handling command line options:

Added the ability to use MockFactory to simulate real GPIO ports and test the application without physical access to the Raspberry Pi (add the --use-mock-gpio key when launching the application).

Implemented a debugging mode for logging application actions to a text file (add the --show-debug-info key when launching the application).
Default log file (ControlApplication/main.py:16):
LOG_FILENAME = "./ControlApplication/DebugInfo.log"

Information that the program is running in debugging mode is displayed on the UI:
image

The following actions are logged:

  • Application start/stop timestamp.
  • Information on loading/saving filter and amp model files.
  • Information about loading/saving a device configuration file.
  • Information about whether MockFactory is used to simulate GPIO operation.
  • Information about initializing RF switches and switching their state.

image

Added the ability to display help information when starting the application (add the --help switch when launching the application).
image

Updating the main README.md file

Added basic information about the project.
Added a list and description of expansion boards available for use (the boards are not currently implemented).

Updating .gitignore

Excluding saved expansion board configuration files.
Excluding log files.