与hc-06颤振蓝牙串行通信



我已经多次问过这个问题,但我似乎没有得到正确的答案,或者也许我没有提供清楚的解释,所以我将尽量清楚,我可以这一次。我正在建立一个颤振应用程序,通过蓝牙与微控制器通信。我想从微控制器发送数字到我的扑动应用程序。我正在使用扑动蓝牙串行包来设置蓝牙通信。到目前为止,我已经完成的是与连接到微控制器的HC-06蓝牙模块成功创建连接,并开始侦听传入数据。

_getBTConnection(){
BluetoothConnection.toAddress(widget.server.address).then((_connection){
connection = _connection;
isConnecting = false;
isDisconnecting = false;
setState(() {});
connection.input?.listen(_onDataReceived).onDone(() {
if(isDisconnecting){
print("Disconnecting locally");

}else{
print("Disconnecting remotely");
}
if(mounted){
setState(() {});
}
Navigator.of(context).pop();
});
}).catchError((error){
Navigator.of(context).pop();
});
}

一旦应用程序接收到任何数据,我在编译器上打印它:


void _onDataReceived( data  ){
if(data != null ){
print(data);

然而,每次我打印接收到的数据时,它附带了2个其他元素,如下所示:

I/flutter (2705): [64]

I/flutter (2705): [175,6]

我在这里发送的数字只是6,但这个64,175总是打印出来,这里是另一个例子,我发送了12:

I/flutter (2705): [64]

I/flutter (2705): [175,12]

我面临的第二个问题是,我想发送浮点数而不是整数。下面是将要发生的事情:

在下面的例子中,我发送了2.3,收到的结果如下:

I/flutter (2705): [64]

I/flutter (2705): [171,2]

这里的不同之处在于,当我发送整数时,我发送的值之前的数字是175,但对于浮点数它是171,我没有得到完整的数字是2.3,但我只得到2

我能改变我的代码,使它能够接收浮点数,这64和171/175意味着什么?

请有人帮帮我,我真的很纠结于这些问题,而之前建议的解决方案都不适合我

您必须以ASCII码接收它。试试这个String.fromCharCode(i)-用你的值替换I

最新更新