ble_serial.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include <furi_ble/profile_interface.h>
  3. #include <services/serial_service.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. /**
  8. * Optional arguments to pass along with profile template as
  9. * FuriHalBleProfileParams for tuning profile behavior
  10. **/
  11. typedef struct {
  12. const char* device_name_prefix; /**< Prefix for device name. Length must be less than 8 */
  13. uint16_t mac_xor; /**< XOR mask for device address, for uniqueness */
  14. } BleProfileSerialParams;
  15. #define BLE_PROFILE_SERIAL_PACKET_SIZE_MAX BLE_SVC_SERIAL_DATA_LEN_MAX
  16. /** Serial service callback type */
  17. typedef SerialServiceEventCallback FuriHalBtSerialCallback;
  18. /** Serial profile descriptor */
  19. extern const FuriHalBleProfileTemplate* ble_profile_serial;
  20. /** Send data through BLE
  21. *
  22. * @param profile Profile instance
  23. * @param data data buffer
  24. * @param size data buffer size
  25. *
  26. * @return true on success
  27. */
  28. bool ble_profile_serial_tx(FuriHalBleProfileBase* profile, uint8_t* data, uint16_t size);
  29. /** Set Serial service events callback
  30. *
  31. * @param profile Profile instance
  32. * @param buffer_size Applicaition buffer size
  33. * @param calback FuriHalBtSerialCallback instance
  34. * @param context pointer to context
  35. */
  36. void ble_profile_serial_set_event_callback(
  37. FuriHalBleProfileBase* profile,
  38. uint16_t buff_size,
  39. FuriHalBtSerialCallback callback,
  40. void* context);
  41. #ifdef __cplusplus
  42. }
  43. #endif