使用蓝牙从PC或手机发送命令的区别

本文关键字:命令 区别 手机 PC | 更新日期: 2023-09-27 17:56:02

我正在使用Xamarin在C#中开发一个跨平台应用程序。在我的应用程序中,我正在使用蓝牙在应用程序和第三方设备之间进行通信。

到目前为止,当从所有平台发送短字节命令时,一切都像魅力一样工作。但是,当从手机(iOS和Android)发送更长的字节命令(35字节)时,就好像设备没有收到任何命令或获取了其中一些命令并且无法理解它一样。

我发送命令如下:

OutPutStream.Write(MyData.ToArray(), 0, NumberOfytes);

但是,当我在PC上使用具有相同字节的完全相同的代码行时,一切都很好,并且我得到了我想要的响应。

我还尝试通过以下方式捕获 Android 开发人员网站上指定的异常:

try
{
    OutPutStream.Write(MyData.ToArray(), 0, NumberOfytes);
}
catch (Java.Lang.IndexOutOfBoundsException e)
{
    throw;
}
catch (IOException e)
{
    throw;
}

当我输入上述行时,IOException总是被调用(即使使用有效的命令),e为空。奇怪的是,字节实际上是为所有命令(长命令除外)发送和接收的我确信所有其他命令都已正确接收,因为收到的响应是唯一的并且与我发送的命令匹配。

如果有人能告诉我我做错了什么(如果有的话)?或者,如果我应该在iOS和Android上通过蓝牙发送字节的方式有所不同?

干杯!

使用蓝牙从PC或手机发送命令的区别

以防万一其他人遇到我遇到的同样问题,这是我"解决"它的方式。我最终决定尝试使用新的蓝牙设备,它奏效了。

我仍然对它在PC上的工作方式感到好奇,但可以假设它通过蓝牙发送字节的速度可能更慢,或者具有更好的错误控制/ACK算法?

希望这在某种程度上有所帮助。干杯