Hey! We’ve had some solid progress recently and have been able to initiate data transmission to the API from the Dev Board app! I modified the example from Dev kit guide 5, and now we are automatically forwarding any data we get from our uart (rpi) payload to the API backend. It’s working pretty fast too- roughly 45 seconds per transmission I think, and the messages come in order even when we send them at like 0.5Hz.
Howeverrr… from my testing the longest message we can send is 48 bytes - anything longer and the entire dev board crashes. I was referencing this thread where you say:
This is not my experience so far Here is how we are sending it in our dev board app, just like guide 5 with a modification to recast the char buffer to uint8.
uint16_t read_len =
PLUART::readLine(payload_buffer, sizeof(payload_buffer));
/*
a lot of other stuff here
*/
// Copy uart data into a raw bytes buffer and send
uint8_t tx_data[read_len] = {};
memcpy(tx_data, reinterpret_cast<uint8_t *>(&payload_buffer), read_len);
if(spotter_tx_data(tx_data, sizeof(tx_data), BM_NETWORK_TYPE_CELLULAR_IRI_FALLBACK)){
printf("%llut - %s | Successfully sent Spotter transmit data request\n", uptimeGetMs(), rtcTimeBuffer);
}
else {
printf("%llut - %s | ERR Failed to send Spotter transmit data request!\n", uptimeGetMs(), rtcTimeBuffer);
}
And when it lands in the backend, heres an example of what that looks like:
{
"latitude": 34.4145333,
"longitude": -119.8480833,
"timestamp": "2024-04-29T05:32:02.000Z",
"sensorPosition": null,
"bristlemouth_node_id": "0x29f5069863a2a349",
"units": "hex",
"value": "3c5478783e74657374313238",
"unit_type": "binary",
"data_type_name": "binary_hex_encoded"
},
It’s the exact same format as when we send it from the spotter console. Any thoughts? Can we access the whole buffer?