add reliable BLE telemetry transport
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user