#pragma once #include #include #include #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