diff options
Diffstat (limited to 'firmware/targets/f7/furi_hal/furi_hal_bt_serial.c')
-rw-r--r-- | firmware/targets/f7/furi_hal/furi_hal_bt_serial.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/firmware/targets/f7/furi_hal/furi_hal_bt_serial.c b/firmware/targets/f7/furi_hal/furi_hal_bt_serial.c new file mode 100644 index 00000000..9bdad5bf --- /dev/null +++ b/firmware/targets/f7/furi_hal/furi_hal_bt_serial.c @@ -0,0 +1,54 @@ +#include "furi_hal_bt_serial.h" +#include "dev_info_service.h" +#include "battery_service.h" +#include "serial_service.h" + +#include <furi.h> + +void furi_hal_bt_serial_start() { + // Start device info + if(!dev_info_svc_is_started()) { + dev_info_svc_start(); + } + // Start battery service + if(!battery_svc_is_started()) { + battery_svc_start(); + } + // Start Serial service + if(!serial_svc_is_started()) { + serial_svc_start(); + } +} + +void furi_hal_bt_serial_set_event_callback( + uint16_t buff_size, + FuriHalBtSerialCallback callback, + void* context) { + serial_svc_set_callbacks(buff_size, callback, context); +} + +void furi_hal_bt_serial_notify_buffer_is_empty() { + serial_svc_notify_buffer_is_empty(); +} + +bool furi_hal_bt_serial_tx(uint8_t* data, uint16_t size) { + if(size > FURI_HAL_BT_SERIAL_PACKET_SIZE_MAX) { + return false; + } + return serial_svc_update_tx(data, size); +} + +void furi_hal_bt_serial_stop() { + // Stop all services + if(dev_info_svc_is_started()) { + dev_info_svc_stop(); + } + // Start battery service + if(battery_svc_is_started()) { + battery_svc_stop(); + } + // Start Serial service + if(serial_svc_is_started()) { + serial_svc_stop(); + } +} |