BLE gattServer.write()重载函数



我在尝试更新在运行mbedOS v5.8.6的MCU上运行的自定义BLE服务中的特性值时遇到问题。我正试图用传感器的值来更新此特性的值。请参阅以下功能:

void onDataReadCallback(const GattReadCallbackParams *eventDataP) {
if (eventDataP->handle == dhtServicePtr->dataStream.getValueHandle()) {
const uint8_t data = sensorData;
BLE::Instance().gattServer().write(eventDataP->handle, &data, sizeof(data), false);   
}
}

我已经尝试过显式地声明正确的变量类型(根据BLE gattServer参考文档(,但没有成功。

我收到的确切错误是:

Error: No instance of overloaded function "GattServer::write" matches the argument list in "main.cpp", Line: 135, Col: 39

我相信,根据造林文件,我这样做是正确的。所以,我的问题是,我到底错在哪里?我完全有可能只是犯了一个愚蠢的错误!

谢谢,Adam

您正在尝试将指针发送到常量,尽管函数签名需要普通指针。在下面的例子中,当值为const时,编译器将通过错误。

#include <iostream>
void test(int *ptr)
{
printf("%d",*ptr);
}

int main ()
{
//const int a = 10; //Gives error
int a = 10;       //This works fine.
test(&a);
return 0;
}

最新更新