|
|
# RTIS Network General Usage
|
|
|
|
|
|
### A. Configuration
|
|
|
|
|
|
All configuration is done on the RTIS Server side. There are two configuration file types:
|
|
|
- [serversettings.json](Config/serversettings.json)
|
|
|
- [DSP Config folders](Config/DSPFiles)
|
|
|
|
|
|
The [serversettings.json](Config/serversettings.json) contains all the main settings for the Network. It must always have that name and be located in the *Config* folder.
|
|
|
Here is a more detailed explanation of each parameter:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"serverIp" : "127.0.0.1", [string, The IP of the RTIS Server on which to host it]
|
|
|
"applicationIP": "127.0.0.1", [string, The IP of the application on which to connect to it]
|
|
|
"log" : 2, [integer, Disable or configure log files. 0=off, 1=only warnings and errors, 2=includes info, 3=includes debug]
|
|
|
"debug": 0, [integer, Disable or configure debug mode where RTIS Sync is simulated.. 0=off, 1=on]
|
|
|
"ntpEnable" : 1, [integer, Disable or enable the NTP Server. Best turned off if internet is available on the network. 0=off, 1=on]
|
|
|
"ntpPort": 65450, [integer, Port on which to host the NTP Server.]
|
|
|
"syncPort" : "/dev/ttyUSB0", [string, Port on which to connect to the RTIS Sync device.]
|
|
|
"syncFrequency": 12, [integer, The default frequency RTIS Sync should use. Can by overwritten by RTIS Control at any time.]
|
|
|
"limitSyncFrequency": 1, [integer, Toggle the optional limiter of measurement frequency based on measurement length of RTIS Clients. 0=off, 1=on]
|
|
|
"syncActivePorts": [1, 1, 1, 1, 1, 1], [list of integers, The default active connectors RTIS Sync should use left to right. Can by overwritten by RTIS Control at any time.]
|
|
|
"serverProcessingName" : "server", [string, Name of the processingSettings option for the RTIS Server DSP pipeline.]
|
|
|
"clientSettings" : { [Seperate list of RTIS Client settings. One is always necessary called default. Then you can create custom ones for specific RTIS devices by using their unique identifier.]
|
|
|
"default" : {
|
|
|
"processingName" : "clientDefault", [string, Name of the processingSettings option for this RTIS Client´s DSP pipeline.]
|
|
|
"x": 0, [float, The forward facing axis position value in meters of this RTIS Client.]
|
|
|
"y": 0, [float, The left facing axis position value in meters of this RTIS Client.]
|
|
|
"z": 0, [float, The upwards facing axis position value in meters of this RTIS Client.]
|
|
|
"pitch": 0, [float, The rotation value around the Y-axis in degrees of this RTIS Client.]
|
|
|
"yaw": 0, [float, The rotation value around the Z-axis in degrees of this RTIS Client.]
|
|
|
"roll": 0 [float, The rotation value around the X-axis in degreesof this RTIS Client.]
|
|
|
},
|
|
|
"eRTIS001" : { [string, Use the RTIS Device´s unique identifier to define custom settings.]
|
|
|
...
|
|
|
},
|
|
|
...
|
|
|
},
|
|
|
"processingSettings" : { [Seperate list of all processingSettings to which the previous settings are linked to.]
|
|
|
"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]
|
|
|
"beamforming" : 1, [integer, Disable or enable beamforming part of the DSP pipeline. 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" : {
|
|
|
...
|
|
|
},
|
|
|
...
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
The [DSP Config folders](Config/DSPFiles) contain additional settings to define the RTIS Client device settings and to generate the DSP pipeline files.
|
|
|
The most important file in each folder (which each should have a unique name) is the `config.json`. This defines the RTIS Client device settings as well as other settings
|
|
|
that will be used by the automated generation of the `.csv` files used by the DSP pipeline.
|
|
|
|
|
|
Here is a more detailed explanation of the `config.json` file:
|
|
|
```json
|
|
|
{
|
|
|
{
|
|
|
"microphoneLayout" : "eRTIS_V3.14159265", [string, The name of the microphone array layout. The available ones can be found in the Config/DSPFiles/MicrophoneLayouts folder.]
|
|
|
"microphoneSamples" : 163840, [integer, The amount of microphone sames the RTIS Client device should use. Must be dividable by 32768.]
|
|
|
"microphoneSampleFrequency" : 4500000, [integer, The microphone sample frequency used by the DSP pipeline.]
|
|
|
"dacSampleFrequency" : 450000, [integer, The DAC (emitter) sample frequency used by the RTIS Client device. Must by larger then 160KHz and smaller then 2MHz.]
|
|
|
"pdmSampleFrequency": 4500000, [integer, The ADC sample frequency used by the RTIS Client device. Must be 4.5MHz for ultrasonic measurements or 1.125MHz for audible measurements.]
|
|
|
"minRange" : 0.5, [float, The minimum distance of the Energyscape used by the DSP pipeline.]
|
|
|
"maxRange" : 5, [float, The maximum distance of the Energyscape used by the DSP pipeline.]
|
|
|
"pdmSubsampleFactor" : 10, [integer, The subsampling factor used by the PDM filtering used by the RTIS DSP pipeline.]
|
|
|
"energyscapeSubsampleFactor" : 10, [integer, The subsampling factor used on the Energyscape used by the RTIS DSP pipeline.]
|
|
|
"beamformingDrop" : 512, [integer, The dropped samples used for making the Enveloppe creation efficient. Used by the RTIS DSP pipeline.]
|
|
|
"callDuration" : 2.5, [float, The call duration used for generating the DAC pulse used by the RTIS Client device.]
|
|
|
"callMinimumFrequency" : 25000, [integer, The minimum frequency of the call used for generating the DAC pulse used by the RTIS Client device.]
|
|
|
"callMaximumFrequency" : 50000, [integer, The maximum frequency of the call used for generating the DAC pulse used by the RTIS Client device.]
|
|
|
"initialDirections": 91, [integer, The amount of directions that are spatially equally distanced for creating the Energyscape. Defines your spatial resolution but scales with performance of the DSP pipeline.]
|
|
|
"2D": 1 [integer, Toggle on or off if the Energyscape should be 2D or 3D. 0==3D, 1=2D]
|
|
|
}
|
|
|
```
|
|
|
As long as you create a new unique folder name and add this `config.json` file the server will generate all other necessary files.
|
|
|
|
|
|
### 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.
|
|
|
The CLI control uses different types of launch arguments. Note the difference in using `--` in front of the arguments and where it isn't used. Here is a list of all available:
|
|
|
**Standard**: These can be used in combination with all other commands.
|
|
|
- `--log`: Disable or configure log files. 0=off , 1=only warnings and errors, 2(default)=includes info, 3=includes debug
|
|
|
- `--status`: Enable showing RTIS network status with `--status on` (default=off)
|
|
|
**Configuration**: these can not be mixed together.
|
|
|
- `reload`: Reload the _serversettings.json_ and _DSPFiles_ and make Server and Client use (new) settings.
|
|
|
- `idle`: Disable GPU workers and measurement listener.
|
|
|
- `prepare`: Start GPU workers and measurement listener.
|
|
|
- `start`: Start Sonar measurements with SYNC.
|
|
|
- `--measurements`: Choose amount of measurements (infinite by default).
|
|
|
- `--frequency`: Choose custom frequency that overrides the default in the _serversettings.json_ file.
|
|
|
- `--active`: Choose which connections on RTIS Sync device should be activated that overrides the default in the serversettings.json file. Format: "X,X,X,X,X,X" where X is 1(active) or 0(inactive).
|
|
|
- `stop`: Stop Sonar measurements with SYNC.
|
|
|
- `passive`: Set the connected RTIS devices to use passive behaviour.
|
|
|
- `active`: Set the connected RTIS devices to use active behaviour.
|
|
|
- `counter`: By default resets all RTIS device measurement counters to 0 unless `--index` argument is given.
|
|
|
- `--index`: Integer that sets custom device measurement counter.
|
|
|
|
|
|
so for example you can use in your terminal:
|
|
|
```bash
|
|
|
rtiscontrol reload
|
|
|
rtiscontrol active
|
|
|
rtiscontrol counter --index 420
|
|
|
rtiscontrol prepare
|
|
|
rtiscontrol start --measurements 250 --frequency 5 --active 1,0,0,1,0,0
|
|
|
rtiscontrol --status on --log 3
|
|
|
```
|
|
|
|
|
|
If no arguments are given or `--status on` is used, it will print out the status of the RTIS Network in a continuous print.
|
|
|
This will show information on the Client and Server such as their configuration, state and buffer counters.
|
|
|
The state can be:
|
|
|
- _Booting_: The device has just booted up and is still trying to connect to the RTIS Server and get started.
|
|
|
- _Started_ The device has successfully booted up and is connected to the RTIS Network.
|
|
|
- _Configuring_: The device has received its configuration files and settings and is configuring itself.
|
|
|
- _Ready_: The device has been successfully configured and is now in the idle state.
|
|
|
- _Preparing_: The device is starting it's GPU workers and preparing to deal with measurements.
|
|
|
- _Online_: The device is fully prepared and ready for starting measurements.
|
|
|
|
|
|
When in this status mode of the CLI interface, keyboard shortcuts are also available and listed on the screen to quickly perform certain commands.
|
|
|
|
|
|
### 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.
|
|
|
|
|
|
Here is a list of all available functions on the **Home page**:
|
|
|
- `Idle mode`: Disable GPU workers and measurement listener.
|
|
|
- `Prepare workers`: Start GPU workers and measurement listener.
|
|
|
- `Reload settings`: Reload the _serversettings.json_ and _DSPFiles_ and make Server and Client use (new) settings.
|
|
|
- `Set behaviour`: Set the connected RTIS devices behaviour using the checkbox toggle.
|
|
|
- `Set counter index`: By default resets all RTIS device measurement counters to 0 unless `index` argument is set differently.
|
|
|
- `Index`: Integer that sets custom device measurement counter.
|
|
|
- `Stop`: Stop Sonar measurements with SYNC.
|
|
|
- `Start`: Start Sonar measurements with SYNC.
|
|
|
- `Measurements`: Choose amount of measurements (infinite by default).
|
|
|
- `Frequency`: Choose custom frequency that overrides the default in the _serversettings.json_ file.
|
|
|
- `-Customize active connectors`: Choose which connections on RTIS Sync device should be activated that overrides the default in the serversettings.json file. Where marking is active.
|
|
|
|
|
|
It will also show the status of the Server and all connected Clients such as their configuration, state and buffer counters.
|
|
|
The state can be:
|
|
|
- _Booting_: The device has just booted up and is still trying to connect to the RTIS Server and get started.
|
|
|
- _Started_ The device has successfully booted up and is connected to the RTIS Network.
|
|
|
- _Configuring_: The device has received its configuration files and settings and is configuring itself.
|
|
|
- _Ready_: The device has been successfully configured and is now in the idle state.
|
|
|
- _Preparing_: The device is starting it's GPU workers and preparing to deal with measurements.
|
|
|
- _Online_: The device is fully prepared and ready for starting measurements.
|
|
|
|
|
|
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. |
|
|
\ No newline at end of file |