furi_hal_bt_serial.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #pragma once
  2. #include "serial_service.h"
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #define FURI_HAL_BT_SERIAL_PACKET_SIZE_MAX SERIAL_SVC_DATA_LEN_MAX
  7. typedef enum {
  8. FuriHalBtSerialRpcStatusNotActive,
  9. FuriHalBtSerialRpcStatusActive,
  10. } FuriHalBtSerialRpcStatus;
  11. /** Serial service callback type */
  12. typedef SerialServiceEventCallback FuriHalBtSerialCallback;
  13. /** Start Serial Profile
  14. */
  15. void furi_hal_bt_serial_start();
  16. /** Stop Serial Profile
  17. */
  18. void furi_hal_bt_serial_stop();
  19. /** Set Serial service events callback
  20. *
  21. * @param buffer_size Applicaition buffer size
  22. * @param calback FuriHalBtSerialCallback instance
  23. * @param context pointer to context
  24. */
  25. void furi_hal_bt_serial_set_event_callback(
  26. uint16_t buff_size,
  27. FuriHalBtSerialCallback callback,
  28. void* context);
  29. /** Set BLE RPC status
  30. *
  31. * @param status FuriHalBtSerialRpcStatus instance
  32. */
  33. void furi_hal_bt_serial_set_rpc_status(FuriHalBtSerialRpcStatus status);
  34. /** Notify that application buffer is empty
  35. */
  36. void furi_hal_bt_serial_notify_buffer_is_empty();
  37. /** Send data through BLE
  38. *
  39. * @param data data buffer
  40. * @param size data buffer size
  41. *
  42. * @return true on success
  43. */
  44. bool furi_hal_bt_serial_tx(uint8_t* data, uint16_t size);
  45. #ifdef __cplusplus
  46. }
  47. #endif