static void create_services() { char *service_path; uint8_t level = 0; service_path = register_service(IAS_UUID); if (!service_path) return; /* Add Alert Level Characteristic to Immediate Alert Service */ if (!register_characteristic(ALERT_LEVEL_CHR_UUID, &level, sizeof(level), ias_alert_level_props, READ_WRITE_DESCRIPTOR_UUID, service_path)) { printf("Couldn't register Alert Level characteristic (IAS)\n"); g_dbus_unregister_interface(connection, service_path, GATT_SERVICE_IFACE); g_free(service_path); return; } services = g_slist_prepend(services, service_path); printf("Registered service: %s\n", service_path); }
void Service::set_handle(uint16_t newHandle) { assert(this->handle == 0); this->handle = newHandle; for(auto c: characteristics) register_characteristic(c); esp_ble_gatts_start_service(handle); }