Changes

m
no edit summary
Line 65: Line 65:  
'''Number of Data 2''' – a number which defines how many records are in the packet. This number must be the same as “Number of Data 1”. <br>
 
'''Number of Data 2''' – a number which defines how many records are in the packet. This number must be the same as “Number of Data 1”. <br>
 
'''CRC-16''' – calculated from Codec ID to the Second Number of Data. CRC (Cyclic Redundancy Check) is an error-detecting code using for detect accidental changes to RAW data. For calculation we are using [[Codec#CRC-16|CRC-16/IBM]].<br> <br>
 
'''CRC-16''' – calculated from Codec ID to the Second Number of Data. CRC (Cyclic Redundancy Check) is an error-detecting code using for detect accidental changes to RAW data. For calculation we are using [[Codec#CRC-16|CRC-16/IBM]].<br> <br>
'''Note:''' for [[FMB630]], [[FMB640]] and [[FM6300|FM63XY]], minimum AVL record size is 45 bytes (all IO elements disabled). Maximum AVL record size is 255 bytes. Maximum AVL packet size is 512 bytes. For other devices, the minimum AVL packet size is 45 bytes (all IO elements disabled). Maximum AVL packet size is 1280 bytes. <br>
+
'''Note:''' for [[FMB640]], [[FMB641]], [[FMC640]], and [[FMM640]], minimum AVL record size is 45 bytes (all IO elements disabled). Maximum AVL record size is 255 bytes. Maximum AVL packet size is 512 bytes. For other devices, the minimum AVL record size is 45 bytes (all IO elements disabled). Maximum AVL packet size is 1280 bytes. <br>
    
*AVL Data
 
*AVL Data
Line 305: Line 305:  
| rowspan="24" style="vertical-align: middle; text-align: center;" |AVL Data
 
| rowspan="24" style="vertical-align: middle; text-align: center;" |AVL Data
 
| style="vertical-align: middle; text-align: center;" |Timestamp
 
| style="vertical-align: middle; text-align: center;" |Timestamp
| style="vertical-align: middle; text-align: center;" |00 00 00 01 6B 40 D8 EA 30 (GMT: Monday, June 10, 2019 10:04:46 AM)
+
| style="vertical-align: middle; text-align: center;" |00 00 01 6B 40 D8 EA 30 (GMT: Monday, June 10, 2019 10:04:46 AM)
 
|-
 
|-
 
| style="vertical-align: middle; text-align: center;" |Priority
 
| style="vertical-align: middle; text-align: center;" |Priority
Line 468: Line 468:  
| style="vertical-align: middle; text-align: center;" |5E 0F
 
| style="vertical-align: middle; text-align: center;" |5E 0F
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 556: Line 556:  
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 606: Line 606:  
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 626: Line 626:  
*'''<big>Codec8 protocol sending over UDP</big>'''
 
*'''<big>Codec8 protocol sending over UDP</big>'''
   −
UDP is a transport layer protocol above UDP/IP to add reliability to plain UDP/IP using acknowledgment packets. <br>
+
Codec8 protocol [over UDP] is a transport layer protocol above UDP/IP to add reliability to plain UDP/IP using acknowledgment packets. <br>
    
*'''AVL Data Packet'''
 
*'''AVL Data Packet'''
Line 717: Line 717:  
*'''Communication with server'''
 
*'''Communication with server'''
   −
The module sends the UDP channel packet with an encapsulated AVL data packet. The server sends the UDP channel packet with an encapsulated response module validates AVL Packet ID and the Number of accepted AVL elements. If server response with valid AVL Packet ID is not received within configured timeout, the module can retry sending. <br>
+
The module sends the UDP channel packet with an encapsulated AVL data packet. The server sends the UDP channel packet with an encapsulated response module that validates AVL Packet ID and the Number of accepted AVL elements. If server response with valid AVL Packet ID is not received within configured timeout, the module can retry sending. <br>
    
*Example:
 
*Example:
Line 857: Line 857:  
| style="vertical-align: middle; text-align: center;" |5D BC
 
| style="vertical-align: middle; text-align: center;" |5D BC
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of EightBytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 902: Line 902:  
*'''<big>Protocols overview</big>'''
 
*'''<big>Protocols overview</big>'''
   −
Codec8 Extended is using for FMBXXX family devices. This protocol looks familiar like Codec8 but they have some differences. Main differences between are shown in below table:  
+
Codec8 Extended is used for FMBXXX family devices. This protocol looks familiar to Codec8 but they have some differences. Main differences between are shown in below table:  
 
{| class="nd-othertables_2" style="width:100%;"
 
{| class="nd-othertables_2" style="width:100%;"
 
|+
 
|+
Line 968: Line 968:  
'''Number of Data 2''' – a number which defines how many records are in the packet. This number must be the same as “Number of Data 1”. <br>
 
'''Number of Data 2''' – a number which defines how many records are in the packet. This number must be the same as “Number of Data 1”. <br>
 
'''CRC-16''' – calculated from Codec ID to the Second Number of Data. CRC (Cyclic Redundancy Check) is an error-detecting code using for detect accidental changes to RAW data. For calculation we are using [[Codec#CRC-16|CRC-16/IBM]].<br> <br>
 
'''CRC-16''' – calculated from Codec ID to the Second Number of Data. CRC (Cyclic Redundancy Check) is an error-detecting code using for detect accidental changes to RAW data. For calculation we are using [[Codec#CRC-16|CRC-16/IBM]].<br> <br>
'''Note:''' for [[FMB630]], [[FMB640]] and [[FM6300|FM63XY]], minimum AVL packet size is 45 bytes (all IO elements disabled). Maximum AVL packet size is 255 bytes. For other devices, the minimum AVL packet size is 45 bytes (all IO elements disabled). Maximum AVL packet size is 1280 bytes. <br>  
+
'''Note:''' for [[FMB640]], [[FMB641]], [[FMC640]], and [[FMM640]], minimum AVL record size is 45 bytes (all IO elements disabled). Maximum AVL record size is 255 bytes. For other devices, the minimum AVL record size is 45 bytes (all IO elements disabled). Maximum AVL packet size is 1280 bytes. <br>  
    
*AVL Data
 
*AVL Data
Line 988: Line 988:       −
'''Timestamp''' – a difference, in milliseconds, between the current time and midnight, January, 1970 UTC (UNIX time). <br>
+
'''Timestamp''' – a difference, in milliseconds, between the current time and midnight, January 1970 UTC (UNIX time). <br>
 
'''Priority''' – field which define AVL data priority (more information below). <br>
 
'''Priority''' – field which define AVL data priority (more information below). <br>
 
'''GPS Element''' – locational information of the AVL data (more information below). <br>
 
'''GPS Element''' – locational information of the AVL data (more information below). <br>
Line 1,273: Line 1,273:  
| style="vertical-align: middle; text-align: center;" |00 1D
 
| style="vertical-align: middle; text-align: center;" |00 1D
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00 01
 
| style="vertical-align: middle; text-align: center;" |00 01
 
|-
 
|-
Line 1,282: Line 1,282:  
| style="vertical-align: middle; text-align: center;" |01 5E 2C 88
 
| style="vertical-align: middle; text-align: center;" |01 5E 2C 88
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00 02
 
| style="vertical-align: middle; text-align: center;" |00 02
 
|-
 
|-
Line 1,316: Line 1,316:  
*'''UDP channel protocol'''
 
*'''UDP channel protocol'''
   −
AVL data packet is the same as with Codec8, except Codec ID is changed to <code>0x8E</code>. <br>  
+
AVL data packet is the same as with Codec8, except Codec ID is changed to <code>0x8E</code>. AVL Data encoding was performed according to Codec8 Extended protocol. <br>  
    
*'''Communication with server'''
 
*'''Communication with server'''
   −
The module sends the UDP channel packet with an encapsulated AVL data packet. The server sends the UDP channel packet with an encapsulated response module validates AVL Packet ID and the Number of accepted AVL elements. If server response with valid AVL Packet ID is not received within configured timeout, the module can retry sending. <br>
+
The module sends the UDP channel packet with an encapsulated AVL data packet. The server sends the UDP channel packet with an encapsulated response module that validates AVL Packet ID and the Number of accepted AVL elements. If server response with valid AVL Packet ID is not received within configured timeout, the module can retry sending. <br>
    
*Example:
 
*Example:
Line 1,455: Line 1,455:  
| style="vertical-align: middle; text-align: center;" |00 1D
 
| style="vertical-align: middle; text-align: center;" |00 1D
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00 01
 
| style="vertical-align: middle; text-align: center;" |00 01
 
|-
 
|-
Line 1,464: Line 1,464:  
| style="vertical-align: middle; text-align: center;" |01 5E 2C 88
 
| style="vertical-align: middle; text-align: center;" |01 5E 2C 88
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00 02
 
| style="vertical-align: middle; text-align: center;" |00 02
 
|-
 
|-
Line 1,518: Line 1,518:  
*'''<big>Protocol overview</big>'''
 
*'''<big>Protocol overview</big>'''
   −
Codec16 is using for FMB630/FM63XY devices. This protocol looks familiar like Codec8 but they have some differences. Main differences between are shown in table below:  
+
Codec16 is using for [[FMB630]]/FM63XY series devices. This protocol looks familiar like Codec8 but they have some differences. Main differences between are shown in table below:  
 
{| class="nd-othertables_2" style="width:100%;"
 
{| class="nd-othertables_2" style="width:100%;"
 
|+
 
|+
Line 1,579: Line 1,579:  
'''Number of Data 2''' – a number which defines how many records are in the packet. This number must be the same as “Number of Data 1”. <br>
 
'''Number of Data 2''' – a number which defines how many records are in the packet. This number must be the same as “Number of Data 1”. <br>
 
'''CRC-16''' – calculated from Codec ID to the Second Number of Data. CRC (Cyclic Redundancy Check) is an error-detecting code using for detect accidental changes to RAW data. For calculation we are using [[Codec#CRC-16|CRC-16/IBM]].<br> <br>
 
'''CRC-16''' – calculated from Codec ID to the Second Number of Data. CRC (Cyclic Redundancy Check) is an error-detecting code using for detect accidental changes to RAW data. For calculation we are using [[Codec#CRC-16|CRC-16/IBM]].<br> <br>
'''Note:''' for [[FMB630]] and FM63XY, minimum AVL packet size is 45 bytes (all IO elements disabled). Maximum AVL packet size is 255 bytes. <br>  
+
'''Note:''' for [[FMB630]] and FM63XY, minimum AVL record size is 45 bytes (all IO elements disabled). Maximum AVL record size is 255 bytes. <br>  
    
*AVL Data
 
*AVL Data
Line 1,599: Line 1,599:       −
'''Timestamp''' – a difference, in milliseconds, between the current time and midnight, January, 1970 UTC (UNIX time). <br>
+
'''Timestamp''' – a difference, in milliseconds, between the current time and midnight, January 1970 UTC (UNIX time). <br>
 
'''Priority''' – field which define AVL data priority (more information below). <br>
 
'''Priority''' – field which define AVL data priority (more information below). <br>
 
'''GPS Element''' – location information of the AVL data (more information below). <br>
 
'''GPS Element''' – location information of the AVL data (more information below). <br>
Line 1,808: Line 1,808:  
| style="vertical-align: middle; text-align: center;" |Codec ID – 0x10,
 
| style="vertical-align: middle; text-align: center;" |Codec ID – 0x10,
 
Number of Data – '''0x02''' <br>
 
Number of Data – '''0x02''' <br>
(Encoded using continuous bit stream. Last byte padded to align to byte boundary)
+
(Encoded using continuous bit stream. The last byte padded to align to byte boundary)
 
| style="vertical-align: middle; text-align: center;" |CRC of “AVL Data Array”
 
| style="vertical-align: middle; text-align: center;" |CRC of “AVL Data Array”
 
|-
 
|-
Line 1,912: Line 1,912:  
| style="vertical-align: middle; text-align: center;" |56 3A
 
| style="vertical-align: middle; text-align: center;" |56 3A
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 1,983: Line 1,983:  
| style="vertical-align: middle; text-align: center;" |56 3A
 
| style="vertical-align: middle; text-align: center;" |56 3A
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 2,001: Line 2,001:  
Server response: <code>00000002</code> <br>  
 
Server response: <code>00000002</code> <br>  
   −
*'''<big>Codec16 Extended protocol sending over UDP</big>'''
+
*'''<big>Codec16 protocol sending over UDP</big>'''
 
*'''UDP channel protocol'''
 
*'''UDP channel protocol'''
   −
AVL data packet is the same as with Codec8, except Codec ID is changed to <code>0x10</code>. <br>
+
AVL data packet is the same as with Codec8, except Codec ID is changed to <code>0x10</code>. AVL Data encoding performed according to Codec16 protocol. <br>
    
*'''Communication with server'''
 
*'''Communication with server'''
Line 2,164: Line 2,164:  
| style="vertical-align: middle; text-align: center;" |11 1A
 
| style="vertical-align: middle; text-align: center;" |11 1A
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N4 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N4 of Four Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
| style="vertical-align: middle; text-align: center;" |N8 of Two Bytes IO
+
| style="vertical-align: middle; text-align: center;" |N8 of Eight Bytes IO
 
| style="vertical-align: middle; text-align: center;" |00
 
| style="vertical-align: middle; text-align: center;" |00
 
|-
 
|-
Line 2,206: Line 2,206:     
=='''<big>Differences between Codec 8, Codec 8 Extended and Codec 16</big>'''==
 
=='''<big>Differences between Codec 8, Codec 8 Extended and Codec 16</big>'''==
In the table below you will see differences between Codec8, Codec8 Extended and Codec16.  
+
In the table below you will see differences between Codec8, Codec8 Extended, and Codec16.  
 
{| class="nd-othertables_2" style="width:100%;"
 
{| class="nd-othertables_2" style="width:100%;"
 
|+
 
|+

Navigation menu