add reliable BLE telemetry transport

This commit is contained in:
Jay
2026-08-18 06:24:10 -04:00
parent 00f52ecf0f
commit 7617010d8e
26 changed files with 1499 additions and 47 deletions
+22 -3
View File
@@ -88,10 +88,26 @@ int main(void)
return fail(4, "saturated timestamp encoding or output");
}
const trikke_wire_status_t status = {
.sensor_read_failure_count = 5,
.queue_overflow_count = 6,
.transport_begin_retry_count = 7,
.transport_disconnect_count = 8,
.transport_send_failure_count = 9,
.transport_replay_count = 10,
.transport_invalid_ack_count = 11,
};
size = trikke_encode_status_packet(packet, sizeof(packet), 45, 5000000,
11, 12, &status);
if (size != TRIKKE_WIRE_HEADER_SIZE + TRIKKE_WIRE_STATUS_SIZE ||
fwrite(packet, 1, size, stdout) != size) {
return fail(5, "status encoding or output");
}
if (!trikke_wire_timestamp_delta_fits(0, 655350) ||
trikke_wire_timestamp_delta_fits(0, 655351) ||
trikke_wire_timestamp_delta_fits(1, 0)) {
return fail(5, "timestamp-delta boundary contract");
return fail(6, "timestamp-delta boundary contract");
}
if (trikke_encode_metadata_packet(
packet, TRIKKE_WIRE_HEADER_SIZE + TRIKKE_WIRE_METADATA_SIZE - 1,
@@ -103,8 +119,11 @@ int main(void)
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 fail(6, "invalid argument rejection contract");
TRIKKE_WIRE_MAX_RECORDS) != 0 ||
trikke_encode_status_packet(
packet, TRIKKE_WIRE_HEADER_SIZE + TRIKKE_WIRE_STATUS_SIZE - 1,
0, 0, 0, 0, &status) != 0) {
return fail(7, "invalid argument rejection contract");
}
return 0;
}