后记
关于如何发现米家蓝牙设备地址和关于idf中的数据大小端问题做个总结:
如何发现米家设备:
https://github.com/rytilahti/python-miio
通过手机ble app 找名字LYWSD03MMC或者自己写一个工具
https://lywsd02mmc.bilaldurrani.com/类似的一些web端的ble工具
其他...就不列举了
大小端转换问题:
我这边写了一个小工具来实现
#include <stdint.h>
#include <stdio.h>
#include <string.h>
void hexStringToByteArray(const char *hexString, uint8_t *byteArray) {
size_t len = strlen(hexString);
for (size_t i = 0; i < len; i += 2) {
sscanf(hexString + i, "%2hhx", &byteArray[i / 2]);
}
}
void printByteArray(const uint8_t *byteArray) {
printf("BLE_UUID128_DECLARE(");
for (size_t i = 15; i < 16; i--) {
printf("0x%02x", byteArray[i]);
if (i > 0) {
printf(", ");
}
}
printf(")\n");
}
int main() {
const char *hexStrings[] = {
"ebe0ccb07a0a4b0c8a1a6ff2997da3a6",
"ebe0ccc17a0a4b0c8a1a6ff2997da3a6"
};
uint8_t byteArray[16]; // 32 hex digits = 16 bytes
for (size_t j = 0; j < sizeof(hexStrings) / sizeof(hexStrings[0]); j++) {
hexStringToByteArray(hexStrings[j], byteArray);
printf("Little-endian Byte array for %s: ", hexStrings[j]);
printByteArray(byteArray);
}
return 0;
}