My Tickets

Drivers Manual

QINSy Remote Control Telemetry Heading - 05

Description

This driver is used to exchange position, heading and attitude information between a number of objects via a radio link. The objects may be survey vessels, tugs, ROVs, etc. One of the objects is designated as the master object. The other objects are designated as slave objects. On each object the QinsSy Survey software needs to be operational. The driver was developed and tested using SATEL's SATELLINE-2ASX Radios running at 9600 baud.

The drivers operate using a time slot principle. This means that each driver is allocated a time slot with a predefined duration. The start of the time slot is marked by a query message which is transmitted by the driver on the master object. This query message contains a slot id which determines which object is allowed to send data. Once an object receives a query message with the destination slot id set to its own slot id it will respond with a response message which contains the position, heading and attitude information of the reference/COG node from the priority computation. All objects receive this response message and may decide to decode the information based on the defined input drivers.

To allow the definition of the output driver and input drivers entries in the template database the following system types are available:

  1. Position Navigation System
  2. Gyro Compass
  3. Pitch, Roll and Heave Sensor
  4. Output System


Driver Information

Driver QINSy Remote Controlled Telemetry Interface Type Serial/UDP Driver Class Type
UTC Driver (question) Yes and No Input / Output Input and Output  Executable DrvRemoteController.exe 
Related Systems
Related Pages



Interfacing Notes

The following cable wiring (three-way) was sufficient for the Satelline 2ASX radios which were used during the development of the driver.

Different wiring may be required for different radios. Please consult the radio manuals for other radios.


Database Setup

This section contains additional notes for the setup of a network in the 'Database Setup' program.

For each remote object the following Systems need to be defined:

  1. Position Navigation System (required)
  2. Gyro Compass (optional)
  3. Pitch, Roll and Heave Sensor (optional).

The slot identifiers entered in these systems should match the slot identifiers on the other QINSy instances. It is advised to plan the slot identifiers assignments before building the template databases. 
An example assignment may be found in the table below:

Vessel

Slot Identifier

RSV

1

Leading tug

2

Trailing tug

3

Work boat

4

If you have defined at least one of the above drivers, then there is no need to define an output driver.

Only define an Output System in case you are not interested in receiving information from the other vessels, but you do need to send your local information to the others.

Online

Controller

There is no need to set up any parameters in the Controller program. The driver will automatically select the CoG node of each local object using the priority settings as defined in the Controller.

Online, Qinsy output drivers will usually 'skew' an output position to the output time, using the current speed and course computed for the last available position. However, DrvRemoteController will NOT do that: the last position with corresponding time tag will be sent over and over again, until a new position (with new time) becomes available. At the other (receiving) side, it depends on which driver version has been selected. If the UTC/PPS version is used, then DrvRemoteController will use the time tag from the transferred position data string and will recognize that the position from the remote vessel has not been updated. If the non-UTC/PPS version is used, then DrvRemoteController will issue a new local system time tag for each newly received position. What happens next, depends on the Computation Settings as defined on the "Position Results" tab for each vessel.

Driver

This paragraph describes the user interface (UI) of the driver. The UI of the driver consists of a dialog with multiple tab pages. The first tab page called 'Network' contains the radio link 'network' settings of the driver. The settings on the tab page are applicable to all objects. Besides the 'Network' tab page there is a tab page for each object which is defined in the used template database. The titles of each tab page are derived from the object names. In this document these tab pages are called 'Object' tab pages.

'Network' tab page

Below you will find a table with all UI elements and their descriptions:

UI Element

Description

'Settings' Grid Control

This grid control contains all network wide settings that may be changed by the user. In normal circumstance these settings should be the same on all objects. A description of each setting is given in a table below.

'Apply' Button

This button is used to confirm and activate any changes made in the 'Settings' grid control.

'Start/Stop' Button

This button is used to manually enable/disable the radio network. Only active when 'Startup Mode' setting is set to 'Manual Startup'.

'Reset' Button

This button is used to reset the network. This includes the scheduler on the 'Master' object and the serial port to which the radio is connected.

