将串行端口返回的字节转换为毫秒

时间:2010-09-13 19:02:10

标签: c#

嘿伙计们,这是我的问题。使用iPort ...通过串口发送的命令之一是getplaystatus,返回4个字节来描述歌曲的长度(以毫秒为单位)。一个例子是它的歌曲4:39 ...返回的长度是一个数组

byte [] b = {0x00,0x04,0x67,0x83};

所以4:39(以毫秒为单位)是279000。

不知何故,这些字节需要等于279000 ......而且我的想法已经用完了。非常感激任何的帮助。谢谢!

〜玛蒂

2 个答案:

答案 0 :(得分:1)

关闭,实际上是288643.实际上是4:49,不是吗?

您使用BitConverter类来转换它们,但您可能需要先将它们反转:

if (BitConverter.IsLittleEndian) {
  Array.Reverse(b);
}
int ms = BitConverter.ToInt32(b, 0);

答案 1 :(得分:0)

(((((b[0] * 10) + b[1]) * 60) + (b[2] * 10) + b[3])) * 1000