我一直致力于一个项目,在这个项目中,Android通过蓝牙向PIC发送一个号码,PIC通过串口向我的笔记本发送相同的号码。
目前,我在此项目中运行了两个不同的应用程序。
要通过蓝牙发送号码,我使用以下代码:
byte[] bytes = new byte[1];
bytes[0] = byte.Parse(<Number entered by user, in string format>);
await _socket.OutputStream.WriteAsync(bytes, 0, bytes.Length);
PIC接收该字节,并将相同的数据发送到串行端口。
Received: 75
而不是&#39; 123&#39;。
之后,我尝试更改上面的代码,因为我认为它可能与编码有关。所以现在我的代码是:
byte[] bytes = Encoding.ASCII.GetBytes(<Number entered by user, in string format>);
await _socket.OutputStream.WriteAsync(bytes, 0, bytes.Length);
现在,我的应用程序打印出来了:
Received: 1
Received: 2
Received: 3
这几乎是我想要的。我需要处理用户在我的Android应用程序中输入的完全相同的整数,因此它应该打印:
Received: 123
我的字节数组可能是这样的:
bytes[0] = b'00110001' ("1" according ASCII Table)
bytes[1] = b'00110010' ("2" according ASCII Table)
bytes[2] = b'00110011' ("3" according ASCII Table)
当我需要的只是一个字节时:
byte = b'01111011' (123 in binary)
关于如何正确发送字符串并将其读取为只有一个字节的任何想法?
(考虑到我的字符串将始终是一个数字,从0到255)
提前致谢。