void btEvent(const int event, const char *bt_addr, const char *event_data) { Q_UNUSED(bt_addr) QString event_name = btEventName(event); qDebug() << "XXXX bluetooth event:" << event_name; if (event_data != NULL) { QString event_data_str = QString(*event_data); qDebug() << "XXXX BT event_data=" << event_data_str; } else { qDebug() << "XXXX BT event_data=NULL"; } if (event == BT_EVT_LE_DEVICE_CONNECTED) { _handler->emitSignalInfoMessage("Device has connected"); DataContainer *dc = DataContainer::getInstance(); dc->setDeviceConnected(true); _handler->emitSignalLinkEstablished(); return; } if (event == BT_EVT_LE_DEVICE_DISCONNECTED) { _handler->emitSignalInfoMessage("Device has disconnected"); device_information_connected = false; DataContainer *dc = DataContainer::getInstance(); dc->setDeviceConnected(false); dc->setDeviceInformationServiceInstance(0); _handler->emitSignalLostLink(); return; } }
void gatt_service_disconnected(const char *bdaddr, const char *service, int instance, int reason, void *userData) { Q_UNUSED(userData) Q_UNUSED(instance) Q_UNUSED(reason) QString bdaddr_str = QString(bdaddr); QString service_str = QString(service); qDebug() << QString("XXXX gatt_service_disconnected: bdaddr:%1 : %2 - %3").arg(bdaddr_str).arg(service_str).arg(parse_service_uuid(service)); DataContainer *dc = DataContainer::getInstance(); if (instance == dc->getDeviceInformationServiceInstance()) { qDebug() << "XXXX reacting to device information service disconnection"; device_information_connected = false; dc->setDeviceInformationServiceInstance(0); } }
void gatt_service_connected(const char *bdaddr, const char *service, int instance, int err, uint16_t connInt, uint16_t latency, uint16_t superTimeout, void *userData) { Q_UNUSED(superTimeout) Q_UNUSED(userData) Q_UNUSED(latency) Q_UNUSED(connInt) Q_UNUSED(err) qDebug() << "YYYY gatt_service_connected:" << service; if (strcmp(service, DEVICE_INFORMATION_SERVICE_UUID) == 0) { // we connected to the device information service so... device_information_connected = true; bt_remote_device_t *bt_device = bt_rdev_get_device(bdaddr); DataContainer *dc = DataContainer::getInstance(); dc->setDeviceInformationServiceInstance(instance); qDebug() << "XXXX stored service instance value:" << instance; establishHandles(instance); readInfo(); return; } }