Difference between revisions of "Iridium Edge Communication Protocol"

From Wiki Knowledge Base | Teltonika GPS
 
(16 intermediate revisions by 4 users not shown)
Line 27: Line 27:
 
* Timestamp – Indicates when record was generated
 
* Timestamp – Indicates when record was generated
 
* Longitude - encoded in 3 bytes data. Server which gets this data should divide result from 46603,375 and subtract 180 in order to get actual longitude value. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
 
* Longitude - encoded in 3 bytes data. Server which gets this data should divide result from 46603,375 and subtract 180 in order to get actual longitude value. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
* Latitude - Latitude is calculated in same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. Coefficient for latitude is 93206,75. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
+
 
* SBD AVL ID and flags – Custom id that will indicate what caused the record to be generated (as only periodic records are generated, id is not used)
+
*Latitude - Latitude is calculated in same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. Coefficient for latitude is 93206,75. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
* Din/Dout info - Displays configured IO elements in parameter id 99422
+
*SBD AVL ID and flags – Custom id that will indicate what caused the record to be generated (as only periodic records are generated, id is not used)
* Reserved - Not used anywhere, but left due to compatibility with fm6 project.
+
*Din/Dout info - Displays configured IO elements in parameter id 99422
* Speed – Indicates the speed of the vehicle if configured. If not (or in case of no gps) – will display 255
+
*Reserved - Not used anywhere, but left due to compatibility with fm6 project.
 +
*Speed – Indicates the speed of the vehicle if configured. If not (or in case of no gps) – will display 255
  
 
==Data Sending Parameters==
 
==Data Sending Parameters==
Line 62: Line 63:
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |SBD IO source
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |SBD IO source
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |6
+
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |10
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |SBD IO elements which when enabled are included into the SBD record
 
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |SBD IO elements which when enabled are included into the SBD record
Line 83: Line 84:
  
 
==SBD IO source==  
 
==SBD IO source==  
Configures IO source which can trigger SBD record saving.  9 elements can generate Alarm for SDB sending. These elements are:
+
Configures IO source which can trigger SBD record saving.  10 elements can generate Alarm for SDB sending. These elements are:
* Digital input 1
+
* Byte 1 - Din1
* Digital input 2
+
* Byte 2 - Din2
* Digital output 1
+
* Byte 3 - Din3
* Speed
+
* Byte 4 - Din4
<br></br>
+
* Byte 5 - Dout1
 +
* Byte 6 - Dout2
 +
* Byte 7 - Dout3
 +
* Byte 8 - Dout4
 +
* Byte 9 - Speed
 +
* Byte 10 - CrashDetect
 +
By setting the apropriate bits you'll get a hex number that can be sent to the device to configure. additionally you can set via the configurator and use getparam command to get the correct value.
 +
<br><br>
 
Configurator parameter IDs and their explanation:
 
Configurator parameter IDs and their explanation:
 
