NAVIPAC & NAVISCAN
SHARE SERIAL INTERFACES
Last update: 29/03/2021
Version: 4.5
Contents
1 Introduction ..................................................................................................................... 3
2 Data protocol ................................................................................................................... 3
3 Setup in NaviPac ............................................................................................................. 4
4 Setup in NaviScan........................................................................................................... 5
5 Automatic import ............................................................................................................ 6
Page 2 of 8
1 Introduction
NaviPac allows the operator to share an input (serial device) with another program such as
NaviScan to ease the system configuration.
2 Data protocol
NaviPac offers a feature to share COM ports with NaviScan (or another external receiver).
This is done by sending the time tagged (made by NaviPac) out on UDP/IP network using
the ATTU (TimeBox) data format:
{
char Ident[4]; // Packet starter: always EIVA
INT32 Length; // Length of packet – remaining of entire packet
INT32 VersAndDomain; // First 16 bit version number (1)
// Last 16 bit domain id – unique time box number
INT32 InsId; // Id of instrument – version 1 COM port number
TIMEVAL time_stamp; // Timestamp of reception of telegram (first bit)
}
char data [length-16];
// The raw telegram – not really a part of
// structure – but follows right after the header
The data is kept in 4 bytes structures to avoid any discussions on special alignments.
Where TIMEVAL is found in the general sys/time.h header file.
In Windows it’s defined as:
struct timeval {
long tv_sec; /* seconds */
long tv_usec; /* and microseconds */
};
And in UNIX/Linux:
struct timeval {
time_t tv_sec // seconds
suseconds_t tv_usec // Microseconds
};
The reason for selecting this protocol is
• The data is delivered with timetag as per NaviPac – and thus delivered in a
consistent way.
• Several programs use the ATTU (TimeBox) protocol and can use this directly.
[Link]
Page 3 of 8
Last update: 29/3/2021
3 Setup in NaviPac
You must enable the functionality in NaviPac via the Project Settings menu:
Figure 1 Enable port sharing
• Enable port sharing
Must NaviPac export data from data inputs to NaviScan - and thus enable port
sharing between the two programs without losing time tagging accuracy. Is only
applicable for serial (COM) inputs and UDP inputs of:
• GPS
• Gyro
• Motion Sensor
• DVL
• Bathy
• Pipe tracker
Sharing can be used on same pc or on remote pc(s).
• Destination
Type the destination address of the receiver computer, eg
Page 4 of 8
[Link] For specific pc receiving the data.
[Link] For broadcast to multiple receivers on same subnet.
[Link] For local pc only.
• Port ID
The data will be sent out as UDP/IP messages using the ATTU format. Each serial
port will send its own UDP port defined by the original port number plus this add-on.
If you eg enter 10000 then COM1 will be sent on UDP 10001 etc.
• Object limited to <Object/vessel>
Select the data source for the delivery.
• None: All data input of the relevant type is transmitted
• Object: Only relevant data for selected object is transmitted, eg ROV.
The changes in setup will not be available until next restart of navigation.
4 Setup in NaviScan
The drivers can be read into NaviScan by using the ATTU interface:
Figure 2 [Link] – NaviScan Config
[Link]
Page 5 of 8
Last update: 29/3/2021
The trick is to know the mapping between NaviPac drivers and the NaviScan drivers, so
you select the correct driver both places.
5 Automatic import
NaviPac stores a file under C:\EIVA\NaviPac\Db called [Link].
This file gives a full listing of the outputs from NaviPac (shared ports plus defined outputs):
[NaviScan]
m_enablePortSharing=1
m_interpretedNpDataFromObj=-1
NPTCP=[Link]
m_portAddition=16000
m_ioNaviScan=[Link]
m_portShareData=0
[GPS]
INS001=44,GPS1 (NMEA) From NaviPac,21000,0.000,0.000,0.000
no_obj=1
[GYRO]
INS001=133,HMR3000 Gyro From NaviPac,16016,0.000,0.000,0.000, 0.000, 0.0000
no_obj=1
[MOTION]
INS001=227,MDL From NaviPac,16052,0.000,0.000,0.000,0.000,0.000,0.000, 0.0000
no_obj=1
[ACQ]
no_obj=3
INS001=795,SBE49 CTD,16017,0.000,0.000,0.000,0.0000
INS002=796,SBE49 CTD2,16017,0.000,0.000,0.000,0.0000
INS003=704,Digiquartz Depth,16066,0.000,0.000,0.000,0.0000
[DVL]
no_obj=0
[NP-OUT]
no_obj=3
INS001=649,EIVA runline control,9999,0.0,0.0,0.0,RLN,2
INS002=671,Position (Exp.) to NaviScan,9001,0.000,0.000,0.000,POS,2
INS003=670,Gyro to NaviScan TEST,9003,0.0,0.0,0.0,CALCGYRO,2
The file includes first a copy of the general setup as defined in the NaviPac global
parameters. Hereafter it includes a section per sensor type:
Page 6 of 8
• GPS
The GPS receiver
• GYRO
Defines the gyro instruments
• MOTION
Defines the motion (roll, pitch & heave) sensors
• ACQ
Define data acquisition inputs such as bathy sensors
• DVL
Doppler logs
• NP-OUT
Special data outputs
Each instrument will be defined by
• NaviPac type number
• User defined name
• ATTU (TimeBox) port number
In NaviScan Configuration you may import this via the File menu:
Figure 3 [Link] – NaviScan Config – Add Shared NaviPac Setup
[Link]
Page 7 of 8
Last update: 29/3/2021
Figure 4 [Link]
And voila – the setup is totally setup
Figure 5 NaviScan Configuration with instruments using the ATTU format
Page 8 of 8