0

我正在研究 ut ubox vs 2000 心电图机。这台 ecg 机器在下面给出的 LAN(局域网)上以字节数组形式传输其数据。

我怎样才能从这个数组中得到心电图波值。

我的代码如下。但我无法获得实际值。

byte[] tst = {0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xFF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xFF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xFF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xFF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xFF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xFF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xFF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xEF, 0xFD, 0xFF, 0xCF, 0xFC, 0xFF, 0xDF, 0xFE, 0xFF, 0xFF, 0xFD, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xEF, 0xFE, 0xFF, 0xFF, 0xFE };

string strresult = "";
for (int j = 0; j < tst.Length-1; j+=2)
{
    strHex = String.Format("{0:x2}", tst[j]);
    strHex += String.Format("{0:x2}", tst[j + 1]);
    strresult = strresult + "," + short.Parse(strHex, System.Globalization.NumberStyles.HexNumber);
}

Console.WriteLine(strresult);
4

1 回答 1

0

那么您想将字节数组(8 位)转换为字数组(16 位)吗?

尝试BitConverter.ToUInt()方法,它从一个数组中获取两个字节并返回一个 int16 aka short

for (int j = 0; j < tst.Length-1; j+=2){
    strresult = strresult + "," + BitConverter.ToUInt16( tst, j ).toString();
}

选择首选方法(toUInt16 或 toInt16 取决于有符号或无符号值,并注意小端或大端,您可能需要在某些时候切换字节顺序。

(代码未经语法测试)

于 2012-06-28T11:27:10.327 回答