| Previous Top Next |
Trip file (.trip)
|
|
Field
|
Size (in Bytes)
|
Sample Value
|
Description
|
|
ID
|
4
|
‘TRPL’
|
Identifier of the format. Always
‘TRPL'
|
|
SubLength
|
4
|
0x0007 9A03
498179
|
Size of the sub elements. Filesize minus
8.
(ID + SubLength?)
|
|
HeaderLength
|
1
|
0x0A
10
|
Previously, when 0x09 was considered a
terminator, this field was considered to be the size of
the header.
But that no longer seems likely.
It could also be Datatype 0x0a.
Always 10.
|
|
TotalItems
|
4
|
0x0000 0014
20
|
Nr of items in this trip file
|
|
|
|
Field
|
Size (in Bytes)
|
Sample Value
|
Description
|
|
Initiator
|
1
|
0x09
|
Marks the start of an item.
Note: Previously this field was
considered to be a terminator of the preceding field. But
programming proved it was more likely an
initiator.
|
|
NameLen
|
4
|
0x0000 0009
|
Length of the name field, immediately
following.
|
|
Name
|
Varies
|
‘mImported’
|
Name of this item. Contains only ANSI
characters (1 byte per character). E.G. no international
characters, as can be found in string types, that take up
4 bytes for every character.
|
|
ValueLen
|
4
|
0x0000 0002
|
Length of the value, including the
datatype
|
|
Datatype
|
1
|
0x07
|
See the list of datatypes. (0x07 is a
Boolean)
|
|
Value
|
Varies
|
0x00
|
The size varies according to the
datatype. For a Boolean field it is always 1 byte.
|
|
|
|
Type
|
Size
in bytes
|
Description
|
|||||||||
|
0x01
|
Byte
|
1
|
Data type for integer values 0-255.
Mostly used for enums. Fields containing only some
discrete values. Examples:
mDayNumber
mRoutePreference
mTransportationMode
|
||||||||
|
0x03
|
Cardinal
|
4
|
A cardinal is, in Pascal terms, a 4 byte
unsigned integer.
Range: 0-4294967295
Examples:
mTotalTripTime
mDuration
mShapingRadius
mAttr (Only values seen are 0 and 1, so
this could also have been a Byte Field!)
A special use case of the type is a
Date/Time Field. It defines the nr. of seconds starting
from: 1989,12,31,00,00,00,00. It looks like a Unix
date/time with a different base date/time.
mTripDate
mArrival
|
||||||||
|
0x04
|
Single
|
4
|
A float field. (Can hold decimal values)
It supports approximately 7 digits of precision in a
range from 1.18 x 10-38 to 3.4 x
1038.
Examples mTotalTripDistance
|
||||||||
|
0x07
|
Boolean
|
1
|
True or False. Examples:
mPreserveTrackToRoute
mIsDisplayable
mAvoidancesChanged
mImported
etc.
|
||||||||
|
0x08
|
Cardinal array
|
varies
(multiple of 4)
|
The 1st cardinal defines the length.
Divide by 4 to get the number of entries in the
array.
Examples:
mVersionNumber
mScPosn
|
||||||||
|
0x08
|
Version
|
8
|
Defines the version. Consist of 2
cardinals
Values seen:
Length: 0x0000 0004
Version: 0x0700 0000 for XT,
0x1000 0000 for XT2 and Tread 2
|
||||||||
|
0x08
|
ScPosn
|
16 or 20
|
Defines the position, in GPS coordinates
of a location (Via, or Shaping)
Consists of 4 cardinals: (5 for Tread
2)
Length: 0x0000 000C = 12 for
XT(2), 0x0000 0010 = 16 for Tread 2
Unknown:
When creating a trip file this field can
be set to zeroes. Recalculation on the Zumo will set the
correct value. Appears to change when a new firmware
version is loaded on the device.
Unknown_Tread2: always 0x0000
0000
Lat:
Lon: See below how to read these
numbers.
|
||||||||
|
0x0a
|
Prefix
|
Varies
|
The lists mLocations, mAllroutes and
possible THeader have a ‘prefix’ block. For more info see
mLocations and mAllroutes.
|
||||||||
|
0x0b
|
UdbHandle
|
Varies
|
Block describing UdbDirs. See
mAllroutes.
|
||||||||
|
0x0c
|
Map type
|
Varies
|
Introduced with the XT2 for
mGreatRidesInfoMap and mTrackToRouteInfoMap. This
datatype can hold a list of
coordinates/trackpoints
Only mTrackToRouteInfoMap has been
decoded. See the record types for:
mTrackToRouteInfoMap later in this
document.
|
|
0x0e
|
String
|
Varies
|
Type used for strings. Strings are
stored as UCS4 chars. 4 bytes for every character for
newer models like XT, XT2 and Tread2. Older models (3x0,
590, 595 etc.) use 2 bytes per character.
From sample below:
0x09: inititiator
0x 0000 0009: Length of
‘mTripName’
‘mTripName’
0x0000 0037: Length of Value +
Datatype.
0x0e: Datatype
0x0034: Nr of bytes for this
string.(Divide by 4 to get #chars)
0x3200 0000 = ‘2’
0x3000 0000 = ’0’
Etc.
|
|
|
|
ID
|
Type
|
Size
in bytes
|
Description
|
|
0x80
|
List
|
Varies
|
A list is a type that can contain sub
items. A good example is ‘mLocations’.
|
|
|
The locations are preceded by a block
describing the total block. (*** Begin mLocations)
Then for every location a block
describing 1 location (*** Begin location header)
The marked portions are all basic data
type items.
mAttr = Cardinal
mIsDFSPoint = Boolean
…
mName = String
|
|
|
|
|
|
|
|
Convert hex to integer
|
1061708400
|
Again use Windows Calculator.
|
|
Add the constant
|
631065600
|
This is the nr. of seconds on
1989/12/31 00:00:00 since 1970/01/01 00:00:00
|
|
Resulting in
|
1692774000
|
August 23, 2023 09:00:00 = Unix Date
Time
|
|
Name
|
DataType
|
Description
|
|
mPreserveTrackToRoute
|
0x07
|
Set to true for trips created from a
track.
|
|
mParentTripId
|
0x03
|
See mParentTripName
|
|
mDayNumber
|
0x01
|
?? Always 0xFF 255.
|
|
mTripDate
|
0x03
|
?? Always 0xFFFF FFFF
|
|
mIsDisplayable
|
0x07
|
If set to False deletes the trip from
the device at next start.
|
|
mAvoidancesChanged
|
0x07
|
?? Always False. May be changes after
modifying avoidances?
|
|
mIsRoundTrip
|
0x07
|
?? Always False
|
|
mParentTripName
|
0x0E
|
Can be used together with mParentTripId
to group the trips.
|
|
mOptimized
|
0x07
|
?? Always False
|
|
mTotalTripTime
|
0x03
|
Contains Time in seconds of trip. After
recalculation by XT
|
|
mImported
|
0x07
|
Set to False to fix the RUT
behaviour.
|
|
mRoutePreference
|
0x01
|
0x00 = Faster Time
0x01 = Shorter Distance
0x04 = Direct
0x07 = Curvy Roads
|
|
mTransportationMode
|
0x01
|
0x01 = Automotive
0x09 = MotorCycling
0x0A = Off Road
|
|
mTotalTripDistance
|
0x04
|
Contains Distance in meters of trip.
After recalculation by XT.
|
|
mFileName
|
0x0E
|
File name on device.
0:/.System/Trips/<1234567890>.trip
If a file is saved by importing. It is
the timestamp of saving.
See ‘How to read the DateTime
values’.
|
|
mLocations
|
0x80
|
A list of Begin, Via / Shaping points
and End point.
See ‘mLocations’
|
|
mPartOfSplitRoute
|
0x07
|
?? Always False
|
|
mVersionNumber
|
0x08
|
Apparently the version nbr. Only value
seen for XT is:
0x04000000 / 0x00000007
|
|
mAllRoutes
|
0x80
|
Is the result of the calculation. It
contains a list of mUdbDataHndle and UdbDir.
See ‘mAllRoutes’
|
|
mTripName
|
0x0E
|
TripName. This is the name of the route
in the trip planner
|
|
Name
|
DataType
|
Default value
|
Description
|
|
mGreatRidesInfoMap
|
0x0C
|
0x0000 0000
|
Note 2
|
|
mAvoidancesChangedTimeAtSave
|
0x03
|
Create date time
|
If set to 0 a message appears
‘Avoidances changed’
Note 4
|
|
mTrackToRouteInfoMap
|
0x0C
|
0x0000 0000
|
Note 2
|
|
mIsDisplayable
|
0x07
|
If set to False deletes the trip from
the device at next start.
|
|
|
mIsDeviceRoute
|
0x07
|
False
|
|
|
mDayNumber
|
0x01
|
?? Always 0xFF 255.
|
|
|
mTripDate
|
0x03
|
?? Always 0xFFFF FFFF
|
|
|
mOptimized
|
0x07
|
?? Always False
|
|
|
mTotalTripTime
|
0x03
|
Contains Time in seconds of trip. After
recalculation by XT2
|
|
|
mTripName
|
0x0E
|
TripName. This is the name of the route
in the Route planner.
|
|
|
mVehicleProfileGuid
|
0x0E
|
dbcac367-42c5-4d01-
17aa-ecfe025f2d1c
|
Only value seen
Note 5
|
|
mParentTripId
|
0x03
|
See mParentTripName
|
|
|
mIsRoundTrip
|
0x07
|
?? Always False
|
|
|
mVehicleProfileName
|
0x0E
|
‘zūmo Motorcycle'
|
Note 5
|
|
mAvoidancesChanged
|
0x07
|
?? Always False. May be changes after
modifying avoidances?
|
|
|
mParentTripName
|
0x0E
|
Can be used together with mParentTripId
to group the trips.
|
|
|
mVehicleProfileTruckType
|
0x01
|
0x07
|
Note 5
|
|
mVehicleProfileHash
|
0x03
|
0
|
Unclear how this can be determined, but
a value of 0 seems to work.
|
|
mRoutePreferences
|
0x80
|
Loc cnt * 0001
|
Note 3
|
|
mImported
|
0x07
|
Set to False to fix the RUT
behaviour.
|
|
|
mFileName
|
0x0E
|
File name on device.
0:/.System/Trips/<1234567890>.trip
If a file is saved by importing. It is
the timestamp of saving.
See ‘How to read the DateTime
values’.
|
|
|
mExploreUuid
|
0x0E
|
New Guid
|
For every trip created a new GUID must
be created, or the trip will not be listed.
|
|
mVersionNumber
|
0x08
|
Apparently the version nbr. Only value
seen for XT2 is:
0x04000000 / 0x00000010
|
|
|
mRoutePreferencesAdventurousHillsAndCurves
|
0x80
|
Loc cnt * 0x0001
|
Note 3
|
|
mTotalTripDistance
|
0x04
|
Contains Distance in meters of trip.
After recalculation by XT.
|
|
|
mVehicleId
|
0x03
|
0x01
|
Note 5
|
|
mRoutePreferencesAdventurousScenicRoads
|
0x80
|
Loc cnt * 0001
|
Note 3
|
|
mAllRoutes
|
0x80
|
Is the result of the calculation. It
contains a list of mUdbDataHndle and UdbDir.
See ‘mAllRoutes’
|
|
|
mRoutePreferencesAdventurousPopularPaths
|
0x80
|
Loc cnt * 0001
|
Note 3
|
|
mPartOfSplitRoute
|
0x07
|
?? Always False
|
|
|
mRoutePreference
|
0x01
|
0x00 = Faster Time
0x01 = Shorter Distance
0x04 = Direct
0x07 = Curvy Roads
|
|
|
mShowLastStopAsShapingPoint
|
0x07
|
False
|
|
|
mRoutePreferencesAdventurousMode
|
0x80
|
Loc cnt * 0001
|
Note 3
|
|
mTransportationMode
|
0x01
|
0x01 = Automotive
0x09 = MotorCycling
0x0A = Off Road
|
|
|
mLocations
|
0x80
|
A list of Begin, Via / Shaping points
and End point.
See ‘mLocations’
|
|
Sql settings.db
Select value from data_number
where context like '%None%' and name
like '%Avoid%'
limit 1;
|
|
Sql vehicle_profile.db
XT2
select v.vehicle_id, v.truck_type,
v.name, Hex(v.guid_data), v.vehicle_type,
v.transport_mode, v.adventurous_route_mode from
active_vehicle a
join vehicle_profile v on (a.vehicle_id
= v.vehicle_id)
limit 1;
Tread 2
select v.vehicle_id, v.truck_type,
v.name,
(select Hex(g.description) from
properties_dbg g
where g."description:1" = 'guid'
and g.value = a.value limit 1) as Guid_Data,
v.vehicle_type, v.transport_mode,
v.adventurous_route_mode
from properties_dbg a
inner join vehicle_profile v on
(v.vehicle_id = a.value)
where a."description:1" =
'active_profile'
limit 1;
|
|
|
|
|
|
|
|
Item
|
DataType
|
Description
|
|
mShapingCenter
|
0x08
|
XT2 specific. Only value seen:
0x0000 0008 0000 0080 0000 0080
|
|
mAttr
|
0x03
|
0x0000 0000 = Via Point (Also used for
Begin and End point)
0x0000 0001 = Shaping Point
0x0000 0002 = Shaping Point XT(2) (Shape
route/Tread app)
|
|
mIsDFSPoint
|
0x07
|
?? Always False
|
|
mDuration
|
0x03
|
?? Always 0xFFFF FFFF
|
|
mArrival
|
0x03
|
Used as ‘Departure Date/Time’.
The first Location determines the sort
order within the Trip Planner
See: ‘How to read Date Time
values’
|
|
mScPosn
|
0x08
|
Specifies the LAT/LON values.
See ‘Known datatypes 0x08’
|
|
mAddress
|
0x0E
|
A description of the point that the XT
uses for displaying.
A known issue is that Via/Shaping
sometimes get renamed on the XT. Possible fixes:
- Setting the subclass in the GPX to 0x00ff
- Setting a value for this item.
|
|
mIsTravelapseDestination
|
0x07
|
?? Always False
|
|
mName
|
0x0E
|
The name of the Location
|
|
|
|
|
|
|
|
Model
|
Calculation status
|
Size Unknown3
|
Difference
|
|
XT
|
0X0538FEFF
|
1288
|
0X0538 - 1288 =48
|
|
XT2
|
0X05D8FEFF
|
1448
|
0X05D8 - 1448 =48
|
|
Tread 2
|
0X0574FEFF
|
1348
|
0X0574 - 1348 =48
|
|
Distance
|
Offset 0x14
|
4 bytes
|
Distance in Meters of this
segment
|
|
Time
|
Offset 0x18
|
4 bytes
|
The total time in seconds of this
segment. The sum of all UdbDir.Time items
|
|
ShapeBitmap
|
Offset 0x90 for XT
Offset 0xC0 for XT2, Tread 2
|
2 Bits (Start and End) + 1 bit for every
shaping point in this segment.
|
For every Shaping point in this a 1
(one) bit
If the bit is zero a red flag is shown,
else a blue bullet on the Zumo
|
|
Field
|
Size
|
Description
|
|
SubClass
|
16
|
The subclass as can be found in the GPX.
The first 2 bytes (RoadClass) are omitted. See
Subclass for RoutePoints in Garmin GPX
|
|
Lat
|
4
|
See ‘How to read the Lat/Lon
values’
|
|
Lon
|
4
|
See ‘How to read the Lat/Lon
values’
|
|
Unknown1
|
4
|
0x51590469
|
|
Time
|
1
|
Time in seconds for this UdbDir. Always
0xFF for SubClass.PointType = 0x03 (=Route point)
|
|
Border
|
1
|
0x01 = A border is crossed, else 0x00.
Always 0xFF for SubClass.PointType = 0x03 (=Route
point)
|
|
Unknown2
|
9 x 2
|
See UdbDirUnknown2Size[TTripModel] in
Layout UdbDataHndl
|
|
Name
|
121 x 4
|
String type. Name of the UdbDir.
Contains road names.
A special value indicates a turn:
0x474E0000
See UdbDirNameSize[TTripModel] in Layout
UdbDataHndl
|
|
|