'Objects' Grid Control

This grid control is used to monitor the state of the connections to each defined object. A description of each column is given in a table below.

'Messages' List Box

This list box is used to monitor the exchange of message and any error conditions. It is primarily used for trouble shooting. A description of all possible messages may be found in a table below.

Below you will find a table with all the settings and their descriptions which may be found in the 'Settings' grid control:

Settings

Description

Network Mode

Mode in which the radio is operating. Currently only Point-to-Point mode is possible. May be expanded with other modes in future versions.

Master Object

Object that is responsible for controlling the network. Within the whole network there should be only one master object.

Startup Mode

Mode which describes how the driver behaves on startup. 'Manual Start' requires the user to use the Start/Stop button to toggle the state of the network. 'Automatic Start' causes the driver to start automatically.

Anchor Information

When this setting is enabled on the master object, all locally defined anchors will be broadcast as so-called 'remote anchors'.

When this setting is enabled on a slave object, possible transmitted anchors from the master will be received as 'remote anchors'.

Remote anchors are purely for display: their information is visible in a Navigation Display but you can not actively do anchor handling with them:

A remote anchor label is always suffixed with a ® symbol. (An 'R' from Remote in a circle.)

The advantage of using this option to send anchor information across the vessel spread is that it makes the use of a dedicated Anchor Output / Anchor Input driver obsolete.
Normally these drivers occupy a dedicated radio link, so this link becomes free when using this Qinsy Remote Control driver instead.

Slot Length

Length of the used time slot in seconds. Every defined object gets this amount of time to answer after an object query message is sent.

Send Pause

Length of pause between the transmissions of two consecutive messages. This setting is used to make sure that the radios do not combine certain messages in a single message.

Below you will find a table with all columns and their descriptions which may be found in the 'Objects' grid control:

Column

Description

Object Name

The name of the object as entered in the 'Database Setup' program.

Slot ID

Slot ID as entered in the 'Database Setup' program for remote objects and in this driver for the 'Local' objects.

Status

Status of the object. Possible values are 'Enabled' and 'Disabled'.

Rx/Tx Age

Number of seconds since the last message related to this object was received/transmitted.

Object Type

The type of the object. 'Local' objects are computed on this PC and their results are sent via the radio network to other PCs. 'Remote' objects are computed on another PC and are sent via the network to this PC.

Here you will find a table of all the possible status/error messages and their descriptions:

  Status/Error messages

Status/Error Message

Description

Aborting file transfer after <FileTimeout> seconds timeout

Driver is aborting after waiting the indicated timeout for the successful transfer of a file segment message.

Aborting remote command after <RemoteCommandTimeout> seconds timeout

Driver is aborting after waiting the indicated timeout for the successful transfer of a remote command message.

Added <ByteCount> bytes at offset <Offset> while sending file segment

Driver added the indicated number of bytes starting at the indicated offset to the file segment message for sending.

Closed file <FilePath>

The driver closed the indicated file.

Computed file CRC <ComputedCrc> != Received file CRC <ReceivedCrc>

While decoding the file buffer the indicated computed CRC value does not match the indicated received CRC value. Transfer will be aborted.

Content size does not match segment header size (content <ContentSize> != segment Header <HeaderSize>)

Driver is unable to decode due to a mismatch between amount of data mentioned in the segment header and the content size of actual file segment message.

Decoded <ByteCount> bytes at offset <Offset> while receiving file segment

Driver decoded indicated number of bytes at indicated offset from a file segment message.

Decoding remote command for SlotId <SlotId>

Driver is decoding remote command message for indicated slot identifier.

Decoding remote acknowledge for SlotId <SlotId>

Driver is decoding remote acknowledgment message for indicated slot identifier.

Detected error on serial port. Port will be reset

The driver detected an error condition on the serial port and the serial port will be reset.

Driver startup

The worker thread is starting up. The worker thread is responsible for all communications.

Driver shutdown

The worker thread is shutting down.

Driver mode: Satelline 3AS

Driver is expecting SATEL's SATELLINE 3AS radio modems.

