我想弄清楚为什么简单的RS232传输不起作用。如this图片所示,我正在运行一个调试器来查看要传输的数据值。问题是发送和接收的字节完全不同。我不知道这里有什么问题。如果有人需要更多信息,请让我知道。RS232传输包不匹配
下面是代码段:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace ShimmerAPI
{
class Transmission
{
const short multiplier = -1020; // 10000/-9.81
byte[] Combine (byte[] a0, byte[] a1, byte[] a2)
{
byte[] ret = new byte[a0.Length + a1.Length + a2.Length];
Array.Copy(a0, 0, ret, 0, a0.Length);
Array.Copy(a1, 0, ret, a0.Length, a1.Length);
Array.Copy(a2, 0, ret, a0.Length + a1.Length, a2.Length);
return ret;
}
short Multiply (double x)
{
if (x > 25 || x < -25)
return 0;
else
return Convert.ToInt16(x * multiplier);
}
public void TransmitData (SerialPort port, ObjectCluster obj)
{
double[] data = obj.GetData().ToArray();
short X = Multiply(data[3]);
short Y = Multiply(data[5]);
short Z = Multiply(data[7]);
byte[] combBytes = Combine(BitConverter.GetBytes(Z), BitConverter.GetBytes(Y), BitConverter.GetBytes(X));
port.Write(combBytes, 0, 1);
}
}
}
多少字节你期望被传染? –
6个字节,如右侧所列。看起来输出的大小并不是我期待的。之前的截图是当数据包被分组为单词时。 – geft