|
|
# RTIS Network - Usage Documentation
|
|
|
# RTIS Network
|
|
|
This project enables using RTIS sensors in a star network architecture. Each sensor is a client where a central server allows through an API any application to request sensor data.
|
|
|
It includes distributed signal processing workflows on both client and server with CUDA support.
|
|
|
|
|
|
## Configuration
|
|
|
## Usage
|
|
|
|
|
|
### A. Configuration
|
|
|
|
|
|
All configuration is done on the RTIS Server side. There are two configuration file types:
|
|
|
- [serversettings.json](Config/serversettings.json)
|
... | ... | @@ -42,11 +46,14 @@ Here is a more detailed explanation of each parameter: |
|
|
"server": { [string, unique identifier to identify the processingSettings with which is used by serverProcessingName and clientSettings.]
|
|
|
"workers": 3, [integer, The amount of RTIS CUDA GPU workers that should be used for the DSP pipeline.]
|
|
|
"pdm" : 0, [integer, Disable or enable the binary data unpacking and PDM filtering part of the DSP pipeline. 0=off, 1=on]
|
|
|
"matchedFilter" : 0, [integer, Disable or enable the matched filter part of the DSP pipeline. 0=off, 1=on]
|
|
|
"preFilter" : 0, [integer, Disable or enable the optional pre processing filter of the DSP pipeline. This expects a 'preFilter.csv' file in the config folder. 0=off, 1=on]
|
|
|
"matchedFilter" : 0, [integer, Disable or enable the optional matched filter part of the DSP pipeline. 0=off, 1=on]
|
|
|
"beamforming" : 1, [integer, Disable or enable beamforming part of the DSP pipeline. 0=off, 1=on]
|
|
|
"postFilter" : 0, [integer, Disable or enable the optional post processing filter of the DSP pipeline.This expects a 'postFilter.csv' file in the config folder. 0=off, 1=on]
|
|
|
"enveloppe" : 1, [integer, Disable or enable enveloppe creation part of the DSP pipeline. 0=off, 1=on]
|
|
|
"clean" : 1, [integer, Disable or enable cleaning of the Energyscape part of the DSP pipeline. 0=off, 1=on]
|
|
|
"DSPFolderName" : "2D_90_debug" [string, unique identifier to identify the DSPFiles foldername to use.]
|
|
|
|
|
|
},
|
|
|
"clientDefault" : {
|
|
|
...
|
... | ... | @@ -84,7 +91,7 @@ Here is a more detailed explanation of the `config.json` file: |
|
|
```
|
|
|
As long as you create a new unique folder name and add this `config.json` file the server will generate all other necessary files.
|
|
|
|
|
|
## Control
|
|
|
### B. Control
|
|
|
|
|
|
Currently the RTIS Network can be controlled through a single CLI interface. This is defined by the [RTISControl.py](Python/RTISControl.py) script.
|
|
|
As described in the Installation steps, this could be binded to a CLI command such as `rtiscontrol`, which we will use throughout this description of the RTIS Control script.
|
... | ... | @@ -128,7 +135,7 @@ The state can be: |
|
|
|
|
|
When in this status mode of the CLI interface, keyboard shortcuts are also available and listed on the screen to quickly perform certain commands.
|
|
|
|
|
|
## Web Interface
|
|
|
### B. Web Interface
|
|
|
|
|
|
Currently a simple web interface is available on the RTIS Network LAN. It can be reached from any webbrowser on `serverIp:5000`.
|
|
|
It offers the same functionality as RTIS Control CLI currently but is more user friendly.
|
... | ... | @@ -158,7 +165,7 @@ The state can be: |
|
|
Furthermore, on the **Configuration page** one can safely configure the [serversettings.json](Config/serversettings.json) file from this web interface.
|
|
|
Lastly, on the **DSP Settings** page the [DSP Config folders](Config/DSPFiles) can be managed and generated easily as well.
|
|
|
|
|
|
## HTTP API
|
|
|
### C. HTTP API
|
|
|
|
|
|
Similarly as to the web API, all control functionality is also available as HTTP commands.
|
|
|
They will return status 200 on success and 400 (with error message as data) on failure.
|
... | ... | @@ -181,7 +188,7 @@ The following functions can therefore be used: |
|
|
- _-Customize active connectors_ - `http://serverIp:5000/api/start?active=string`: Choose which connections on RTIS Sync device should be activated that overrides the default in the serversettings.json file. Should be a string of the format `X,X,X,X,X,X` where each X is either 1(enabled) 0(disabled).
|
|
|
- Like normal HTTP, you can combine multiple arguments. For example: `http://serverIp:5000/api/start?frequency=10&measurements=250&active=1,1,1,0,0,0`
|
|
|
|
|
|
## Using and creating a RTIS Network application
|
|
|
### D. Using and creating a RTIS Network application
|
|
|
|
|
|
The idea of RTIS Network is to provide (processed) RTIS measurements of one or multiple RTIS sensors. In order to use these measurements one has to connect an application.
|
|
|
Several 'default' applications are already available:
|
... | ... | @@ -193,3 +200,14 @@ Making a new application is rather straight forward. Several functions are avail |
|
|
For this, one should use the Python library [RTIS Common Library](https://cosysgit.uantwerpen.be/rtis-software/rtiscommon).
|
|
|
The available commands are available in the [wiki](https://cosysgit.uantwerpen.be/rtis-software/rtiscommon/-/wikis/home).
|
|
|
There you can also find an example on setting up a data connection to the RTIS Server and what the data format is like.
|
|
|
|
|
|
## Troubleshooting
|
|
|
Some issues we encountered while working on this that might come in handy for others in the future:
|
|
|
- Using PyCharm IDE on Ubuntu not being able to load RTIS CUDA library by not finding library path:
|
|
|
See solution [here](https://youtrack.jetbrains.com/issue/PY-29580#focus=Comments-27-2823760.0-0). Basically need to add `LD_LIBRARY_PATH` with value `/usr/lib/rtiscuda` (or your custom location) manually to your run configurations.
|
|
|
- The hotkeys for RTIS Control don't work when not using elevated permissions on ubuntu(use `sudo` to fix). Also doesn't work when using tools like Synergy. Use natively connected keyboard!
|
|
|
- If using PyCharm you can use [the ideolog plugin](https://github.com/JetBrains/ideolog) to apply automatic syntax highlighting to the RTIS Network logfiles. See here for the settings:
|
|
|
- message pattern: `^\[([0-9]+)\-([0-9]+)\-([0-9]+)\s([0-9]+):([0-9]+):([0-9]+)\,([0-9]+)\]\s\-\s([a-zA-Z\s]+)\s\-\s([a-zA-Z\']+)\s\-\s(.*)$`
|
|
|
- message start pattern: `^\[`
|
|
|
- time format: `yyyy-MM-dd HH:mm:ss,SSS`
|
|
|
- color patterns: `^\s*W(ARNING)?\s*$` , `_^\s*I(NFO)?\s*$_`, `_^\s*E(RROR)?\s*$_`, ... |