我正在使用BLE 4.2(ESP32),该设备将IMU(加速度,陀螺仪,磁力)数据发送到我的移动应用程序(Android)。不幸的是,我只能在一个数据包中发送20个字节。
这是我的代码:(我正在连接从加速度计读取的浮点原始数据(ax,ay,... my,mz ...等)。
char myConcatenation[20];
char myStr[","];
.
.
.
sprintf(myConcatenation,"%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f%s%3.2f", ax, myStr, ay, myStr, az, myStr,gx,myStr, gy, myStr, gz, myStr, mx, myStr, my, myStr, mz, myStr, yaw, myStr, pitch, myStr, roll);
.
.
.
pCharacteristic->setValue(myConcatenation);
pCharacteristic->notify(); // Send the value to the app!
您知道如何构造代码,以便向应用程序通知20字节长的新数据吗?例如,每个传感器读数构成的每个数据包:
1. (ax, ay, az)
2. (gx, gy, gz)
3. (mx, my, mz)
4. (yaw, pitch, roll)