0

我在使用 Monodroid 通过蓝牙向设备发送命令时遇到了一个有趣的问题。

我正在使用这个 Monodroid 方法:

BluetoothSocket.OutputStream.Write(byte[] buffer, int offset, int count);

我需要发送以下 8 字节帧:

  • 0x51
  • 0x26
  • 0x0
  • 0x0
  • 0x0
  • 0x0
  • 0xFFFFFFA3
  • 0x0

问题是 0xFFFFFFA3 是有符号字节 (-93),所以这意味着我需要使用 C#.NET 的 sbyte 而不是 byte 来创建要传递给 Write 方法的数组。

但是,我不能将 sbyte[] 数组传递给 Write 方法,我只能传递一个 byte[] 数组。C#.NET 不允许我将 0xFFFFFFA3 放在一个字节中,因为它已签名。

我该怎么做才能通过套接字传递命令?谢谢你。

4

1 回答 1

1

0xFFFFFFA3 是 Int32 的大小,这可能是编译器抱怨的原因。您应该能够只指定一个字节值 0xA3。

于 2012-10-18T14:48:57.313 回答