gpt4 book ai didi

flutter - flutter中的数据转换

转载 作者:行者123 更新时间:2023-12-05 04:28:36 24 4
gpt4 key购买 nike

我目前正在研究 BLE 和 Flutter,试图了解它们的工作原理。我有一个通过 ble 发送温度值的 esp32 mcu。虽然在 esp 代码中似乎没有任何浮点温度值的转换,但当它在 flutter 应用程序上接收时,它是 uint8(或可能是 uint32)。我将如何在 Flutter 中将其转换回 double?一个例子是 23.9 转换为 1103049523。以下是一些我认为相关的代码片段。

ESP32代码

 float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();


// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}



Serial.print(F("Humidity: "));
Serial.println(h);
Serial.print(F("Temperature: "));
Serial.println(t);



pCharacteristic->setValue(t);

pCharacteristic->notify();
}

来自 flutter 代码:

 final stream = bleManager.subscribeToCharacteristic(characteristic!);
await for (final data in stream) {
var dataInt = ByteData.view(Uint8List.fromList(data).buffer)
.getUint32(0, Endian.little);
print("GOT DATA: $dataInt");
setState(() {
lastRead = dataInt;
temp = lastRead.toDouble();
});
}

如您所见,我尝试将“lastRead”转换为 double ,但没有成功,因为我怀疑其中还有更多内容。

最佳答案

您似乎通过调用 getUint32() 将您的数据明确解释为 32 位整数。试试怎么样getFloat32()相反?

关于flutter - flutter中的数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72570639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com