R7 Serial: Send Data
📘 Outbound message behaviour
As of January 2020 software updates, multiple API messages can be sent in a single session. Either a manual or routine transmission will trigger all queued outbound messages to be sent.
Transmit Hex Encoded Data​
Serial Command | Function |
---|---|
R7+WH= | Sends user defined hexadecimal data. Hexadecimal data must be preceded by checksum. |
R7+WHP= | Sends user defined hexadecimal data and GPS position data. Hexadecimal data must be preceded by checksum. |
R7+WHNC= | Sends user defined hexadecimal data. No Checksum used. |
R7+WHNCP= | Sends user defined hexadecimal data and GPS position data. No Checksum used. |
🚧 Important
Payload Size
The maximum packet size for transmission is 340 bytes.
The maximum user-definable payload size is 338 bytes or 321 bytes when also requesting GPS data (WHP, WHNCP etc.)
Checksum
When sending data with a checksum, the required checksum type is CRC-CCITT (XModem). Example: the ASCII string "123456789" produces checksum 0x31C3
R7+WH=​
This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.
/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64, Checksum: 992a)
R7+WH=992a48656c6c6f20576f726c64\r
/* Receive Response */
<Outbound MessageID>\r
OK\r
Result when data pushed as JSON/HTTP:
For more information please check the PUSH API documentation
{
"txAt": "2019-08-05T16:27:10Z",
"temp": 0,
"userData": "48656c6c6f20576f726c64",
"iridium_latitude": 50.8997,
"JWT": "...",
"device_type": "GRIFFIN",
"transport": "IRIDIUM",
"source": "IRIDIUM",
"trigger": "SERIAL_RAW",
"iridium_longitude": -1.024,
"battery": 0,
"cep": 684,
"momsn": 194,
"at": "2019-08-05T16:27:12Z",
"serial": 100015,
"imei": "300434062929540",
"id": "lNGxekOvAKmanjRpPPrknRdpyLgXjMbV",
"power": true,
"transmit_time": "2019-08-05T16:27:10Z"
}
"imei=300434062929540&device_type=GRIFFIN&serial=100015&momsn=197&transmit_time=2019-08-06T08%3A35%3A36Z&id=rLzVjdQqPgkaElgpkMerWpRyKbJZONAG&transport=IRIDIUM&txAt=2019-08-06T08%3A35%3A36Z&at=2019-08-06T08%3A35%3A38Z&iridium_latitude=50.8981&iridium_longitude=-1.1947&cep=2&source=IRIDIUM&temp=0.0&battery=0&power=true&trigger=SERIAL_RAW&userData=48656c6c6f20576f726c64"
R7+WHP=​
This command instructs the device to send user-supplied data and GPS position data.
The device will respond with a message ID, which can be used later to query status.
/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64, Checksum: 992a)
R7+WHP=992a48656c6c6f20576f726c64\r
/* Receive Response */
<Outbound MessageID>\r
OK\r
Result when data pushed as JSON/HTTP:
For more information please check the PUSH API documentation
{
"averageCog": 327,
"userData": "48656c6c6f20576f726c64",
"iridium_latitude": 50.9007,
"device_type": "GRIFFIN",
"lon": -1.25216,
"sog": 0.1,
"source": "GPS",
"battery": 100,
"cep": 684,
"momsn": 193,
"id": "NAKwlzdYZQrbELblLLdqnjaoLkJqpevR",
"power": true,
"transmit_time": "2019-08-05T16:26:38Z",
"lat": 50.87766,
"txAt": "2019-08-05T16:26:38Z",
"pdop": 1,
"temp": 28,
"JWT": "...",
"alt": 31,
"transport": "IRIDIUM",
"trigger": "SERIAL_RAW",
"iridium_longitude": -0.9103,
"averageSog": 0,
"at": "2019-08-05T16:26:29Z",
"serial": 100015,
"imei": "300434062929540",
"cog": 0
}
"imei=300434062929540&device_type=GRIFFIN&serial=100015&momsn=198&transmit_time=2019-08-06T08%3A45%3A11Z&id=AlRXzwrdjymbnKlawxwZWKLNxvPkMeqg&transport=IRIDIUM&txAt=2019-08-06T08%3A45%3A11Z&at=2019-08-06T08%3A45%3A01Z&iridium_latitude=50.8975&iridium_longitude=-1.2515&cep=2&lat=50.87766&lon=-1.25211&source=GPS&sog=0.0&cog=0&averageSog=0.0&averageCog=180&alt=34&pdop=1.25&temp=27.0&battery=99&power=true&trigger=SERIAL_RAW&userData=48656c6c6f20576f726c64"
R7+WHNC=​
This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.
/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64)
R7+WHNC=48656c6c6f20576f726c64\r
/* Receive Response */
<Outbound MessageID>\r
OK\r
R7+WHNCP=​
This command instructs the device to send user-supplied data and GPS position data.
The device will respond with a message ID, which can be used later to query status.
/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64)
R7+WHNCP=48656c6c6f20576f726c64\r
/* Receive Response */
<Outbound MessageID>\r
OK\r
Transmit Binary Encoded Data​
Serial Command | Function |
---|---|
R7+WB= | Sends user defined binary data with checksum. |
R7+WBP= | Sends user defined binary data with checksum and GPS position data. |
R7+WBNC= | Sends user defined binary data. |
R7+WBNCP= | Sends user defined binary data and GPS position data. |
🚧 Important
Payload Size
The maximum payload size is 268 bytes or 250 bytes when also requesting GPS data (WBP, WBNCP etc.)Checksum
When sending data with a checksum, the required checksum type is CRC-CCITT (XModem). Example: the ASCII string "123456789" produces checksum 0x31C3
R7+WB=​
This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.
/* Prepare device to receive binary data */
/* Length = byte size of binary payload */
R7+WB=[length]\r
/* Receive response */
OK\r
/* Device is now listening for binary data */
<binary data>\r
/* Receive response */
<Outbound MessageID>\r
OK\r
R7+WBP=​
This command instructs the device to send user-supplied data and GPS position data.
The device will respond with a message ID, which can be used later to query status.
/* Prepare device to receive binary data */
/* Length = byte size of binary payload */
R7+WBP=[length]\r
/* Receive response */
OK\r
/* Device is now listening for binary data */
<binary data>\r
/* Receive response */
<Outbound MessageID>\r
OK\r
R7+WBNC=​
This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.
/* Prepare device to receive binary data */
/* Length = byte size of binary payload */
R7+WBNC=[length]\r
/* Receive response */
OK\r
/* Device is now listening for binary data */
<binary data>\r
/* Receive response */
<Outbound MessageID>\r
OK\r
R7+WBNCP=​
This command instructs the device to send user-supplied data.
The device will respond with a message ID, which can be used later to query status.
/* Prepare device to receive binary data */
/* Length = byte size of binary payload */
R7+WBNCP=[length]\r
/* Receive response */
OK\r
/* Device is now listening for binary data */
<binary data>\r
/* Receive response */
<Outbound message ID>\r
OK\r
Additional Commands​
R7+[WH|WHNC|WHP|WHNCP|WB|WBNC|WBP|WBNCP],ID=n​
Sets outbound message ID. Used in combination with send hex or binary data commands.
/* Transmit "Hello World" (Hex: 48656c6c6f20576f726c64)*/
/* Set the Outbound Message ID to '1234' */
R7+WHNCP=48656c6c6f20576f726c64,ID=1234\r
/* Receive response */
1234\r
OK\r
📘 ERROR 3
This error will be returned to indicate rejection of a message command when the submitted ID is a duplicate of one already in the DB and not yet sent.
R7+STAT​
This command requests the transmission status of a specific outbound message.
The device will respond with a status number
/* Check message status */
R7+STAT=<Outbound Message ID>\r
/* Receive response */
<Status #>\r
OK\r
Response | Meaning |
---|---|
0 | Message not sent |
1 | Message sent |