retain telemetry across transport outages

This commit is contained in:
Jay
2026-08-17 14:00:14 -04:00
parent bc4a2856e1
commit 291c6b54e6
11 changed files with 222 additions and 37 deletions
+46
View File
@@ -54,5 +54,51 @@ int main(void)
if (size == 0 || fwrite(packet, 1, size, stdout) != size) {
return 1;
}
trikke_wire_sample_t full_packet[TRIKKE_WIRE_MAX_RECORDS] = {0};
for (size_t i = 0; i < TRIKKE_WIRE_MAX_RECORDS; ++i) {
full_packet[i].sequence = 2000 + (uint32_t)i;
full_packet[i].timestamp_us = 3000000 + (int64_t)i * 10000;
full_packet[i].accel_x = (int16_t)i;
full_packet[i].gyro_z = -(int16_t)i;
full_packet[i].accel_status = 0x80;
full_packet[i].gyro_status = 0x08;
}
size = trikke_encode_sample_packet(
packet, sizeof(packet), 43, 2, 3, full_packet,
TRIKKE_WIRE_MAX_RECORDS);
if (size != TRIKKE_WIRE_MAX_PACKET_SIZE ||
fwrite(packet, 1, size, stdout) != size) {
return 2;
}
const trikke_wire_sample_t saturated[] = {
{.sequence = 3000, .timestamp_us = 4000000},
{.sequence = 3001, .timestamp_us = 4700000},
};
size = trikke_encode_sample_packet(packet, sizeof(packet), 44, 2, 3,
saturated, 2);
if (size == 0 || fwrite(packet, 1, size, stdout) != size) {
return 3;
}
if (!trikke_wire_timestamp_delta_fits(0, 655350) ||
trikke_wire_timestamp_delta_fits(0, 655351) ||
trikke_wire_timestamp_delta_fits(1, 0)) {
return 4;
}
if (trikke_encode_metadata_packet(
packet, TRIKKE_WIRE_HEADER_SIZE + TRIKKE_WIRE_METADATA_SIZE - 1,
0, 0, 0, 0, &metadata) != 0 ||
trikke_encode_sample_packet(packet, sizeof(packet), 0, 0, 0,
samples, 0) != 0 ||
trikke_encode_sample_packet(packet, sizeof(packet), 0, 0, 0,
full_packet,
TRIKKE_WIRE_MAX_RECORDS + 1) != 0 ||
trikke_encode_sample_packet(packet, TRIKKE_WIRE_MAX_PACKET_SIZE - 1,
0, 0, 0, full_packet,
TRIKKE_WIRE_MAX_RECORDS) != 0) {
return 5;
}
return 0;
}