我正在尝试从PBX解析一些输出数据,我找到了一些我无法弄清楚的东西。 在文档中它说明了以下
通话类型和功能的信息。 “状态信息3”的八个字符,以十六进制表示法表示以下ASCII值。
1. Character Bit7 Incoming call Bit6 Outgoing call Bit5 Internal call Bit4 CN call 2. Character Bit3 Transferred call (transferring party inside) Bit2 CN-transferred call (transferring party outside) Bit1 Bit0
任何想法如何解释这个?我当时没有原始数据可以匹配,但我仍需要弄明白。
答案 0 :(得分:2)
可能你会收到两个字符(十六进制数字:0-9,A-F)第一个数字表示最高有效4位的十六进制值,下一个数字表示最低有效4位。
实施例: 您可能会收到类似字符串“7C”的内容,如位图的十六进制表示:01111100。
答案 1 :(得分:0)
“状态信息3”的八个字符,后面的ASCII值以十六进制表示。
如果认为这意味着以下内容。
所以它只是一个带有位标志的字节 - 或者更确切地说是一个包含八个这样的字节的数组。
Bit
7 incoming
6 outgoing
5 internal
4 CN
3 transfered
2 CN transfered
1 unused?
0 unused?
您可以将其映射到枚举。
[BitFlags]
public enum CallInformation : Byte
{
Incoming = 128,
Outgoing = 64,
Internal = 32,
CN = 16
Transfered = 8,
CNTransfered = 4,
Undefined = 0
}
答案 2 :(得分:0)
没有数据非常困难。我猜你会得到两个字节(两个ASCII字符),并且需要在位级别选择它们。
例如,如果第一个字符是'A',则需要查找其字符代码(65或十六进制0x41),然后查看这些位。当然,无论十进制或十六进制,这些位都是相同的,但它更容易用十六进制手动完成。 0x41是第5位和第1位设置,因此这将是一个“内部调用”。第1位似乎没有记录。
我不确定为什么它看起来好像需要两个字符;它只记录了8位。