Encoding file CRC error for SlotId <SlotId>

Driver is encoding file CRC error message for indicated slot identifier.

Encoding remote command <Command> for SlotId <SlotId>

Driver is encoding message with indicated remote command for indicated slot identifier.

Encoding remote acknowledge for SlotId <SlotId>

Driver is encoding remote acknowledgement message for indicated slot identifier.

Failed to reset serial port

Driver was unable to reset the serial port.

Failed to decode message

Driver failed to decode received message. Message was probably corrupted.

Failed to write data

Driver failed to write data to serial port.

Failed to acquire SlotId while sending object query

Driver failed to acquire slot identifier for next time slot.

Failed to find file <file path>

Driver failed to find indicated file path.

Failed to acquire SlotId while sending file segment

Driver was unable to acquire the active slot identifier from the scheduler.

Failed to acquire SlotId while sending remote command

Driver was unable to acquire the active slot identifier from the scheduler.

File transfer is not activated while sending file acknowledge

Driver wants to send file acknowledgment message while file transfer is not active.

File offsets do not match (received <ReceivedOffset> != expected <ExpectedOffset>) while receiving file acknowledge

The received file offset does not match the expected file offset while receiving a file acknowledgment message.

File CRC error encountered. Transfer was aborted

Receiving driver detected a file CRC error. The file transfer was aborted.

Finished transfer of file '<FilePath>'

Driver finished the transfer of the indicated file.

Ignoring query for object with SlotId <SlotId>

Driver is ignoring object query for indicated slot identifier.

Ignoring file segment for object with SlotId <SlotId> while receiving file segment

Driver is ignoring file segment message for indicated slot identifier.

Ignoring remote command for object with SlotId <SlotId>

Driver is ignoring remote command for indicated slot identifier.

Incorrect message type <MessageType> received.Aborting file transfer.

Driver encountered incorrect message type while transferring file.Aborting file transfer.

Incorrect message type <MessageType> received.Aborting remote command.

Driver encountered incorrect message type while transferring remote command.Aborting remote command transfer.

Master with <ActiveSlotCount> slots

The driver is starting in master mode with the number of active slots.

Network is not enabled while sending object query

Driver tried to send object query message while network is disabled.

Network is not enabled while receiving object query

Driver tried to receive object query message while network is disabled.

Network is not enabled while sending object response

Driver tried to send object response message while network is disabled.

Network is not enabled while receiving object response

Driver tried to receive object response while network is disabled.

Network is not enabled while sending file segment

Driver tried to send file segment message while network is disabled.

Network is not enabled while receiving file segment

Driver tried to receive file segment message while network is disabled.

Network is not enabled while sending file acknowledge

Driver tried to send file acknowledgment message while network is disabled.

Network is not enabled while encoding file CRC error

Driver tried to send file CRC error message while network is disabled.

Network is not enabled while sending remote command

Driver tried to send file remote command message while network is disabled.

Network is not enabled while decoding remote command

Driver tried to decode remote command message while network is disabled.

Network is not enabled while encoding remote acknowledge

Driver tried to encode remote acknowledgment message while network is disabled.

No file transfer is in progress while sending file segment

Driver tried to send file segment message while no file transfer was in progress.

No file transfer is in progress to SlotId <SlotId> while sending file segment

Driver tried to sent file segment message to indicated slot identifier while no file transfer was in progress to the slot identifier.

Not enough data available while receiving object response

Driver did not receive enough data while receiving object response message.

Not enough data available for segmentHeader while receiving file segment

Driver did not receive enough data to decode segment header while receiving file segment message.

Not enough data available while receiving file acknowledge

Driver did not receive enough data to decode file acknowledgement message.

Not enough data available while decoding remote command

Driver did not receive enough data to decode remote command message.

Not enough data available while decoding remote acknowledge

Driver did not receive enough data to decode remote acknowledgement message.

Object with SlotId <SlotId> is not enabled while sending object query

Object with indicated slot identifier is not enabled while driver wants to send object query to it.

Object with SlotId <SlotId> is disabled while receiving object query

