ASCII到字节变为方形字符

时间:2014-04-02 08:18:21

标签: c++ usb ascii

我有一个USB设备。它是一个计步器/活动跟踪器。 我能够向设备发送字节,并且我还能够检索字节。 但由于某种原因,数字变成了那些方形字符而不是数字......实际上字母的字符很好。 有关如何将字节检索为数字的任何想法吗?

预期的格式如下: enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

方形字符实际上是二进制数据,可能是0x20之前的十六进制或高于0x7f。

前15个字节是二进制的,你需要使用类似下面的伪代码来解释它们:

if (isascii(byte)) {
  textToAppendToEditBox(byte);
} else {
  textToAppendToEditBox( someKindOfSprintF( "{%02x}");
}

有很多关于十六进制转储代码片段的googleable示例可以让它看起来很漂亮

答案 1 :(得分:0)

您展示的预期格式会发送二进制数据。您首先必须将收到的数据转换为内部信息,然后您可以将该信息传递给std::ostringstream以将其显示在gui中。

在读取二进制数据时,请务必遵守使用的字节顺序。