首页 > 解决方案 > BLE CSC 服务并不总是被检测到 - 正确设置?

问题描述

我正在通过蓝牙 LE 连接到自行车电脑的 Arduino 上构建自行车踏频传感器。它可以被 Bryton 自行车电脑可靠地检测到,但不能被 Wahoo 的 iOS 智能手机应用程序检测到。这向我表明,可能服务设置不正确。下面的代码中有什么突出的地方,或者有一个很好的例子吗?

#define     CSC_FEATURES                            CSC_FEATURE_CRANK_REV_DATA

unsigned char   bleBuffer[1 + 2 + 2];
unsigned char   slBuffer[1];
unsigned char   fBuffer[2];

BLEService      CSCService("1816");
BLECharacteristic CSCMeasurement("2A5B", BLERead | BLENotify, sizeof(bleBuffer));
BLECharacteristic CSCFeature("2A5C", BLERead, sizeof(fBuffer));
BLECharacteristic CSCSensorLocation("2A5D", BLERead, sizeof(slBuffer));

byte            flags = CSC_MEASUREMENT_CRANK_REV_PRESENT;
unsigned short  features = CSC_FEATURE_CRANK_REV_DATA;
byte            sensorlocation = SENSOR_LOCATION_RIGHT_CRANK;


BLE.setDeviceName(BLE_DEVICE_NAME);
BLE.setLocalName(BLE_LOCAL_NAME);
BLE.setAdvertisedService(CSCService);
CSCService.addCharacteristic(CSCFeature);
CSCService.addCharacteristic(CSCMeasurement);
CSCService.addCharacteristic(CSCSensorLocation);
BLE.addService(CSCService);
update(millis()); /* initialise buffers */
BLE.advertise();

标签: arduinobluetooth-lowenergygatt

解决方案


推荐阅读