Object with indicated slot identifier is not enabled while driver is receiving object query for it.

Object with slotId <SlotId> not found while sending object response

Driver failed to find object with indicated slot identifier.

Object with SlotId <SlotId> is disabled while sending object response

Object with indicated slot identifier is not enabled while driver wants to send object response for it.

Object with SlotId <SlotId> is disabled while receiving object response

Object with indicated slot identifier is not enabled while driver wants to receive object response for it.

Object with SlotId <SlotId> is not enabled while sending file segment

Object with indicated slot identifier is not enabled while driver wants to send file segment message for it.

Object with SlotId <SlotId> is disabled while receiving file segment

Object with indicated slot identifier is not enabled while driver wants to receive file segment message for it.

Object with SlotId <SlotId> is disabled while sending file acknowledge

Object with indicated slot identifier is disabled while driver wants to send file acknowledgment message.

Object slot ids do not match (received <ReceivedId> != expected <ExpectedId>) while receiving file acknowledge

The received object identifier does not match the expected object identifier while receiving a file acknowledgement message.

Object with SlotId <SlotId> is not enabled while encoding file CRC error

Object with indicated slot identifier is disabled while driver wants to send file CRC error message.

Object slot ids do not match (received <ReceivedId> != expected <ExpectedId>) while receiving file CRC error

The received object identifier does not match the expected object identifier while receiving a file CRC error message.

Object with SlotId <SlotId> is not enabled while sending remote command

Object with indicated slot identifier is disabled while driver wants to send remote command message.

Object with SlotId <SlotId> is disabled while decoding remote command

Object with indicated slot identifier is disabled while driver wants to decode remote command message.

Object with SlotId <SlotId> is not enabled while encoding remote acknowledge

Object with indicated slot identifier is disabled while driver wants to encode remote acknowledgement message.

Object slot ids do not match (received <ReceivedId> != expected <ExpectedId>) while decoding remote acknowledge

The received object identifier does not match the expected object identifier while receiving a remote acknowledgement message.

Opened file <FilePath>

The driver successfully opened the file mentioned.

Output interval did not expire while sending object response

Output interval did not expire since last object response was sent.

Read all <ByteCount> bytes from file <FilePath>

The driver successfully read the number of bytes from the indicated file.

Received CMD_INIT from Controller

The driver received an initialization command from the Controller. When this command is received the driver reads all settings which will not change during the execution of the driver.

Received CMD_SETTINGS from Controller

The driver received a settings command from the Controller. When this command is received the driver re-reads all settings which may change during the execution of the driver. Once the settings are read the driver re-initializes to apply them.

Received CMD_RESET from Controller

The driver received a reset command from the Controller and will reset the serial port.

Received CMD_EXIT from Controller

The driver received an exit command from the Controller and will start its termination sequence.

Received settings from UI

The driver received new settings from its user interface. These settings will be applied.

Received command to start scheduler from UI

The driver received a command from its user interface to start the scheduler. The command will be executed.

Received command to stop scheduler from UI

The driver received a command from its user interface to stop the scheduler. The command will be executed.

Received command to transfer file from UI

The driver received a command to transfer a file to a slave object. The transfer will be started.

Received command to restore displays from UI

The driver received a command from its UI to send a remote command to restore the active display set on a slave object.

Received command to reset network from UI

The driver received a command to abort any file transfers, remote command transfers, restart the scheduler and to reset the serial restart the scheduler.

Received segment for offset 0 while already transferring

Driver received first file segment message of a transfer while transfer was already in progress.

Received file segment for wrong offset (expected <ExpectedOffset> != received <ReceivedOffset>)

Driver received a file segment message for an unexpected offset. Message indicated expected and received offset values.

Received file '<FilePath>' with <ByteCount> bytes

Driver successfully received and decoded the indicated file with the indicated number of bytes.

Received unexpected remote command <Command>

Driver received indicated unexpected remote command.

Received remote command <NewCommand> while already transferring command <ActiveCommand>

Driver received indicated new remote command while execution of indicated active remote command was still in progress.