{| class="nd-othertables_2" style="width:100%;"
 
{| class="nd-othertables_2" style="width:100%;"
 
|- style="font-weight:bold; text-align:center;"
 
|- style="font-weight:bold; text-align:center;"
! '''Parameter ID'''<br />
+
!'''Parameter ID'''<br />
! '''Parameter name'''
+
!'''Parameter name'''
! colspan="3" | '''Values'''
+
! colspan="3" |'''Values'''
! '''Explanation'''
+
!'''Explanation'''
 
|- style="font-weight:bold; text-align:center;"
 
|- style="font-weight:bold; text-align:center;"
| style="font-weight:normal;" |  
+
| style="font-weight:normal;" |
| style="font-weight:normal;" |  
+
| style="font-weight:normal;" |
| '''Min'''
+
|'''Min'''
| '''Max'''
+
|'''Max'''
| '''Default'''
+
|'''Default'''
| style="font-weight:normal;" |  
+
| style="font-weight:normal;" |
 
|-
 
|-
| 99420
+
|99420
| Iridium Edge
+
|Iridium Edge
| 0
+
|0
| 1
+
|1
| 0
+
|0
| This parameter enables or disables Iridium Edge functionality
+
|This parameter enables or disables Iridium Edge functionality
 
|-
 
|-
| 99421
+
|99421
| Save/Send period
+
|Save/Send period
| 0
+
|0
| 1440
+
|1440
| 1440
+
|1440
| This parameter lets to configure Iridium Edge sending period
+
|This parameter lets to configure Iridium Edge sending period
 
|-
 
|-
| 99422
+
|99422
| SBD IO source'''*'''
+
|SBD IO source'''*'''
| 0
+
|0
| 8
+
|10
| 0
+
|0
| SBD IO elements which when enabled are included into the SBD record
+
|SBD IO elements which when enabled are included into the SBD record
 
|-
 
|-
| 99423
+
|99423
| SBD UploadLimit
+
|SBD UploadLimit
| 0
+
|0
| 30000
+
|30000
| 8000
+
|8000
| Limit to save user from exceeding the monthly plan. Max limit of 30000 due to 30KB plan. If set to 0 – limit will be off.
+
|Limit to save user from exceeding the monthly plan. Max limit of 30000 due to 30KB plan. If set to 0 – limit will be off.
 
|-
 
|-
| 99424
+
|99424
| Power control DOUT
+
|Power control DOUT
| 1
+
|1
| 5
+
|5
| 0
+
|0
| Device DOUT which can control ON/OFF pin of the Iridium Edge
+
|Device DOUT which can control ON/OFF pin of the Iridium Edge
 
|-
 
|-
| 151
+
|151
| RS232 Mode
+
|RS232 Mode
| 0
+
|0
| 23
+
|23
| 0
+
|0
| RS-232 mode selection. "Satellite backup" - 15
+
|RS-232 mode selection. "Satellite backup" - 15
 
|}
 
|}
<br></br>
+
<br><br>
'''*''' SBD IO source parameter is configured with bitmasks (used for configuring I/O source elements via SMS/GPRS command) :  
+
In order to configure parameter 99422 manually users must simply set the appropriate values of bit positions, according to their needs:  
*Disabled    = 0x00,
+
* Byte 1 - Din1
*Din1        = 0x01,
+
* Byte 2 - Din2
*Din2        = 0x02,
+
* Byte 3 - Din3
*Dout1         = 0x10,
+
* Byte 4 - Din4
*Speed       = 0x100
+
* Byte 5 - Dout1
<br></br>
+
* Byte 6 - Dout2
For example: to enable Din1, Din2 and Dout1: 0x01 + 0x02 + 0x10 = 0x13.
+
* Byte 7 - Dout3
 +
* Byte 8 - Dout4
 +
* Byte 9 - Speed
 +
* Byte 10 - CrashDetect
  
 
==SDB record structure==
 
