* ble: refactored bt gatt characteristics setup * ble: naming fixes, small optimizations * ble: expanded bitfields; fixed pvs warnings * ble: fixed pvs warnings for real * ble: using FlipperGattCharacteristicDataPropsFixed for char[] props * ble: removed flipper_gatt_characteristic_props_const_char * ble: gatt: naming changes * ble: gatt: fixed device_info service constant attrs sizes * ble: gatt: copy descriptors to char instances; reworked hid chars to be callback-based; moved max size getter to callback with NULL data; added comments * ble: gatt: removed hid_svc_report_data_callback * ble: hid svc: better double loop idx naming * ble: hid svc: simplified hid_svc_update_info * ble: gatt: removed magic values; fixed type for HidSvcGattCharacteristicInfo * ble: gatt: moved long uuids to separate files Co-authored-by: gornekich <n.gorbadey@gmail.com> Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <services/serial_service.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#define FURI_HAL_BT_SERIAL_PACKET_SIZE_MAX SERIAL_SVC_DATA_LEN_MAX
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    FuriHalBtSerialRpcStatusNotActive,
 | 
						|
    FuriHalBtSerialRpcStatusActive,
 | 
						|
} FuriHalBtSerialRpcStatus;
 | 
						|
 | 
						|
/** Serial service callback type */
 | 
						|
typedef SerialServiceEventCallback FuriHalBtSerialCallback;
 | 
						|
 | 
						|
/** Start Serial Profile
 | 
						|
 */
 | 
						|
void furi_hal_bt_serial_start();
 | 
						|
 | 
						|
/** Stop Serial Profile
 | 
						|
 */
 | 
						|
void furi_hal_bt_serial_stop();
 | 
						|
 | 
						|
/** Set Serial service events callback
 | 
						|
 *
 | 
						|
 * @param buffer_size   Applicaition buffer size
 | 
						|
 * @param calback       FuriHalBtSerialCallback instance
 | 
						|
 * @param context       pointer to context
 | 
						|
 */
 | 
						|
void furi_hal_bt_serial_set_event_callback(
 | 
						|
    uint16_t buff_size,
 | 
						|
    FuriHalBtSerialCallback callback,
 | 
						|
    void* context);
 | 
						|
 | 
						|
/** Set BLE RPC status
 | 
						|
 *
 | 
						|
 * @param status        FuriHalBtSerialRpcStatus instance
 | 
						|
 */
 | 
						|
void furi_hal_bt_serial_set_rpc_status(FuriHalBtSerialRpcStatus status);
 | 
						|
 | 
						|
/** Notify that application buffer is empty
 | 
						|
 */
 | 
						|
void furi_hal_bt_serial_notify_buffer_is_empty();
 | 
						|
 | 
						|
/** Send data through BLE
 | 
						|
 *
 | 
						|
 * @param data  data buffer
 | 
						|
 * @param size  data buffer size
 | 
						|
 *
 | 
						|
 * @return      true on success
 | 
						|
 */
 | 
						|
bool furi_hal_bt_serial_tx(uint8_t* data, uint16_t size);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |