API Reference
Reference for the SimpleCBLE C API.
The SimpleCBLE API provides a C-compatible interface for SimpleBLE. It relies on handles (simpleble_adapter_t, simpleble_peripheral_t) to manage objects.
General
Memory Management
General Functions
void simpleble_free(void* handle)Adapter
simpleble_adapter_t
simpleble_adapter_t
Handle representing a physical Bluetooth adapter. You must release this handle using simpleble_adapter_release_handle when done.
Lifecycle and Info
size_t simpleble_adapter_get_count(void)simpleble_adapter_t simpleble_adapter_get_handle(size_t index)void simpleble_adapter_release_handle(simpleble_adapter_t handle)bool simpleble_adapter_is_bluetooth_enabled(void)char* simpleble_adapter_identifier(simpleble_adapter_t handle)char* simpleble_adapter_address(simpleble_adapter_t handle)Scanning
simpleble_err_t simpleble_adapter_scan_start(simpleble_adapter_t handle)simpleble_err_t simpleble_adapter_scan_stop(simpleble_adapter_t handle)simpleble_err_t simpleble_adapter_scan_for(simpleble_adapter_t handle, int timeout_ms)simpleble_err_t simpleble_adapter_scan_is_active(simpleble_adapter_t handle, bool* active)size_t simpleble_adapter_scan_get_results_count(simpleble_adapter_t handle)simpleble_peripheral_t simpleble_adapter_scan_get_results_handle(simpleble_adapter_t handle, size_t index)Callbacks
simpleble_err_t simpleble_adapter_set_callback_on_scan_start(simpleble_adapter_t handle, void (*callback)(simpleble_adapter_t adapter, void* userdata), void* userdata)simpleble_err_t simpleble_adapter_set_callback_on_scan_stop(simpleble_adapter_t handle, void (*callback)(simpleble_adapter_t adapter, void* userdata), void* userdata)simpleble_err_t simpleble_adapter_set_callback_on_scan_found(simpleble_adapter_t handle, void (*callback)(simpleble_adapter_t adapter, simpleble_peripheral_t peripheral, void* userdata), void* userdata)simpleble_err_t simpleble_adapter_set_callback_on_scan_updated(simpleble_adapter_t handle, void (*callback)(simpleble_adapter_t adapter, simpleble_peripheral_t peripheral, void* userdata), void* userdata)Peripheral
simpleble_peripheral_t
simpleble_peripheral_t
Handle representing a remote Bluetooth device. You must release this handle using simpleble_peripheral_release_handle when done.
Lifecycle and Info
void simpleble_peripheral_release_handle(simpleble_peripheral_t handle)char* simpleble_peripheral_identifier(simpleble_peripheral_t handle)char* simpleble_peripheral_address(simpleble_peripheral_t handle)int16_t simpleble_peripheral_rssi(simpleble_peripheral_t handle)Connection
simpleble_err_t simpleble_peripheral_connect(simpleble_peripheral_t handle)simpleble_err_t simpleble_peripheral_disconnect(simpleble_peripheral_t handle)simpleble_err_t simpleble_peripheral_is_connected(simpleble_peripheral_t handle, bool* connected)simpleble_err_t simpleble_peripheral_is_connectable(simpleble_peripheral_t handle, bool* connectable)Services and Data
size_t simpleble_peripheral_services_count(simpleble_peripheral_t handle)simpleble_err_t simpleble_peripheral_services_get(simpleble_peripheral_t handle, size_t index, simpleble_service_t* service)size_t simpleble_peripheral_manufacturer_data_count(simpleble_peripheral_t handle)simpleble_err_t simpleble_peripheral_manufacturer_data_get(simpleble_peripheral_t handle, size_t index, simpleble_manufacturer_data_t* manufacturer_data)GATT Operations
simpleble_err_t simpleble_peripheral_read(simpleble_peripheral_t handle, char* service, char* characteristic, uint8_t** data, size_t* data_length)simpleble_err_t simpleble_peripheral_write_request(simpleble_peripheral_t handle, char* service, char* characteristic, uint8_t* data, size_t data_length)simpleble_err_t simpleble_peripheral_write_command(simpleble_peripheral_t handle, char* service, char* characteristic, uint8_t* data, size_t data_length)simpleble_err_t simpleble_peripheral_notify(simpleble_peripheral_t handle, char* service, char* characteristic, void (*callback)(simpleble_uuid_t service, simpleble_uuid_t characteristic, uint8_t* data, size_t data_length, void* userdata), void* userdata)simpleble_err_t simpleble_peripheral_indicate(simpleble_peripheral_t handle, char* service, char* characteristic, void (*callback)(simpleble_uuid_t service, simpleble_uuid_t characteristic, uint8_t* data, size_t data_length, void* userdata), void* userdata)simpleble_err_t simpleble_peripheral_unsubscribe(simpleble_peripheral_t handle, char* service, char* characteristic)