Receiving object query for SlotId <SlotId>

Driver is receiving object query message for indicated slot identifier.

Receiving object response for SlotId <SlotId>

Driver is receiving object response message for indicated slot identifier.

Receiving file segment for SlotId <SlotId>

Driver is receiving file segment message for indicated slot identifier.

Receiving file acknowledge for SlotId <SlotId>

Driver is receiving file acknowledgment message for indicated slot identifier.

Receiving file CRC error for SlotId <SlotId>

Driver is receiving file CRC message for indicated slot identifier.

Send remote command to set line <line index> to id <record id> from file <file path>

Driver sent remote command to set line with indicated index to record with indicated record id from the indicated file path.

Sending object query for SlotId <SlotId>

Driver is sending object query message to indicated slot identifier.

Sending object response for SlotId <SlotId>

Driver is sending object response message for indicated slot identifier.

Sending file segment for SlotId <SlotId>

Driver is sending file segment message to indicated slot identifier.

Sending file acknowledge for SlotId <SlotId>

Driver is sending file acknowledgment message to indicated slot identifier.

Serial port was reset

Driver successfully reset the serial port.

Slave waiting for data

The driver is starting in slave mode and is now waiting for data.

SlotId <SlotId> not found while sending object query

Driver failed to find object with indicated slot identifier.

Start transfer of file <FilePath>

The driver is starting the actual transfer of the indicated file.

Start transfer of file

Driver is starting the transfer of a file.

Switching to next time slot with SlotId <SlotId>

Driver is switch to next time slot for indicated slot identifier.

The received remote command <ReceivedCommand> does not match the expected remote command <ExpectedCommand> while receiving a remote acknowledge message.

The indicated received remote command does not match the expected remote command while receiving a remote acknowledgement message.

Time from messages enabled

The time from the object response messages is being used as time tag.

Unable to open serial port <PortNumber>

The driver is unable the open the displayed serial port. Please check settings in 'Database Setup' program.

Unable to read all bytes from file <FilePath> (read <ReadCount> != file <ExpectedCcount>)

The driver was not able to read the expected number of bytes from the indicated file. Only the indicated amount of bytes could be read.

Unable to encode message while sending object query

Driver failed to encode object query message.

Unable to read new position/heading/attitude from IPC buffer

Driver failed to read new position/heading/attitude information from IPC buffer.

Unable to encode message while sending object response

Driver failed to encode object response message.

Unable to encode message while sending file segment

Driver failed to encode file segment message.

Unable to encode message while sending file acknowledge

Driver was unable to encode file acknowledgment message.

Unable to encode message while encoding file CRC error

Driver failed to encode file CRC error message.

Unable to encode message while encoding remote command

Driver failed to encode remote command message.

Unable to encode message while encoding remote acknowledge

Driver failed to encode remote acknowledgement message.

Unexpected message type <MessageType>

Driver did not expected the indicate message type.Decoding aborted.

Unknown master state <MasterState>

Driver encountered unknown master state. This error should be reported to QPS at support@qps.nl.

Unknown slave state <SlaveState>

Driver encountered unknown slave state. This error should be reported to QPS at support@qps.nl.

Unsupported command line argument '<Argument>'

Driver encountered the indicated unsupported command line argument.

Written <ByteCount> bytes to file '<FilePath>'

Driver wrote the indicated number of bytes to the indicated file.


'Object' tab page

Below you will find a table with all UI elements and their descriptions:

UI Element

Description

'Settings' Grid Control

This grid control contains all object specific settings that may be changed by the user. A description of each setting is given in a table below.

'Apply' Button

This button is used to confirm and activate any changes made in the 'Settings' grid control.

'Disable/Enable' Button

This button is used to manually enable/disable an object.

'Transfer' Button

This button is used to transfer a file from the Master object to a slave object. Currently it is not possible to transfer files from slave to a master object or between two slave objects. A work-around for this limitation is to temporarily change the master object on all instances of the driver.

'Restore' Button

This button us used to restore the backup of a display set on a remote object. This allows the user on the master object to restore a previously backed up display set on a slave object.

