我正在使用Adafruit_BLE library和Adafruit_BluefruitLE_SPI object将模拟输出GATT特性分配给Adafruit Bluefruit LE SPI Friend。我想了解设置这些GATT标志的格式。在adafruit heartrate monitor sketch example中,在第123行中设置了“心率测量GATT”特性:
/* Add the Heart Rate Measurement characteristic */
/* Chars ID for Measurement should be 1 */
Serial.println(F("Adding the Heart Rate Measurement characteristic (UUID = 0x2A37): "));
success = ble.sendCommandWithIntReply( F("AT+GATTADDCHAR=UUID=0x2A37, PROPERTIES=0x10, MIN_LEN=2, MAX_LEN=3, VALUE=00-40"), &hrmMeasureCharId);
if (! success) {
error(F("Could not add HRM characteristic"));
}
和第115行中的GATT Heart Rate service:
/* Add the Heart Rate Service definition */
/* Service ID should be 1 */
Serial.println(F("Adding the Heart Rate Service definition (UUID = 0x180D): "));
success = ble.sendCommandWithIntReply( F("AT+GATTADDSERVICE=UUID=0x180D"), &hrmServiceId);
if (! success) {
error(F("Could not add HRM service"));
}
在GATTADDCHAR中寻址的标志(UUID,属性,Min_len,Max_len,值)如何与Heart Rate Measurement GATT characteristic中的字段相对应:名称,字段要求,格式,最小值,最大值,附加值信息?
(有关GATTADDCHAR命令的说明,请参见pdf文件的第75页here)
如果我想设置Analog Output GATT characteristic(或其他任何常规特征),那么我该如何准确地调用sendCommandWithIntReply(AT + GATTADDCHAR = ...)来避免出现错误?一些GATT特征具有可选字段,所以我想确切地知道我正在设置什么以及如何设置。
最后,我只想从缓冲区中读取16位字节并通过蓝牙发送它们。