Post-Processing
Software
XPF File Format Specification
Post-Processing Software – Xpf File Format Specification
Copyright
All rights reserved. No part of this manual may be reproduced or transmitted, in any form
or by any means, whether electronic, printed manual or otherwise, including but not
limited to photocopying, recording or information storage and retrieval systems, for any
purpose without prior written permission of iXBlue.
Disclaimer
iXBlue specifically disclaims all warranties, either expressed or implied, included but not
limited to implied warranties of merchantability and fitness for a particular purpose with
respect to this product and documentation. iXBlue reserves the right to revise or make
changes or improvements to this product or documentation at any time without notifying
any person of such revision or improvements.
In no event shall iXBlue be liable for any consequential or incidental damages, including
but not limited to loss of business profits or any commercial damages, arising out of the
use of this product.
Trademarks
Microsoft, MS-DOS and Windows are registered trademarks of Microsoft Corporation.
MU-XPF-AN-001 Ed. B April 2016 1
Post-Processing Software – Xpf File Format Specification
Table of Contents
1 INTRODUCTION .............................................................................................................. 3
2 STRUCTURE .................................................................................................................. 4
2.1 FILE HEADER .............................................................................................................................. 4
2.2 PACKETS .................................................................................................................................... 7
3 DETAILED SPECIFICATIONS ............................................................................................ 8
3.1 FILE HEADER .............................................................................................................................. 8
3.2 CHANNEL DEFINITION .................................................................................................................. 9
3.3 PACKET DEFINITION .................................................................................................................... 9
3.4 FIELD DEFINITION ......................................................................................................................10
3.5 PACKET HEADER ......................................................................................................................10
3.6 PACKET FOOTER .......................................................................................................................11
3.7 TYPE OF RESERVED PACKETS ...................................................................................................12
3.8 DATA TYPE ...............................................................................................................................15
3.9 DATA NATURE ..........................................................................................................................15
IXBLUE CONTACT - SUPPORT ...................................................................................... 17
IXBLUE CONTACT - SALES ........................................................................................... 17
MU-XPF-AN-001 Ed. B April 2016 2
Post-Processing Software – Xpf File Format Specification
1 INTRODUCTION
The eXtended Packet File (Xpf) is the native file used in several post processing software
edited by iXBlue (DELPH INS, ATLANS Post-Processing software, RAMSES REPLAY,
USBL REPLAY). It is used to store the input/output processing data.
This document describes the general organization of an Xpf file. Data organization
concerning packets designed for specific applications is described in additional documents
distributed with the software (html files).
MU-XPF-AN-001 Ed. B April 2016 3
Post-Processing Software – Xpf File Format Specification
2 STRUCTURE
The file is composed of the header followed by a variable number of packets:
header packet packet packet packet packet packet
The header contains information about the file creation as well as the « metadata » which
enable to interpret the contents of the following packets.
The packets offer a consistent data set (i.e.: inertial measurement, GNSS fix, USBL
detection…). Each packet is assigned to a channel (which represents the instrument
acquiring the data such as GPS #1, GPS #2, DVL bottom track, LBL etc..
Thus the packets can be logically grouped by channel even if this is not obvious in the
packet distribution in the file.
2.1 File Header
The header data is composed of three successive parts:
The file header
The channel definition
The packet definition
file header channel def channel def packet def packet def
1. The file header is a fixed size structure which contains the following fields:
Note: This section indicates the logical structure of the fields. See section 3 - Detailed
Specifications for more information.
Field Description
Marker Marker of the file start, must be "XPF".
Application name Name of the application which creates the file.
Application version Version of the application which creates the file.
File name Original name of the file.
Date Creation date of the file.
Number of channels Definition number of the following channel.
Number of packets definition Definition number of the following packets.
MU-XPF-AN-001 Ed. B April 2016 4
Post-Processing Software – Xpf File Format Specification
2. The channel definition is a fixed size structure which contains the following fields:
Note: This section indicates the logical structure of the fields. See section 3 - Detailed
Specifications for more information.
Field Description
Identifier Digital identifier of the channel.
Label Short name describing the channel data. The label must
contain only the characters [a-z], [A-Z], [0-9] and « - », « _ ».
The use of the space, the tabulation and the dot are
strictly prohibited.
Description Description of the data contained in the channel.
Identifier of the packet type Identifier of the packet type describing the structure of the
data stored in this channel (in the packet definitions).
3. The definition of a packet is a complex structure which is composed of a packet definition
followed by the definition of the packet fields:
Note: This section indicates the logical structure of the fields. See section 3 - Detailed
Specifications for more information.
packet def field def field def field def field def
The header definition of the packet definition is a fixed size structure which contains the following
fields:
Field Description
Identifier Identifier of the packet type. This identifier is free but a number of
reserved identifiers are defined and listed in the paragraph 3.7.
Version Version number of this packet definition.
Field number Number of the fields in this type of packet.
MU-XPF-AN-001 Ed. B April 2016 5
Post-Processing Software – Xpf File Format Specification
The field definition is a fixed size structure which contains the following fields:
Field Description
Label Short name describing the field. The label must contain only the
characters [a-z], [A-Z], [0-9] and « - », « _ ».
The use of the space, the tabulation and the dot are strictly
prohibited.
Type Type of the data (character, integer, floating…). The list of data type
is defined in the paragraph 3.8.
Size Number of items in this field (generally 1, the fields of table type with
several items are supported).
Description Description of the field.
Nature Type of data stored in this field (distance, speed, temperature…). The
list of the data types is defined in the paragraph Erreur ! Source du
renvoi introuvable..
MU-XPF-AN-001 Ed. B April 2016 6
Post-Processing Software – Xpf File Format Specification
2.2 Packets
A packet is composed of three successive parts:
1. A header
2. A content
3. An end of packet
Each different packet is attached to a channel. A double chaining mechanism allows a
quick sequential move from one packet to another for the same channel: each packet
contains the offset in bytes to move to the previous packet and to the following packet.
The following figure shows the principle (the file contains two channels named GPS_1 and
DVL):
GPS_1 GPS_1 DVL GPS_1 DVL GPS_1 DVL
1 2 1 3 2 4 3
The packet header is a structure of fixed size data which is composed of the following fields:
Field Description
Marker Marker of the packet start, must be « $$ ».
Channel identifier Identifier of the channel to which this packet belongs.
Size Total number of bytes in the packet (header and end of packet
included)
Number Number of the packet in the channel.
Offset to the previous Number of bytes between this packet and the previous packet of the
packet same channel (0 for the first packet of the channel).
Offset to the following Number of bytes between this packet and the following packet of the
packet same channel (0 for the last packet of the channel).
The packet has a content defined in the file header. It is specified by the packet definition
associated to the channel to which the packet belongs.
The end of the packet is a fixed size data structure which is composed of the following fields.
Field Description
Marker Marker of the packet end, must be « !! ».
Channel identifier Identifier of the channel to which this packet belongs.
Size Total number of bytes in the packet (header and end of packet
included)
MU-XPF-AN-001 Ed. B April 2016 7
Post-Processing Software – Xpf File Format Specification
3 DETAILED SPECIFICATIONS
The data encoded on 16 and 32 bits use the Little Endian convention (LSB in first), this
convention is currently used on computers running with Microsoft Windows.
The floating-point numbers 32 bits (floating) and 64 bits (double) are encoded according to
IEEE standard.
This section describes in C language the details of the structure indicated in the previous
section. To use this code in a program written with Visual C++, it is recommended to use
the compilation rules #pragma pack in order to align the fields of the structures on one
byte.
3.1 File Header
The file header is encoded as the following C structure:
//--------------------------------------------------------------------------
//! Header of the XPF file (without the auto-descriptive part).
//--------------------------------------------------------------------------
struct S_XpfFileHeader
{
//! Marker of the file start, must be "XPF"
char marker[3];
//! Application name which created the file
char applicationName[32];
//! Application version which created the file
char applicationVersion[10];
//! Original name of the file
char originalFileName[64];
//! Creation date of the file (year).
unsigned short creationYear;
//! Creation date of the file (month).
unsigned char creationMonth;
//! Creation date of the file (date).
unsigned char creationDay;
//! Creation date of the file (hour).
unsigned char creationHour;
//! Creation date of the file (minute).
unsigned char creationMinute;
//! Creation date of the file (second).
float creationSecond;
//! Definition number of following channels.
unsigned short channelDefinitionCount;
//! Definition number of following packets.
unsigned short packetDefinitionCount;
};
MU-XPF-AN-001 Ed. B April 2016 8
Post-Processing Software – Xpf File Format Specification
3.2 Channel Definition
The channel definition is encoded as the following structure C:
//--------------------------------------------------------------------------
//! The structure memorizing the channel definition.
//--------------------------------------------------------------------------
struct S_XpfChannelDef
{
//! Channel identifier
unsigned short channelId;
//! Field label
char label[16];
//! Field description
char description[64];
//! Identifier of the packet type
unsigned short packetId;
};
3.3 Packet Definition
The definition of a packet type is encoded as the following C structure:
//--------------------------------------------------------------------------
//! The structure memorizing the data.
//--------------------------------------------------------------------------
struct S_XpfPacketDef
{
//! Identifier of the packet type (see paragraph 3.7 for reserved values)
unsigned short packetId;
//! Definition version
unsigned int version;
//! Following number of field definition
unsigned short fieldDefinitionCount;
};
MU-XPF-AN-001 Ed. B April 2016 9
Post-Processing Software – Xpf File Format Specification
3.4 Field Definition
The definition of a field is encoded as the following C structure:
//--------------------------------------------------------------------------
//! The structure memorizing the data.//---------------------------------------------------------
-----------------
struct S_XpfFieldDef
{
//! Field label
char label[30];
//! Field type (see paragraph 3.8).
unsigned char type;
//! Field size (0xFFFFFFFF a variable size).
unsigned int size;
//! Field description
char description[64];
//! Field nature (see paragraph 3.9).
unsigned char nature;
};
3.5 Packet Header
The packet header is encoded as the following C structure:
//------------------------------------------------------------------------------
//! Packet header
//------------------------------------------------------------------------------
struct S_XpfPacketHeader
{
//! Marker of the packet start ($$)
char marker[2];
//! Channel identifier
unsigned short channelId;
//! Packet size in bytes (all the packet, header and footer included).
unsigned long packetSize;
//! Packet number in the channel (0 for the first).
unsigned long packetNumber;
//! Offset to reach the previous packet of the same channel (0 for the first
//! packet of the channel).
unsigned long previousPacketOffset;
//! Offset to reach the next packet of the same channel (0 for the last
//! packet of the channel)
unsigned long nextPacketOffset;
};
MU-XPF-AN-001 Ed. B April 2016 10
Post-Processing Software – Xpf File Format Specification
3.6 Packet Footer
The packet footer is encoded as the following C structure:
//------------------------------------------------------------------------------
//! Packet footer
//------------------------------------------------------------------------------
typedef struct S_XpfPacketFooter
{
//! Marker of the packet footer (!!).
char marker[2];
//! Channel identifier.
unsigned short channelId;
//! Packet size in byte (all the packet, header and footer included).
unsigned long packetSize;
};
MU-XPF-AN-001 Ed. B April 2016 11
Post-Processing Software – Xpf File Format Specification
3.7 Type of Reserved Packets
Identifiers 0 to 49 for inertial and common packets:
Label Description Id
InsImu IMU data from the INS 0
InsDvl DVL data (bottom track or water track) received by the INS 1
InsEMLog EM Log data received by the INS 2
InsGps GNSS data received by the INS 3
InsDepth Data of the immersion sensor received by the INS 4
InsUsbl USBL data received by the INS 5
InsLbl LBL (range meter) data received by the INS 6
CommonUtc UTC synchronization data received by the INS 7
InsDmi Packet memorizing the DMI data received by the INS 8
InsSynchro External synchronization data (event marker) received by 9
the INS
InsNav Real time navigation data of the INS 10
InsTemperature Internal temperature data of the INS 15
InsPlatformOrientation Data of the gyro-stabilized platform received by the INS 16
InsSystemTime Synchronization data between the time of the XPF file and 17
the time of the INS internal clock.
InsKalmanState Internal states of the kalman filter 18
InsEarthGravitationalModel Local gravitational data received by the INS 19
InsHexapod Hexapod platform data received by the INS 20
InsManualSpeed Manual speeds provided by the user to the INS 21
CommonAtmosphericPressure Atmospheric pressure log 22
CommonTide Tide log 23
CommonSoundVelocity Sound velocity log 24
Identifiers 50 to 79 for RAMSES packets:
Label Description Id
RamsesStartOfRecurrence Start of a RAMSES recurrent acoustic 50
RamsesSlamRamsesPosition RAMSES position. 51
MU-XPF-AN-001 Ed. B April 2016 12
Post-Processing Software – Xpf File Format Specification
Label Description Id
RamsesSlamBeaconPosition RAMSES beacon position. 52
RamsesTravelTime RAMSES travel time. 53
RamsesRange Distance to a RAMSES beacon. 54
RamsesExternalPosition External position received by a RAMSES. 55
RamsesExternalDepth External depth received by a RAMSES. 56
RamsesExternalSpeed External speed received by a RAMSES. 57
RamsesDistance Distance computed between two RAMSES beacons 58
Identifiers 80 to 89 for USBL packets:
Label Description Id
UsblNavigation USBL system navigation data. 80
UsblDetection USBL detections. 81
UsblBeaconPosition USBL beacon position. 82
UsblProcessingStatus USBL post-processing status 83
Identifiers 90 to 119 for ALIX packets:
Label Description Id
AlixNavigation Result of the ALIX navigation. 90
AlixSpeed Speed data calculated by ALIX 91
AlixHeave Heave data calculated by ALIX 92
- reserved 93
AlixUserAlgoStatus ALIX algorithm status 94
- reserved 95
- reserved 96
AlixUserSensorStatus ALIX simple sensor status 97
AlixUserSensorMergeStatus ALIX simple sensor status (merge stage) 98
- reserved 99
AlixUserSensor3dPosStatus ALIX position sensor status 100
AlixUserSensor3dPosMergeStatus ALIX position sensor status (merge stage) 101
- reserved 102
MU-XPF-AN-001 Ed. B April 2016 13
Post-Processing Software – Xpf File Format Specification
Label Description Id
AlixUserSensor3dSpdStatus ALIX speed sensor status 103
AlixUserSensor3dSpdMergeStatus ALIX speed sensor status (merge stage) 104
- reserved 105
AlixUserZuptStatus ALIX ZUPT status 106
AlixUserZuptMergeStatus ALIX ZUPT status (merge stage) 107
AlixSigilOutput SIGIL data calculated by ALIX 108
AlixSigilCovOutput Covariance of the SIGIL data calculated by ALIX 109
- reserved 110
- reserved 111
Identifiers 120 to 129 for NMEA packets:
Label Description Id
NmeaPHOCT OCTANS $PHOCT sentence 120
NmeaGPRMC GPS $GPRMC sentence 121
NmeaPIXOG_ECHO_ATT USBL $PIXOG,ECHO,ATT sentence 122
NmeaPIXOG_ECHO_POS USBL $PIXOG,ECHO,POS sentence 123
NmeaPIXOG_ECHO_SPD USBL $PIXOG,ECHO,SPD sentence 124
NmeaPTSAG USBL $PTSAG sentence 125
NmeaPIXOG_PPC_DETEC USBL $PIXOG,PPC,DETEC sentence 126
NmeaPIXOG_DBG_PTLBL USBL $PIXOG,DBG,PTLBL sentence 127
Identifiers 140 to 159 for TOOLS packets:
Label Description Id
ToolsNavDiff Difference of two trajectories 140
MU-XPF-AN-001 Ed. B April 2016 14
Post-Processing Software – Xpf File Format Specification
3.8 Data Type
The data type for the packet fields are defined in the following table.
Label Type Id
Byte Unsigned 8-bit integer 0
Word Unsigned 16-bit integer 1
Dword Unsigned 32-bit integer 2
Char Signed 8-bit integer 3
Short Signed 16-bit integer 4
Int Signed 32-bit integer 5
Float IEEE floating on 32 bits 6
Double IEEE floating on 64 bits 7
Date Signed 64-bit integer. Relative date (delay) with an accuracy of 8
100 ns
3.9 Data Nature
The data nature for the fields of a packet are defined in the following table:
Label Nature Id
Unknown Unknown nature measurement 0
Latitude Latitude 1
Longitude Longitude 2
PositionSd Position standard deviation (m) 3
PositionCv Covariance of the position (m2) 4
LinearSpeed Linear speed (m.s-1) 5
LinearSpeedSd Linear speed standard deviation (m.s-1) 6
LinearAcceleration Linear acceleration (m.s-2) 7
LinearAccelerationSd Linear acceleration standard deviation (m.s-2) 8
AngularSpeed Angular speed (rad.s-1) 9
AngularSpeedSd Angular speed standard deviation (rad.s-1) 10
Temperature Temperature (°C) 11
SoundVelocity Sound velocity (m.s-1) 12
Altitude Altitude (m) 13
MU-XPF-AN-001 Ed. B April 2016 15
Post-Processing Software – Xpf File Format Specification
Label Nature Id
Immersion Immersion (m) 14
AltitudeSd Altitude or immersion standard deviation (m) 15
Attitude Altitude information (heading, roll, pitch in °) 16
AttitudeSd Attitude standard deviation (in °) 17
Distance Distance (m) 18
DistanceSd Distance standard deviation 19
TimeLength Time duration (s) 20
ScaleFactor Scale factor 21
Enum Enumeration 22
TimeDrift Time drift 23
RawFogMeasurement Fog raw measurement (rotation by step of 10-3 '') 24
RawAccMeasurement Acceleration raw measurement (speed by step of 10-7 m/s) 25
TravelTime Acoustic travel time (s) 26
TravelTimeSd Standard deviation of the acoustic travel time (s) 27
Phase Phase of the USBL detections 28
SignalToNoiseRatio Signal to noise ratio (dB) 29
Range Slant distance (m) 30
RangeSd Standard deviation of the slant distance (m) 31
Pressure Pressure (Pa) 32
FogMeasurement Fog raw measurement (radian) 33
AccMeasurement Acceleration raw measurement (m/s) 34
MU-XPF-AN-001 Ed. B April 2016 16
Post-Processing Software – Xpf File Format Specification
iXBlue CONTACT - SUPPORT
FOR NON-URGENT SUPPORT:
BY EMAIL: [email protected]
USING THE FORM ON THE IXBLUE WEB SITE www.ixblue.com
FOR 24/7 URGENT SUPPORT:
North America / NORAM
+1 508 975 4640 Ext 1
Europe Middle-East Africa Latin-America / EMEA-LATAM
+33 1 30 08 98 98
Asia Pacific / APAC
+65 6747 7027
iXBlue CONTACT - SALES
North America / NORAM
+1 508 975 4640
iXBlue Inc Boston area US
11 Erie Drive, Natick, MA 01760, US
Europe Middle-East Africa Latin-America / EMEA-LATAM
+33 1 30 08 88 88
iXBlue SAS France
34 rue de la Croix de Fer, Saint-Germain-en-Laye, F-78100, France
Asia Pacific / APAC
+65 6747 4912
iXBlue Pte Limited Singapore
15A Changi Business Park Central 1#04-02 Eightrium Singapore 486035
MU-XPF-AN-001 Ed. B April 2016 17