Files
trikkeSensors/main/trikke_ble_transport.h
T

52 lines
1.1 KiB
C

#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