Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • RTIS Common Library RTIS Common Library
  • Project information
    • Project information
    • Activity
    • Members
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Wiki
    • Wiki
  • Activity
Collapse sidebar
  • RTIS Software
  • RTIS Common LibraryRTIS Common Library
  • Wiki
  • Home

Home · Changes

Page history
Create home authored Jul 26, 2021 by Wouter Jansen's avatar Wouter Jansen
Hide whitespace changes
Inline Side-by-side
home.md 0 → 100644
View page @ 293d1a53
# **RTIS Common Documentation - Table of Content**
- [Classes](#classes)
- [RTISClientObj](#rtisclientobj)
- [Pose](#pose)
- [dspSettings](#dspsettings)
- [Methods](#methods)
- [dsp_worker_process](#dsp_worker_process)
- [get_server_config](#get_server_config)
- [get_clients_and_configs](#get_clients_and_configs)
- [get_client_pose](#get_client_pose)
- [set_behaviour_active](#set_behaviour_active)
- [set_behaviour_passive](#set_behaviour_passive)
# **Classes**
## **RTISClientObj**
<p class="func-header">
<i>class</i> <b>RTISClientObj</b>(<i>client_id, client_ip, network_version, firmware_version, client_online=True</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L29">[source]</a>
</p>
Class describing a connected RTIS Client.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Attributes:</b></td>
<td class="field-body" width="100%"><b>id : <i>string</i></b>
<p class="attr">
The unique identifier to identify this RTIS Client by.
</p>
<b>ip : <i>string</i></b>
<p class="attr">
The current IP used by the active RTIS Client.
</p>
<b>online : <i>bool</i></b>
<p class="attr">
If the RTIS Client has timed out it will be set to False, otherwise it will always be True.
</p>
<b>lastHeartBeatTimestamp : <i>datetime datetime</i></b>
<p class="attr">
The datetime object telling the last time a heartbeat was received from an RTIS Client.
</p>
<b>configured : <i>int</i></b>
<p class="attr">
The state of the configuration of an RTIS Client. 0 = Booting | 1 = Started | 2 = Configuring | 3 = Ready | 4 = Preparing workers | 5 = Online
</p>
<b>behaviour : <i>int</i></b>
<p class="attr">
The state of the sonar behaviour of an RTIS Client. 0 = passive | 1 = active
</p>
<b>inputDataQueueSize : <i>int</i></b>
<p class="attr">
The amount of data packages currently in the incoming data queue of the RTIS Client.
</p>
<b>outputDataQueueSize : <i>int</i></b>
<p class="attr">
The amount of data packages currently in the outgoing data queue of the RTIS Client.
</p>
<b>internalCounter : <i>int</i></b>
<p class="attr">
The current index of the internal measurement counter of the connected RTIS hardware.
</p>
<b>networkVersion : <i>string</i></b>
<p class="attr">
The RTIS Network software version that is used by this RTIS Client.
</p>
<b>firmwareVersion : <i>string</i></b>
<p class="attr">
The RTIS Device hardware firmware version that is used by this RTIS Client.
</p></td>
</tr>
</tbody>
</table>
#### Methods
<p class="func-header">
<i></i> <b>update_heartbeat</b>(<i>self, client_ip, client_configured, client_behaviour, client_inputDataQueueSize, client_outputDataQueueSize, client_internalCounter</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L113">[source]</a>
</p>
Method that is used by RTIS Server to update the status of a RTIS Client when a new heartbeat is received.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>client_ip : <i>string</i></b>
<p class="attr">
The current IP used by the active RTIS Client.
</p>
<b>client_configured : <i>int</i></b>
<p class="attr">
The state of the configuration of an RTIS Client. 0 = Booting | 1 = Started | 2 = Configuring | 3 = Ready | 4 = Preparing workers | 5 = Online
</p>
<b>client_behaviour : <i>int</i></b>
<p class="attr">
The state of the sonar behaviour of an RTIS Client. 0 = passive | 1 = active
</p>
<b>client_inputDataQueueSize : <i>int</i></b>
<p class="attr">
The amount of data packages currently in the incoming data queue of the RTIS Client.
</p>
<b>client_outputDataQueueSize : <i>int</i></b>
<p class="attr">
The amount of data packages currently in the outgoing data queue of the RTIS Client.
</p>
<b>client_internalCounter : <i>int</i></b>
<p class="attr">
The current index of the internal measurement counter of the connected RTIS hardware.
</p></td>
</tr>
</tbody>
</table>
<p class="func-header">
<i></i> <b>check_heartbeat</b>(<i>self, maximum_delta=15</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L151">[source]</a>
</p>
Method to check if a RTIS Client has timed out based on a check of it's previous received heartbeat.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>maximum_delta : <i>float (default = 15)</i></b>
<p class="attr">
The maximum difference in time between now and the last received heartbeat before being listed as a timed out client.
</p></td>
</tr>
<tr class="field">
<th class="field-name"><b>Returns:</b></td>
<td class="field-body" width="100%"><b>state : <i>bool</i></b>
<p class="attr">
returns <code>True</code> if not timed out, returns <code>False</code> if the RTIS Client is timed out.
</p></td>
</tr>
</tbody>
</table>
## **Pose**
<p class="func-header">
<i>class</i> <b>Pose</b>(<i>x, y, z, pitch, yaw, roll</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L175">[source]</a>
</p>
Class describing a 3D pose using the right-handed coordinate system where x points forward, Y points to the left
and Z point upwards. Rotations are around these axis also by the right-hand rule with roll being
around the X-axis, pitch being around the Y-axis and yaw around the Z-axis.
x, y and z are in meters. Pitch, yaw and roll in degrees.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Attributes:</b></td>
<td class="field-body" width="100%"><b>x : <i>float</i></b>
<p class="attr">
The forward facing axis position value in meters.
</p>
<b>y : <i>float</i></b>
<p class="attr">
The left facing axis position value in meters.
</p>
<b>z : <i>float</i></b>
<p class="attr">
The upwards facing axis position value in meters.
</p>
<b>pitch : <i>float</i></b>
<p class="attr">
The rotation value around the Y-axis in degrees.
</p>
<b>yaw : <i>float</i></b>
<p class="attr">
The rotation value around the Z-axis in degrees.
</p>
<b>roll : <i>float</i></b>
<p class="attr">
The rotation value around the X-axis in degrees.
</p></td>
</tr>
</tbody>
</table>
## **dspSettings**
<p class="func-header">
<i>class</i> <b>dspSettings</b>(<i>configName, dspFiles, workers, pdmEnable, matchedFilterEnable, beamformingEnable, enveloppeEnable, cleanEnable, version</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L245">[source]</a>
</p>
Class describing all the recording and processing settings related to RTIS devices.
Too many variables to describe here. Check the source-code for more information on which variables are available.
Can be converted to a dictionary.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
</table>
# **Methods**
## **dsp_worker_process**
<p class="func-header">
<i>def</i> <b>dsp_worker_process</b>(<i>dspSettings, inputDataQueue, outputDataQueue, logger =None</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L404">[source]</a>
</p>
The method to use als a `multiprocessing.Process` to perform a DSP pipeline on sonar measurements
using the RTIS CUDA library. This will run continiously until closed.
It will first prepare the DSP pipeline with the given settings. Afterwards it will process each measurement
placed on the input data queue and place the result on the output data queue.
The resulting data on the output data queue will be a tuple with the following content:
- `ID`: string: The RTIS Client ID.
- `processedData`: numpy ndarray: The data matrix holding the optionally processed data.
- `rawData`: numpy ndarray: The data matrix holding the raw recording data samples as uint32.
- `timestamp`: float: Epoch timestamp of when the measurement was taken on the RTIS Client.
- `index`: int: The measurement index of this measurement for this RTIS Client.
- `behaviour`: int (0 or 1): The behaviour of the RTIS Client sonar mode. 0 means passive, 1 means active.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>dspSettings : <i>dspSettings</i></b>
<p class="attr">
The complete class containing all RTIS settings for measuring and processing.
</p>
<b>inputDataQueue : <i>multiprocessing.Manager.Queue</i></b>
<p class="attr">
The queue to get the measurement data packages from.
</p>
<b>outputDataQueue : <i>multiprocessing.Manager.Queue</i></b>
<p class="attr">
The queue to put the measurement data packages on after processing.
</p>
<b>logger : <i>logging.Logger (default = None)</i></b>
<p class="attr">
The logging library object to stream the messages to. If None then normal Print statement is used.
</p></td>
</tr>
</tbody>
</table>
## **get_server_config**
<p class="func-header">
<i>def</i> <b>get_server_config</b>(<i>serverIp, logger=None</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L471">[source]</a>
</p>
A function to get the [`dspSettings`](https://cosysgit.uantwerpen.be/rtis-software/rtiscommon/-/wikis/home#dspsettings) currently used by the RTIS Server.
Usefull for connected applications.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>serverIp : <i>string</i></b>
<p class="attr">
The IP on which the RTIS Server can be found.
</p>
<b>logger : <i>logging.logger (default = None)</i></b>
<p class="attr">
The logging library object to stream the messages to. If None then normal Print statement is used.
</p></td>
</tr>
<tr class="field">
<th class="field-name"><b>Returns:</b></td>
<td class="field-body" width="100%"><b>serverDspSettings : <i>dspSettings</i></b>
<p class="attr">
The complete class containing all RTIS settings for measuring and processing. Returns None on failure.
</p></td>
</tr>
</tbody>
</table>
## **get_clients_and_configs**
<p class="func-header">
<i>def</i> <b>get_clients_and_configs</b>(<i>serverIp, logger=None</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L547">[source]</a>
</p>
A method to get all the active connected RTIS Clients with and their respective [`dspSettings`](https://cosysgit.uantwerpen.be/rtis-software/rtiscommon/-/wikis/home#dspsettings).
Usefull for connected applications.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>serverIp : <i>string</i></b>
<p class="attr">
The IP on which the RTIS Server can be found.
</p>
<b>logger : <i>logging.logger (default = None)</i></b>
<p class="attr">
The logging library object to stream the messages to. If None then normal Print statement is used.
</p></td>
</tr>
<tr class="field">
<th class="field-name"><b>Returns:</b></td>
<td class="field-body" width="100%"><b>clients : <i>dictionary<string,dspSettings></i></b>
<p class="attr">
A dictionary with the RTIS Client IDs as the keys and the DSP settings as the values.
</p></td>
</tr>
</tbody>
</table>
## **get_client_pose**
<p class="func-header">
<i>def</i> <b>get_client_pose</b>(<i>serverIp, client_id, logger=None</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L642">[source]</a>
</p>
A function to get the [`Pose`](https://cosysgit.uantwerpen.be/rtis-software/rtiscommon/-/wikis/home#pose) of a particular RTIS Client with.
Usefull for connected applications.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>serverIp : <i>string</i></b>
<p class="attr">
The IP on which the RTIS Server can be found.
</p>
<b>client_id : <i>string</i></b>
<p class="attr">
The identifier of the RTIS Client.
</p>
<b>logger : <i>logging.logger (default = None)</i></b>
<p class="attr">
The logging library object to stream the messages to. If None then normal Print statement is used.
</p></td>
</tr>
<tr class="field">
<th class="field-name"><b>Returns:</b></td>
<td class="field-body" width="100%"><b>pose : <i>Pose</i></b>
<p class="attr">
The Pose object containing the position and (euler) rotation values of that RTIS Client. Returns None on failure.
</p></td>
</tr>
</tbody>
</table>
## **set_behaviour_active**
<p class="func-header">
<i>def</i> <b>set_behaviour_active</b>(<i>serverIp, logger=None</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L691">[source]</a>
</p>
Tell all connected RTIS Clients to set their sonar behaviour to active.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>serverIp : <i>string</i></b>
<p class="attr">
The IP on which the RTIS Server can be found.
</p>
<b>logger : <i>logging.logger (default = None)</i></b>
<p class="attr">
The logging library object to stream the messages to. If None then normal Print statement is used.
</p></td>
</tr>
</tbody>
</table>
## **set_behaviour_passive**
<p class="func-header">
<i>def</i> <b>set_behaviour_passive</b>(<i>serverIp, logger=None</i>) <a class="src-href" target="_blank" href="https://cosysgit.uantwerpen.be/rtis-software/rtisdev/-/blob/master/rtiscommon/RTISCommon2.py#L717">[source]</a>
</p>
Tell all connected RTIS Clients to set their sonar behaviour to passive.
<table class="docutils field-list field-table" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field">
<th class="field-name"><b>Parameters:</b></td>
<td class="field-body" width="100%"><b>serverIp : <i>string</i></b>
<p class="attr">
The IP on which the RTIS Server can be found.
</p>
<b>logger : <i>logging.logger (default = None)</i></b>
<p class="attr">
The logging library object to stream the messages to. If None then normal Print statement is used.
</p></td>
</tr>
</tbody>
</table>
Clone repository
  • Home