'Objects' Grid Control

This grid control is used to monitor the state of the connections to each defined object. A description of each column may be found in the 'Network' tab page description.

'Messages' List Box

This list box is used to monitor the exchange of message and any error conditions. It is primarily used for trouble shooting. A description of all possible messages may be found in the 'Network' tab page description.

Below you will find a table with all the settings and their descriptions which may be found in the 'Settings' grid control:

Settings

Description

Object Name

The name of the object as entered in the 'Database Setup' program.

Slot ID

Slot ID as entered in the 'Database Setup' program for remote objects and in this driver for the 'Local' objects. This setting is read-only for remote objects. By design, slot IDs must be in the range from 1 to 255, but actually there is no check on the slot ID in the driver itself.

Object Type

The type of the object. 'Local' objects are computed on this PC and their results are sent via the radio network to other PCs. 'Remote' objects are computed on another PC and sent via the network to this PC. These settings may be changed but this should not be necessary in normal circumstances.

Drivers IO Notes

Below you will find a table with the possible command line options for the 'drivers.io' file:

Option

Description

SATEL3AS

Driver mode which is used to support different types of radios. Currently not used.

PPS

Driver will use the time tag from the message. Without this option the driver issues a new time tag at reception of the messages.

Registry Settings

The registry settings loaded when the driver starts up, can be found in the following location:

[ HKEY_CURRENT_USER \ Software \ QPS \ Qinsy \ 9.0 \ Drivers \ DrvRemoteController \ Settings ]

Some of the registry settings for DrvRemoteController can be changed by clicking on the title bar:

Other settings should be changed manually. For example, the LogLevel values to create a log file:

Value

Level

Description

0

Disabled

Output disabled

1

Low

Output Error and Fatal messages

2

Medium

Output Info and Warning messages too

3

High

Output Debug and Test messages too

Additional Information

Below you will find some additional notes on the usage of the messages.

Remote Line Control

In order to allow the master driver to control the main line and additional lines on the slave objects the query message contains the path, record id and orientation of each line which needs to be sent to a slave object. The used line database file needs to be available on the slave computer. This can be achieved by using the transfer option, see the File Transfer paragraph below for more information. Each slave object receives the main line information and any additional lines for which the description field matches the slave object name.

The lines that are part of the object query message are used to control the main line and additional lines on the slave object. The main line on the master object is always sent to the slave object. An additional line is sent to a slave object if the description field of the additional line matches the slave object name. Multiple additional lines may sent as shown below:

File Transfer

The driver on the master object is capable of sending a file to a slave object. In order to perform the transfer the whole file is read into memory. Subsequently the buffered data is sent to the slave object in one or more segments. Each segment is checked on the slave side before an acknowledgment is sent to the master object. The transfer may be aborted by resetting the driver via the UI. While the transfer is in progress the regular exchange of position, heading and attitude information is suspended. The maximum retry time for a single fragment may be controlled via the registry setting "File Transfer Timeout". The default value is 30 seconds which means that a segment needs to be successfully sent via the radio within 30 seconds otherwise the transfer is aborted by the driver. Once the file transfer is complete and all segments have been received by the slave driver a CRC value is computed over the content of the file. In case this CRC does not match the CRC value which is part of the content a File CRC Error message is sent to the master driver. This message triggers a message box to notify the user that the file transfer was aborted and that he/she should restart the file transfer. In case the CRC values do match, the file is written to disk and a message box is triggered by the Master driver to inform the user that the transfer was successful.

Remote Display Restore

The driver on the master object has the ability to restore a display which was backed up previously on one of the slave objects. The backup option can be found in the Display Manager under Manage Sets. The restore is accomplished by sending a command to the driver on the slave object which forwards this command to the Controller which is running on the slave object. An acknowledgment is send once the command has been received and forwarded. The maximum retry time for the command may be controlled via the registry setting "Remote Command Timeout". The default value is 10 seconds which means that a command needs to be successfully sent via the radio within 10 seconds otherwise the transfer is aborted by the driver.