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
+51
View File
@@ -0,0 +1,51 @@
#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "esp_err.h"
#include "freertos/FreeRTOS.h"
#include "trikke_transport.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
uint32_t disconnect_count;
uint32_t send_failure_count;
uint32_t replay_count;
uint32_t invalid_ack_count;
} trikke_ble_transport_counters_t;
typedef struct {
portMUX_TYPE lock;
bool initialized;
bool connected;
bool subscribed;
bool frame_active;
bool frame_fully_sent_once;
bool ack_received;
uint16_t connection_handle;
uint32_t delivery_epoch;
uint32_t frame_epoch;
uint32_t frame_sequence;
const uint8_t *frame;
size_t frame_size;
size_t next_offset;
int64_t ack_deadline_us;
trikke_ble_transport_counters_t counters;
} trikke_ble_transport_t;
esp_err_t trikke_ble_transport_init(
trikke_ble_transport_t *ble,
trikke_transport_t *transport);
void trikke_ble_transport_get_counters(
trikke_ble_transport_t *ble,
trikke_ble_transport_counters_t *counters);
#ifdef __cplusplus
}
#endif