| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #pragma once
- #include <furi.h>
- #include "seos_hci_h5.h"
- #include "seos_common.h"
- typedef void (
- *SeosHciReceiveCallback)(void* context, uint16_t handle, uint8_t flags, BitBuffer* pdu);
- typedef void (*SeosHciCompletedPacketsCallback)(void* context);
- typedef void (*SeosHciCentralConnectionCallback)(void* context);
- typedef struct {
- Seos* seos;
- SeosHciH5* seos_hci_h5;
- uint16_t connection_handle;
- SeosHciReceiveCallback receive_callback;
- void* receive_callback_context;
- SeosHciCompletedPacketsCallback completed_packets_callback;
- void* completed_packets_context;
- SeosHciCentralConnectionCallback central_connection_callback;
- void* central_connection_context;
- BleMode mode;
- FlowMode flow_mode;
- bool scan_status;
- bool adv_status;
- uint8_t address[6];
- uint8_t address_type;
- size_t adv_report_count;
- bool device_found;
- FuriTimer* timer;
- } SeosHci;
- SeosHci* seos_hci_alloc(Seos* seos);
- void seos_hci_free(SeosHci* seos_hci);
- void seos_hci_start(SeosHci* seos_hci, BleMode mode, FlowMode flow_mode);
- void seos_hci_stop(SeosHci* seos_hci);
- size_t seos_hci_recv(void* context, BitBuffer* frame);
- void seos_hci_acldata_send(SeosHci* seos_hci, uint8_t flags, BitBuffer* tx);
- void seos_hci_init(void* context);
- void seos_hci_set_receive_callback(
- SeosHci* seos_hci,
- SeosHciReceiveCallback callback,
- void* context);
- void seos_hci_set_completed_packets_callback(
- SeosHci* seos_hci,
- SeosHciCompletedPacketsCallback callback,
- void* context);
- void seos_hci_set_central_connection_callback(
- SeosHci* seos_hci,
- SeosHciCentralConnectionCallback callback,
- void* context);
- void seos_hci_set_scan(SeosHci* seos_hci, bool enable);
- void seos_hci_enable_advertising(SeosHci* seos_hci, bool enable);
- void seos_hci_send_scan_params(SeosHci* seos_hci);
- void seos_hci_connect(SeosHci* seos_hci);
|