OTA (Over-The-Air) Packet: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{| class="wikitable" | {| class="wikitable" style="border:1px solid #ccc; width:100%;" | ||
! style="background-color:#680022; color:white;" | Field | ! style="background-color:#680022; color:white;" | Field | ||
! style="background-color:#680022; color:white;" | Size (bits) | ! style="background-color:#680022; color:white;" | Size (bits) | ||
| Line 8: | Line 8: | ||
! colspan="5" style="background:#D3D3D3;" | Header | ! colspan="5" style="background:#D3D3D3;" | Header | ||
|- | |- | ||
| Start byte || 8 || 0–7 || Starting character $ (ASCII value 36) || $ | | Start byte || 8 || 0–7 || Starting character $ (ASCII value 36) || $ | ||
|- | |- | ||
| Data length || 12 || 8–18 || 2-byte length of the data following the header || | | Data length || 12 || 8–18 || 2-byte length of the data following the header || — | ||
|- | |- | ||
| Num of data packets || 5 || 19–23 || Number of packets (0–32) || 0 - 32 | | Num of data packets || 5 || 19–23 || Number of packets (0–32) || 0 - 32 | ||
| Line 17: | Line 17: | ||
|- | |- | ||
| Packet Type || 5 || 75–79 || Type of packet || | | Packet Type || 5 || 75–79 || Type of packet || | ||
00 - Device info | 00 - Device info<br> | ||
01 - Alert packet | 01 - Alert packet<br> | ||
02 - OTA pkt | 02 - OTA pkt<br> | ||
03 - | 03 - Error Packet<br> | ||
04 - Device configuration packet | 04 - Device configuration packet<br> | ||
05 - IP configuration packet | 05 - IP configuration packet | ||
|- | |- | ||
| Line 27: | Line 27: | ||
|- | |- | ||
| OTA Source || 5 || — || Source of OTA || | | OTA Source || 5 || — || Source of OTA || | ||
00 - OTA_SRC_SERIAL | 00 - OTA_SRC_SERIAL<br> | ||
01 - OTA_SRC_SMS | 01 - OTA_SRC_SMS<br> | ||
02 - OTA_SRC_IP_TRANSIGHT | 02 - OTA_SRC_IP_TRANSIGHT<br> | ||
03 - OTA_SRC_IP_CUSTOMER | 03 - OTA_SRC_IP_CUSTOMER | ||
|- | |- | ||
| Error status || 8 || — || Non-zero value indicates an error || | | Error status || 8 || — || Non-zero value indicates an error || 0 = No Error, Non-zero = Error | ||
|- | |- | ||
| Cell Number || 51 || — || | | Cell Number || 51 || — || First bit (MSB) indicates presence of country code. Remaining 50 bits = mobile number || | ||
First bit (MSB) | |||
Remaining 50 bits | |||
Example: 400D6276ACF52 (+919784312658) | Example: 400D6276ACF52 (+919784312658) | ||
|- | |- | ||
| Date & Time || 32 || — || UTC Timestamp || UTC time in seconds | | Date & Time || 32 || — || UTC Timestamp || UTC time in seconds | ||
|- | |- | ||
| Timezone || 8 || — || | | Timezone || 8 || — || Timezone in quarter-hours (e.g., 22 = +5:30) || | ||
Timezone in quarter-hours (e.g., 22 = +5:30 | 22 × 15 mins = 330 mins = +5:30 | ||
|- | |- | ||
| Command Length || 8 || — || Length of command string || | | Command Length || 8 || — || Length of command string || — | ||
|- | |- | ||
| Command || | | Command || up to 600 bits (75 bytes) || — || Command with arguments, null-terminated string || | ||
Example: SET CUIOCFG:IO1-DI-IGN*IO2_AN_GEN*IO3-DI-PBN*IO4-DO-IMB* | Example: SET CUIOCFG:IO1-DI-IGN*IO2_AN_GEN*IO3-DI-PBN*IO4-DO-IMB* | ||
|- | |- | ||
| Response Length || 8 || — || Length of response string || | | Response Length || 8 || — || Length of response string || — | ||
|- | |- | ||
| Response || | | Response || up to 512 bits (64 bytes) || — || Response string from device || | ||
Example: IOCFG:IO1-DI-IGN*IO2-AN_GEN*IO3-DI-PBN*IO4-DO-IMB* | Example: IOCFG:IO1-DI-IGN*IO2-AN_GEN*IO3-DI-PBN*IO4-DO-IMB* | ||
|- | |- | ||
! colspan="5" style="background:#D3D3D3;" | Tail | ! colspan="5" style="background:#D3D3D3;" | Tail | ||
|- | |- | ||
| End Character || 8 || 0–7 || | | End Character || 8 || 0–7 || End character * (ASCII value 42) || * | ||
|- | |- | ||
| CRC || 8 || | | CRC || 8 || 8–15 || 8-bit XOR CRC from $ to * (excluding both) || — | ||
8-bit XOR CRC | |||
(excluding | |||
|} | |} | ||
==Sample Packet== | ==Sample Packet== | ||
<pre> | <pre> | ||
Revision as of 09:40, 15 July 2025
| Field | Size (bits) | Bit Range | Description | Breakdown |
|---|---|---|---|---|
| Header | ||||
| Start byte | 8 | 0–7 | Starting character $ (ASCII value 36) | $ |
| Data length | 12 | 8–18 | 2-byte length of the data following the header | — |
| Num of data packets | 5 | 19–23 | Number of packets (0–32) | 0 - 32 |
| IMEI | 50 | 24–74 | Unique device identifier | Integer type: e.g., 887744556677882 |
| Packet Type | 5 | 75–79 | Type of packet |
00 - Device info |
| Data | ||||
| OTA Source | 5 | — | Source of OTA |
00 - OTA_SRC_SERIAL |
| Error status | 8 | — | Non-zero value indicates an error | 0 = No Error, Non-zero = Error |
| Cell Number | 51 | — | First bit (MSB) indicates presence of country code. Remaining 50 bits = mobile number |
Example: 400D6276ACF52 (+919784312658) |
| Date & Time | 32 | — | UTC Timestamp | UTC time in seconds |
| Timezone | 8 | — | Timezone in quarter-hours (e.g., 22 = +5:30) |
22 × 15 mins = 330 mins = +5:30 |
| Command Length | 8 | — | Length of command string | — |
| Command | up to 600 bits (75 bytes) | — | Command with arguments, null-terminated string |
Example: SET CUIOCFG:IO1-DI-IGN*IO2_AN_GEN*IO3-DI-PBN*IO4-DO-IMB* |
| Response Length | 8 | — | Length of response string | — |
| Response | up to 512 bits (64 bytes) | — | Response string from device |
Example: IOCFG:IO1-DI-IGN*IO2-AN_GEN*IO3-DI-PBN*IO4-DO-IMB* |
| Tail | ||||
| End Character | 8 | 0–7 | End character * (ASCII value 42) | * |
| CRC | 8 | 8–15 | 8-bit XOR CRC from $ to * (excluding both) | — |
Sample Packet
{"HEX:240340e1cabd09208ca210000000000000006824646f160947455420545355524c1c55524c3a5443503a3134312e3134372e3132382e3135303a383738382aa2",
"cell_no": 0,
"command": "GET TSURL",
"command_length": 9,
"dateTime": 1747215471,
"dateTime_tz": "2025-05-14 15:07:51.000",
"error_status": 0,
"imei": 860187062240357,
"insert_time": "Wed, 14 May 2025 09:38:03 GMT",
"ota_source": 2,
"packetType": 2,
"response": "URL:TCP:141.147.128.150:8788",
"response_length": 28,
"send_time": "2025-05-14 15:07:51",
"timezone": 22}