==SDB record structure==
Line 160: Line 171:
  
 
{| class="nd-othertables_2" style="width:100%;"
 
{| class="nd-othertables_2" style="width:100%;"
|-style="text-align:center"
+
|- style="text-align:center"
!Timestamp
+
!Timestamp
!Longitude
+
!Longitude
!Latitude
+
!Latitude
!SDB AVL ID and flags
+
!SDB AVL ID and flags
!DIN/DOUT info
+
!DIN/DOUT info
!Reserved
+
!Reserved
!Speed
+
!Speed
 
|- style="font-weight:normal;"
 
|- style="font-weight:normal;"
 
|4B
 
|4B
Line 179: Line 190:
  
 
'''''Timestamp''''' - Indicates when record was generated.
 
'''''Timestamp''''' - Indicates when record was generated.
<br></br>
+
<br><br>
 
'''''Longitude''''' - In this packet is encoded in 3 bytes data. The server that gets this data should divide the result from 46603,375 and subtract 180 to get the actual longitude value. This coefficient is got in the following way: 16777215(maximum 3 bytes value) divided by 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
 
'''''Longitude''''' - In this packet is encoded in 3 bytes data. The server that gets this data should divide the result from 46603,375 and subtract 180 to get the actual longitude value. This coefficient is got in the following way: 16777215(maximum 3 bytes value) divided by 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
<br></br>
+
 
 +
Example:
 +
 
 +
Longitude: 910DA0 (in hexadecimal) → 9506208 (in decimal)
 +
 
 +
To convert Longitude:
 +
 
 +
(9506208 / 46603,375) - 180 = 23.9811065<br><br>
 
'''''Latitude''''' - Is calculated in the same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. The coefficient for latitude is 93206,75. This coefficient is got in the following way: 16777215(maximum 3 bytes value) divided by 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
 
'''''Latitude''''' - Is calculated in the same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. The coefficient for latitude is 93206,75. This coefficient is got in the following way: 16777215(maximum 3 bytes value) divided by 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
<br></br>
+
 
'''''SBD AVL ID and flags''''' – Custom ID that will indicate what caused the record to be generated (final ID will (as only periodic records are generated, ID is not used)).
+
Example:
 +
 
 +
Latitude: CE1AEB (in hexadecimal) → 13507307 (in decimal)
 +
 
 +
To convert Latitude:
 +
 
 +
(13507307 / 93206.750) - 90 = 54.91769<br><br>
 +
'''Din/Dout info''' - Displays configured IO elements in parameter id 99422 (only din/dout). If IO is not set, it will send be replaced by 0.
 +
<br><br>
 +
'''Reserved''' - Not used anywhere.
 +
<br><br>
 +
'''Speed''' – Indicates the speed (from GNSS) of the vehicle if configured. If not (or in case of no gps) – will display 255.
 +
<br><br>
 +
'''''SBD AVL ID and flags''''' – Custom ID that will indicate what caused the record to be generated  
 
This byte is divided in two parts of four bits, as shown in table below:
 
This byte is divided in two parts of four bits, as shown in table below:
  
{| class="nd-othertables_2" style="width:100%;"
+
 
|-
+
{| class="nd-othertables_2" style="width:100%;" font-weight:bold; vertical-align:middle;"
! colspan="4" style="font-weight:bold;" | <br />Flags  (not used yet)
+
! style="font-weight:bold;" |<br />ID
! colspan="4" style="font-weight:bold;" | <br />SBD  AVL ID
+
!<br />0
|- style="color:#fe0000;"
+
!<br />1
| <br />Bit 7
+
!<br />2
| <br />Bit 6
+
!<br />24
| <br />Bit 5
+
!<br />179
| <br />Bit 4
+
!<br />247
| style="color:#3531ff;" | <br />Bit 3
 
| style="color:#3531ff;" | <br />Bit 2
 
| style="color:#3531ff;" | <br />Bit 1
 
| style="color:#3531ff;" | <br />Bit 0
 
|}
 
<br></br>
 
SBD AVL ID is used to show which IO element generated the Panic element. The list of currently implemented possible values is described below:
 
<br></br>
 
{| class="nd-othertables_2" style="width:100%;"font-weight:bold; vertical-align:middle;"
 
! style="font-weight:bold;" | <br />ID
 
! <br />0
 
! <br />1
 
! <br />2
 
! <br />3
 
! <br />4
 
! <br />5
 
! <br />6
 
! <br />7
 
! <br />8
 
! <br />9
 
|-
 
| style="font-weight:bold;" | <br />IO  element
 
| <br />Periodic rec.
 
| <br />Digital Input 1
 
| <br />Digital input 2
 
| <br />Digital output 1
 
| <br />Speed
 
|}
 
<br></br>
 
Data from Bit 7 to Bit 4 are not used at the moment. The server should ignore this data part.
 
<br></br>
 
'''''DIN/DOUT info''''' - Displays configured IO elements values of enabled IO elements in SBD IO source settings - (parameter ID 99422).  Since digital inputs can contain only logic 1 or 0 they are bit masked in one byte.
 
{| class="nd-othertables_2" style="width:100%;"font-weight:bold; vertical-align:middle;"
 
 
|-
 
|-
! <br />DIN1
+
| style="font-weight:bold;" |<br />IO  element
! <br />DIN2
+
|<br />Periodic rec.
! <br />DOUT1
+
|<br />Digital Input 1
|- style="font-weight:normal;"
+
|<br />Digital input 2
| <br />Bit 7
+
|<br />Speed
| <br />Bit 6
+
|<br />DOUT1
| <br />Bit 5
+
|<br />Crash
| <br />Bit 4
 
| <br />Bit 3
 
| <br />Bit 2
 
| <br />Bit 1
 
| <br />Bit 0
 
 
|}
 
|}
<br></br>
+
<br><br>
'''''Reserved''''' - Not used.
 
<br></br>
 
'''''Speed''''' – Indicates the speed of the vehicle if configured. If not (or in case of no GPS) – it will display 255.
 
<br> </br>
 
  
 
==SBD packet example==
 
==SBD packet example==
Line 254: Line 243:
 
<span style="color:#0000ff">''01004C01001CF99DD263333030323334303634303730383330000018000059282DBC03000B0036A2B8193D120000000302001C''
 
<span style="color:#0000ff">''01004C01001CF99DD263333030323334303634303730383330000018000059282DBC03000B0036A2B8193D120000000302001C''
 
<span style="color:#008000"> ''59282BA391F5ABCDBFDD0180000059282BA891F5ABCDBFDD0180000059282BA391F5AB'' </span>
 
<span style="color:#008000"> ''59282BA391F5ABCDBFDD0180000059282BA891F5ABCDBFDD0180000059282BA391F5AB'' </span>
<br></br>
+
<br><br>
<span style="color:#0000ff">{01} – Protocol revision number</span><br></br>
+
<span style="color:#0000ff">{01} – Protocol revision number</span><br><br>
<span style="color:#0000ff">{00}{4C} – overall message length</span><br></br>
+
<span style="color:#0000ff">{00}{4C} – overall message length</span><br><br>
<span style="color:#0000ff">{01} – MO header IEI</span><br></br>
+
<span style="color:#0000ff">{01} – MO header IEI</span><br><br>
<span style="color:#0000ff">{00}{1C} – MO header length</span><br></br>
+
<span style="color:#0000ff">{00}{1C} – MO header length</span><br><br>
<span style="color:#0000ff">{F9}{9D}{D2}{63} – CDR Reference</span><br></br>
+
<span style="color:#0000ff">{F9}{9D}{D2}{63} – CDR Reference</span><br><br>
<span style="color:#0000ff">{33}{30}{30}{32}{33}{34}{30}{36}{34}{30}{37}{30}{38}{33}{30} – IMEI of the device</span><br></br>
+
<span style="color:#0000ff">{33}{30}{30}{32}{33}{34}{30}{36}{34}{30}{37}{30}{38}{33}{30} – IMEI of the device</span><br><br>
<span style="color:#0000ff">{00} – Session status (Transfer OK in this case)</span><br></br>
+
<span style="color:#0000ff">{00} – Session status (Transfer OK in this case)</span><br><br>
<span style="color:#0000ff">{00}{18} – MOMSN</span><br></br>
+
<span style="color:#0000ff">{00}{18} – MOMSN</span><br><br>
<span style="color:#0000ff">{00}{00} – MTMSN</span><br></br>
+
<span style="color:#0000ff">{00}{00} – MTMSN</span><br><br>
<span style="color:#0000ff">{59}{28}{2D}{BC} – Time of session</span><br></br>
+
<span style="color:#0000ff">{59}{28}{2D}{BC} – Time of session</span><br><br>
<span style="color:#0000ff">{03} – MO Location information IEI</span><br></br>
+
<span style="color:#0000ff">{03} – MO Location information IEI</span><br><br>
<span style="color:#0000ff">{00}{0B} – MO Location information length</span><br></br>
+
''The location values included in this IE provide an estimate of the originating IMEI’s location. The inclusion of this information in an MO message delivery is optional. Whether or not it is included is established when the IMEI is provisioned and may be changed at any time via SPNet. The CEP radius provides the radius around the center point within which the unit is located. While the resolution of the reported position is given to 1/1000th of a minute, it is only accurate to within 10Km 80% of the time.<br><br>
<span style="color:#0000ff">{00}{36}{A2}{B8}{19}{3D}{12} – MO latitude and longitude as described in Iridium documentation. </span><br></br>
+
<span style="color:#0000ff">{00}{0B} – MO Location information length</span>''<br><br>
<span style="color:#0000ff">{00}{00}{00}{03} – CEP radius</span><br></br>
+
<span style="color:#0000ff">{00}{36}{A2}{B8}{19}{3D}{12} – MO latitude and longitude as described in Iridium documentation. </span><br><br>
<span style="color:#0000ff">{02} – Payload IEI </span><br></br>
+
<span style="color:#0000ff">{00}{00}{00}{03} – CEP radius</span><br><br>
<span style="color:#0000ff">{00}{1C} – Payload length </span><br></br>
+
<span style="color:#0000ff">{02} – Payload IEI </span><br><br>
<span style="color:#008000">{59}{28}{2B}{A3}{91}{F5}{AB}{CD}{BF}{DD}{01}{80}{00}{00} – Record 1</span> <br></br>
+
<span style="color:#0000ff">{00}{1C} – Payload length </span><br><br>
<span style="color:#008000">{59}{28}{2B}{A8}{91}{F5}{AB}{CD}{BF}{DD}{01}{80}{00}{00} – Record 2 </span><br></br>
+
<span style="color:#008000">{59}{28}{2B}{A3}{91}{F5}{AB}{CD}{BF}{DD}{01}{80}{00}{00} – Record 1</span> <br><br>
 +
<span style="color:#008000">{59}{28}{2B}{A8}{91}{F5}{AB}{CD}{BF}{DD}{01}{80}{00}{00} – Record 2 </span><br><br>
  
 
There blue part of record is satellite device generated data and green is actual record payload which was sent to server from {{{device|}}}. Information of the first record should be parsed like this:
 
There blue part of record is satellite device generated data and green is actual record payload which was sent to server from {{{device|}}}. Information of the first record should be parsed like this:
<br></br>
+
<br><br>
<span style="color:#008000">{59}{28}{2B}{A3} – Timestamp of record generation in GMT0;</span> <br></br>
+
<span style="color:#008000">{59}{28}{2B}{A3} – Timestamp of record generation in GMT0;</span> <br><br>
<span style="color:#008000">{91}{F5}{AB} – Longitude (recalculated value is 25,255756) </span><br></br>
+
<span style="color:#008000">{91}{F5}{AB} – Longitude (recalculated value is 25,255756) </span><br><br>
<span style="color:#008000">{CD}{BF}{DD} – Latitude (recalculated value is 54,832396) </span><br></br>
+
<span style="color:#008000">{CD}{BF}{DD} – Latitude (recalculated value is 54,832396) </span><br><br>
<span style="color:#008000">{01} – DIN1 generated event </span><br></br>
+
<span style="color:#008000">{01} – DIN1 generated event </span><br><br>
<span style="color:#008000">{80} – DIN1 on, while DIN2, DOUT1, – off </span><br></br>
+
<span style="color:#008000">{80} – DIN1 on, while DIN2, DOUT1, – off </span><br><br>
<span style="color:#008000">{00} – Reserved byte</span> <br></br>
+
<span style="color:#008000">{00} – Reserved byte</span> <br><br>
<span style="color:#008000">{00} – Vehicle was stopped when the record was generated</span> <br></br>
+
<span style="color:#008000">{00} – Vehicle was stopped when the record was generated</span> <br><br>

Latest revision as of 12:24, 17 October 2023

Main Page > Accessories > Iridium Edge > Iridium Edge Communication Protocol

Communication Protocol

SBD Packet structure
Timestamp Longitude Latitude SBD AVL ID and flags DIN/DOUT info Reserved Speed
4 bytes 3 bytes 3 bytes 1 bytes 1 bytes 1 bytes 1 bytes

Definitions

  • Timestamp – Indicates when record was generated
  • Longitude - encoded in 3 bytes data. Server which gets this data should divide result from 46603,375 and subtract 180 in order to get actual longitude value. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
  • Latitude - Latitude is calculated in same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. Coefficient for latitude is 93206,75. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
  • SBD AVL ID and flags – Custom id that will indicate what caused the record to be generated (as only periodic records are generated, id is not used)
  • Din/Dout info - Displays configured IO elements in parameter id 99422
  • Reserved - Not used anywhere, but left due to compatibility with fm6 project.
  • Speed – Indicates the speed of the vehicle if configured. If not (or in case of no gps) – will display 255

Data Sending Parameters

Information here includes the data sending parameters which identifies the naming of the parameter in accordance to it's number.

Parameter ID Parameter name Min values Max values Default values Description
99420 Iridium Edge 0 1 0 This parameter enables or disables Iridium Edge functionality
99421 Save/Send period 0 1440 1440 This parameter lets to configure Iridium Edge sending period
99422 SBD IO source 0 10 0 SBD IO elements which when enabled are included into the SBD record
151 RS232 Mode 0 26 0 Implement ability to select "Sattelite backup"
99423 SBD Upload Limit 0 30000 8000 Limit to save user from exceeding the monthly plan. Max limit of 30000 due to 30KB plan. If set to 0 – limit will be off.

SBD IO source

Configures IO source which can trigger SBD record saving. 10 elements can generate Alarm for SDB sending. These elements are:

  • Byte 1 - Din1
  • Byte 2 - Din2
  • Byte 3 - Din3
  • Byte 4 - Din4
  • Byte 5 - Dout1
  • Byte 6 - Dout2
  • Byte 7 - Dout3
  • Byte 8 - Dout4
  • Byte 9 - Speed
  • Byte 10 - CrashDetect

By setting the apropriate bits you'll get a hex number that can be sent to the device to configure. additionally you can set via the configurator and use getparam command to get the correct value.

Configurator parameter IDs and their explanation:

Parameter ID
Parameter name Values Explanation
Min Max Default
99420 Iridium Edge 0 1 0 This parameter enables or disables Iridium Edge functionality
99421 Save/Send period 0 1440 1440 This parameter lets to configure Iridium Edge sending period
99422 SBD IO source* 0 10 0 SBD IO elements which when enabled are included into the SBD record
99423 SBD UploadLimit 0 30000 8000 Limit to save user from exceeding the monthly plan. Max limit of 30000 due to 30KB plan. If set to 0 – limit will be off.
99424 Power control DOUT 1 5 0 Device DOUT which can control ON/OFF pin of the Iridium Edge
151 RS232 Mode 0 23 0 RS-232 mode selection. "Satellite backup" - 15



In order to configure parameter 99422 manually users must simply set the appropriate values of bit positions, according to their needs:

  • Byte 1 - Din1
  • Byte 2 - Din2
  • Byte 3 - Din3
  • Byte 4 - Din4
  • Byte 5 - Dout1
  • Byte 6 - Dout2
  • Byte 7 - Dout3
  • Byte 8 - Dout4
  • Byte 9 - Speed
  • Byte 10 - CrashDetect

SDB record structure

SDB Record which will be sent through the Iridium satellites network will be different than the regular record. It will contain 4 bytes timestamp, 3 bytes longitude, 3 bytes latitude, 1 byte record generation info, 1 byte DIN,DOUT info, 1 byte Speed value.

Timestamp Longitude Latitude SDB AVL ID and flags DIN/DOUT info Reserved Speed
4B 3B 3B 1B 1B 1B 1B

Timestamp - Indicates when record was generated.

Longitude - In this packet is encoded in 3 bytes data. The server that gets this data should divide the result from 46603,375 and subtract 180 to get the actual longitude value. This coefficient is got in the following way: 16777215(maximum 3 bytes value) divided by 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.

Example:

Longitude: 910DA0 (in hexadecimal) → 9506208 (in decimal)

To convert Longitude:

(9506208 / 46603,375) - 180 = 23.9811065

Latitude - Is calculated in the same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. The coefficient for latitude is 93206,75. This coefficient is got in the following way: 16777215(maximum 3 bytes value) divided by 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.

Example:

Latitude: CE1AEB (in hexadecimal) → 13507307 (in decimal)

To convert Latitude:

(13507307 / 93206.750) - 90 = 54.91769

Din/Dout info - Displays configured IO elements in parameter id 99422 (only din/dout). If IO is not set, it will send be replaced by 0.

Reserved - Not used anywhere.

Speed – Indicates the speed (from GNSS) of the vehicle if configured. If not (or in case of no gps) – will display 255.

SBD AVL ID and flags – Custom ID that will indicate what caused the record to be generated This byte is divided in two parts of four bits, as shown in table below:



ID

0

1

2

24

179

247

IO element

Periodic rec.

Digital Input 1

Digital input 2

Speed

DOUT1

Crash



SBD packet example

Unparsed data:

01004C01001CF99DD263333030323334303634303730383330000018000059282DBC03000B0036A2B8193D120000000302001C 59282BA391F5ABCDBFDD0180000059282BA891F5ABCDBFDD0180000059282BA391F5AB

{01} – Protocol revision number

{00}{4C} – overall message length

{01} – MO header IEI

{00}{1C} – MO header length

{F9}{9D}{D2}{63} – CDR Reference

{33}{30}{30}{32}{33}{34}{30}{36}{34}{30}{37}{30}{38}{33}{30} – IMEI of the device

{00} – Session status (Transfer OK in this case)

{00}{18} – MOMSN

{00}{00} – MTMSN

{59}{28}{2D}{BC} – Time of session

{03} – MO Location information IEI

The location values included in this IE provide an estimate of the originating IMEI’s location. The inclusion of this information in an MO message delivery is optional. Whether or not it is included is established when the IMEI is provisioned and may be changed at any time via SPNet. The CEP radius provides the radius around the center point within which the unit is located. While the resolution of the reported position is given to 1/1000th of a minute, it is only accurate to within 10Km 80% of the time.

{00}{0B} – MO Location information length

{00}{36}{A2}{B8}{19}{3D}{12} – MO latitude and longitude as described in Iridium documentation.

{00}{00}{00}{03} – CEP radius

{02} – Payload IEI

{00}{1C} – Payload length

{59}{28}{2B}{A3}{91}{F5}{AB}{CD}{BF}{DD}{01}{80}{00}{00} – Record 1

{59}{28}{2B}{A8}{91}{F5}{AB}{CD}{BF}{DD}{01}{80}{00}{00} – Record 2

There blue part of record is satellite device generated data and green is actual record payload which was sent to server from . Information of the first record should be parsed like this:

{59}{28}{2B}{A3} – Timestamp of record generation in GMT0;

{91}{F5}{AB} – Longitude (recalculated value is 25,255756)

{CD}{BF}{DD} – Latitude (recalculated value is 54,832396)

{01} – DIN1 generated event

{80} – DIN1 on, while DIN2, DOUT1, – off

{00} – Reserved byte

{00} – Vehicle was stopped when the record was generated