与 hc-06 的颤振蓝牙串口通信
flutter bluetooth serial communication with hc-06
我已经多次询问过这个问题,但我似乎没有得到正确的答案,或者我可能没有提供关于我正在发生的事情的明确解释,所以我会尽可能清楚地说明这一点时间。
我正在构建一个 flutter 应用程序以通过蓝牙与微控制器通信。
我想将数字从微控制器发送到我的 flutter 应用程序。我正在使用 flutter-bluetooth-serial 包来设置蓝牙通信。到目前为止,我已经完成的是与连接到微控制器的 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 替换为您的值。
我已经多次询问过这个问题,但我似乎没有得到正确的答案,或者我可能没有提供关于我正在发生的事情的明确解释,所以我会尽可能清楚地说明这一点时间。 我正在构建一个 flutter 应用程序以通过蓝牙与微控制器通信。 我想将数字从微控制器发送到我的 flutter 应用程序。我正在使用 flutter-bluetooth-serial 包来设置蓝牙通信。到目前为止,我已经完成的是与连接到微控制器的 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 替换为您的值。