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)simpleble_os_t simpleble_get_operating_system(void)const char* simpleble_get_version(void)Configuration
Configuration
All configuration values must be set before calling adapter functions such as simpleble_adapter_get_count or simpleble_adapter_get_handle.
Configuration Functions
void simpleble_config_reset_all(void)void simpleble_config_simplebluez_reset(void)bool simpleble_config_simplebluez_get_use_legacy_bluez_backend(void)void simpleble_config_simplebluez_set_use_legacy_bluez_backend(bool enabled)bool simpleble_config_simplebluez_get_use_system_bus(void)void simpleble_config_simplebluez_set_use_system_bus(bool enabled)int64_t simpleble_config_simplebluez_get_connection_timeout_ms(void)void simpleble_config_simplebluez_set_connection_timeout_ms(int64_t timeout_ms)int64_t simpleble_config_simplebluez_get_disconnection_timeout_ms(void)void simpleble_config_simplebluez_set_disconnection_timeout_ms(int64_t timeout_ms)void simpleble_config_winrt_reset(void)bool simpleble_config_winrt_get_experimental_use_own_mta_apartment(void)void simpleble_config_winrt_set_experimental_use_own_mta_apartment(bool enabled)bool simpleble_config_winrt_get_experimental_reinitialize_winrt_apartment_on_main_thread(void)void simpleble_config_winrt_set_experimental_reinitialize_winrt_apartment_on_main_thread(bool enabled)bool simpleble_config_winrt_get_use_deferred_disconnect(void)void simpleble_config_winrt_set_use_deferred_disconnect(bool enabled)void simpleble_config_corebluetooth_reset(void)void simpleble_config_android_reset(void)simpleble_config_android_connection_priority_t simpleble_config_android_get_connection_priority(void)void simpleble_config_android_set_connection_priority(simpleble_config_android_connection_priority_t priority)void simpleble_config_set_android_connection_priority(int priority)void simpleble_config_dongl_reset(void)bool simpleble_config_dongl_get_use_dongl_backend(void)void simpleble_config_dongl_set_use_dongl_backend(bool enabled)bool simpleble_config_dongl_get_auto_update(void)void simpleble_config_dongl_set_auto_update(bool enabled)bool simpleble_config_dongl_get_force_update(void)void simpleble_config_dongl_set_force_update(bool enabled)Logging
Logging
Logging Functions
void simpleble_logging_set_level(simpleble_log_level_t level)simpleble_log_level_t simpleble_logging_get_level(void)void simpleble_logging_set_callback(simpleble_log_callback_t callback)bool simpleble_logging_has_callback(void)void simpleble_logging_log_default_stdout(void)void simpleble_logging_log_default_file(void)void simpleble_logging_log_default_file_path(const char* path)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)