Greensea Workspace allows for real time import of NMEA messages from external applications or export of NMEA messages to external applications. This is handled by a set of helper programs:
- gss_nmea2gss – Real time import of NMEA messages from other applications to Greensea Workspace.
- gss_gss2nmea – Real time export of NMEA messages from Greensea Workspace to other applications..
These programs are installed as part of Greensea Workspace. Greensea Workspace uses the helper programs to receive or publish information to or from its channels. More information about Greensea Workspace’s channels can be found in the Channel/Data Lists page.
NOTE – You must use -c /dev/vr485 after each command when accessing the putty when operating with Workhorse Splashproof Controller, for example:
vr_enum -c /dev/vr485
./vr_debug_putty.py [node_ID] -c /dev/vr485
More information will be provided about setting up specific importing and exporting requirements on the following pages:
- Determine the capabilities of the other application, including messages available or permitted, communications protocols and ports available.
- Make all physical connections for the ROV and other application’s device requirements (if necessary).
- Open a terminal window and enter the gss_* command (where * = either “nmea2gss” or “gss2nmea”) and associated parameters (as appropriate for the other application).
- Start Greensea Workspace and the other application. (the order of starting will generally not matter, but in some cases it might – this will depend on the other application’s requirements, including time-out settings, etc.)
- Verify import or export is operational.
You can create a shell script (.sh) and desktop shortcut for the gss_* command to make it easier to start the helper program.
You can customize the Greensea Workspace configuration to include the shell script when Greensea Workspace is started.
You can use the Greensea Workspace Process View to enable or disable import / export processes allowing you to alternate between configurations.
Some applications may require setting up a virtual port to enable communications between Greensea Workspace and another application, depending on the protocols supported by that application. See Device Integration section in the appendices.
Real Time Import into Greensea Workspace
Real Time Import requires an application that can export NMEA sentences in real time via a computer port, and the use of gss_nmea2gss.
Real Time Import Example
If your application can export NMEA sentences in real time to a computer port, you will need to know how to configure it. The application’s documentation should provide the information you need. For example, if your application can export an NMEA GGA sentence (LAT/LON coordinate data) using TCP/IP address 192.168.1.34, port 16720, you would execute the following command in a terminal window before starting Greensea Workspace (this command should be entered on one line):
- gss_nmea2gss transport=tcp hostname=192.168.1.34 ip_port=16720 gps_channel=TS_SHIPS_POS_STAT
Where:
- gss_nmea2gss is the helper program
- transport=tcp tells the program to use the TCP protocol for communication
- hostname=192.168.1.34 is the TCP/IP address that the application uses for export
- ip_port=16720 is the TCP/IP port that the application uses for export
- gps_channel=TS_SHIPS_POS_STAT is the Greensea Workspace Channel for receiving the data – in this example the data will be treated as a topside GPS
Using a Shell Script to Start the Helper Program
To create a shell script, the above command can be entered into a .sh file as follows (using the “\” to indicate more data for the command follows on the next line, which makes the file easier to read):
#!/bin/bash
gss_nmea2gss \
transport=tcp \
hostname=192.168.1.34 \
ip_port=16720 \
gps_channel=TS_SHIPS_POS_STAT
A desktop shortcut can be created for this .sh file to make it easier to execute. Information about creating a shortcut can be found online.
Options for gss_nmea2gss
You can add the help=true option to the gss_nmea2gss command to display a complete list of supported channels and input parameters.
gss_nmea2gss help=true
Modifying Greensea’s Workspace Configuration for Import
Here is a sample excerpt of the modification required to be added to the process_server_config.yml file.
- client_name: videoray uuid: USER_CREATED_NAME process_name: /home/videoray/USER_CREATED_SHELL_SCRIPT_NAME.sh arguments: - ~ process_cmd: keep_alive publish_console: 0 keep_alive_ms: 1000
USER_CREATED_NAME and USER_CREATED_SHELL_SCRIPT_NAME should be replaced with the names based on your preference and the filename of your shell script.
For assistance modifying the Greensea Workspace configuration or managing processes, please contact VideoRay Support at support@videoray.com.
Real Time Export from Greensea Workspace
Real Time Export requires an application that can receive NMEA sentences in real time via a computer port, and the use of gss_gss2nmea.
Real Time Export Example
If your application can import NMEA sentences in real time to a computer port, you will need to know how to configure it. The application’s documentation should provide the information you need. For example, if your application can import an NMEA GGA sentence (LAT/LON coordinate data) using UDP address 192.168.1.102, port 29470, and you want the export rate set to 10 Hz, you would execute the following command in a terminal window before starting Greensea Workspace (this command should be entered on one line):
- gss_gss2nmea transport=udp subscribe_channel=OPENINS_NAV_SOLUTION serial_message_out=GGA serial_mesage_out=PAUV udp_src_adr=192.168.1.215 udp_dst_adr=192.168.1.102 udp_port=29470 publish_hz-10
Where:
- gss_gss2nmea is the helper program
- transport=udp tells the program to use the UDP protocol for communication
- subscribe channel=OPENINS_NAV_SOLUTION tells the helper program to use (listen to) the OPENINS_NAV_SOLUTION channel
- serial_message_out=GGA tells the helper program to send the GGA sentence to the other application
- serial_message_out=PAUVA is the helper program to send the PAUV sentence to the other application
- usd_src_adr=192.168.1.215 is the UDP address of the source of the data (192.168.1.215 is the default address of the Operator Control console computer)
- usd_dst_adr=192.168.1.102 is the UDP address that the application uses for its import
- udp_port=29470 is the UDP port that the other application uses for its import
- publish_hz=10 sets the frequency of output messages to 10 Hz
You can export more than one serial message – in this case the GGA and PAUV sentences will be exported.
Using a Shell Script to Start the Helper Program
To create a shell script, the above command can be entered into a .sh file as follows (using the “\” to indicate more data for the command follows on the next line, which makes the file easier to read):
#!/bin/bash
gss_gss2nmea \
transport=udp \
subscribe_channel=OPENINS_NAV_SOLUTION \
serial_message_out=GGA \
serial_mesage_out=PAUV \
udp_src_adr=192.168.1.215 \
udp_dst_adr=192.168.1.102 \
udp_port=29470 \
publish_hz=10
A desktop shortcut can be created for this .sh file to make it easier to execute. Information about creating a shortcut can be found online.
Options for gss_gss2nmea
You can add the help=true option to the gss_gss2nmea command to display a complete list of supported channels and export parameters.
gss_gss2nmea help=true
Modifying Greensea’s Workspace Configuration for Export
Here is a sample excerpt of the modification required to be added to the process_server_config.yml file.
- client_name: videoray uuid: USER_CREATED_NAME process_name: /home/videoray/USER_CREATED_SHELL_SCRIPT_NAME.sh arguments: - ~ process_cmd: keep_alive publish_console: 0 keep_alive_ms: 1000
USER_CREATED_NAME and USER_CREATED_SHELL_SCRIPT_NAME should be replaced with the names based on your preference and the filename of your shell script.
For assistance modifying the Greensea Workspace configuration or managing processes, please contact VideoRay Support at support@videoray.com.
Import/Export Helper Programs
Help is available for each helper program using the syntax below.
For gss_nmea2gss
gss_nmea2gss help=true
For gss_gss2nmea
gss_gss2nmea help=true
gss_nmea2gss Help
NMEA2GSS Device Interface Application version r1002000005
Developed by Greensea Systems, Inc. using OpenSEA
Greensea Systems, Inc. ::www.greenseainc.com
Usage gss_nmea2gss [options]:
Available options (must not contain spaces)
gps_channel=GPS_STAT | Publish gss::gps_data_t on the argument channel |
pose_channel=GPS_POSE_STAT | Publish gss::pose_t on the argument channel |
alt_channel=ALT_STAT | Publish gss::pose_t on the argument channel |
depth_channel=DEPTH_STAT | Publish gss::pose_t on the argument channel |
hdg_channel=COMPASS_STAT | Publish gss::compass_stat_t on the argument channel |
imu_channel=IMU_STAT | Publish gss::imu_stat_t on the argument channel |
gga_channel=GGA_STAT | Publish gss::nmea_gga_t on the argument channel |
hdt_channel=HDT_STAT | Publish gss::nmea_hdt_t on the argument channel |
pressure_channel=PRESSURE_STAT | Publish gss::pressure_stat_t on the argument channel |
mda_channel=MDA_STAT | Publish gss::nmea_mda_t on the argument channel |
mwv_channel=MWV_STAT | Publish gss::nmea_mwv_t on the argument channel |
zda_channel=ZDA_STAT | Publish gss::nmea_zda_t on the argument channel |
vhw_channel=VHW_STAT | Publish gss::nmea_vhw_t on the argument channel |
vlw_channel=VLW_STAT | Publish gss::nmea_vlw_t on the argument channel |
mtw_channel=MTW_STAT | Publish gss::nmea_mtw_t on the argument channel |
pose_lbl_channel=LBL_STAT | Publish LBL messages with a gss::pose_t on the argument channel. |
pose_gga_with_id_channel=GGA_ID_STAT | Publish GGA messages with a gss::pose_t on the argument channel with the reference ID appended to channel. Note:The GGA with ID messages will publish a different channel for each tracked target.The target number will be appended to the end of the POREG channel. |
pose_poreg_channel=POREG_STAT | Publish POREG messages with a gss::pose_t on the argument channel. Note:The POREG messages will publish a different channel for each tracked target.The target number will be appended to the end of the POREG channel. |
pose_offset_northing=0 | Set a Northing offset in meters for pose_stat_t |
pose_offset_easting=0 | Set a Easting offset in meters for pose_stat_t |
pose_offset_height=0 | Set a Height offset in meters for pose_stat_t |
cfg_file | Use the argument configuration file to configure the serial port |
port=/dev/ttyS0 | An NMEA data source is connected to serial port /dev/ttyS0 |
baud=9600 | Use 9600 as the serial port baud rate |
gga_only=false | For GPS only, Transmit only when receiving gga messages. |
use_fix_time=false | For GPS pose_t only, Use the fix time instead of the unix time |
compass_stat_gga_quality_en=false | Enable adding the GGA fix quality to the anlaog_t vector for compass_stat_t messages |
compass_declination=0.0 | Set a compass declination value |
settings=9600,8,n,1,off | Serial NMEA data source is configured for 9600 baud, 8 databits, no parity, 1 stop bit NOTE: only one of ‘baud’ or ‘settings’ argument is allowed |
transport=serial | Set the transport type.Options: serial,tcp,udp |
hostname=192.168.1.201 | The hostname to connect. |
ip_port=9000 | The IP port to connect. |
datavalid=0 | Set a datavlid time before closing and opening the port.Default is disabled. |
ignore_csum | Set to ignore the checksum. |
logging_level=0 | Use the lowest level of logging Error logging levelsDebugInfoWarningSevereFatal |
ping=false | Enable to ping option to verify the correct serial settings |
help=false | Print Usage Information |
gss_gss2nmea Help
Gss_lcm_transport Interface Application
Developed by Greensea Systems, Inc. using openSEA
Greensea Systems, Inc. :: www.greenseainc.com
Usage gss_gss2nmea [options]:
Available options (must not contain spaces)
publish_hz | Target GGA transmit rate in Hz |
subscribe_channel | Receive messages on the specified channel |
nav_pcomms_channel= | Receive Navigation pcomms messages on the specified channel |
gps_channel= | Receive gps_data_t messages on the specified channel |
command_channel | Receive commands from the UI on command channel (optional) |
cfg_file | Use the configuration file: lcm_soln2serialconfig |
port | An lcm_soln2serial is connected to serial port /dev/ttyS0 |
baud | Use 9600 as the serial port baud rate settings=9600,8,n,1,off Serial NMEA data source is configured for 9600 baud, 8 databits,no parity, 1 stop bit NOTE: only one of ‘baud’ or ‘settings’ argument is allowed |
logging_level=0 | Use the lowest level of logging Error logging levelsDebugInfoWarningSevereFatal |
serial_message_out= | GGA Options:GGAHDTRVRTGDPTHPRTSS1PAUVVHWRMCMPOSPRDIDLOKI |
input_type=NAV_SOLN | Default will accept the navigation solution: Options:NAV_SOLNGPSCOMPASSIMU |
udp_port= | Port to transmit UDP data |
udp_src_adr= | UDP Source Address |
udp_dst_adr= | UDP Destination Address |
transport=SERIAL | Transport type Default: Serial Options: SERIAL, UDP |
help=true | Print Usage Information |