SimpleBLE

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)

On this page