0

我正在尝试解析来自 PBX 的一些输出数据,但我发现了一些我无法真正弄清楚的东西。在文档中它说以下

呼叫类型和功能的信息。“状态信息 3”的八个字符,后面是十六进制表示法的 ASCII 值。

1.性格
Bit7 来电
Bit6 呼出
Bit5 内部通话
Bit4 CN 调用
2.性格
Bit3 转接电话(转接方在里面)
Bit2 CN-转接电话(外线转接方)
位 1
位0

任何想法如何解释这个?我当时没有可以匹配的原始数据,但我仍然需要弄清楚。

4

3 回答 3

2

您可能会收到两个字符(十六进制数字:0-9,AF)第一个数字表示最高有效 4 位的十六进制值,下一个数字表示最低有效 4 位。

示例:您可能会收到类似字符串“7C”的内容作为位图的十六进制表示:01111100。

于 2009-04-07T14:24:03.727 回答
0

“状态信息 3”的八个字符,后面是十六进制表示法的 ASCII 值。

如果认为这意味着以下。

  1. 你会得到 8 个字节——我猜每行一个字节。
  2. 这只是错误的术语。它们表示每个字节有两个十六进制数字,但称它们为字符。

所以它只是一个带有位标志的字节——或者更准确地说是一个由八个这样的字节组成的数组。

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
}
于 2009-04-07T14:23:29.797 回答
0

没有数据很难。我猜你会得到两个字节(两个 ASCII 字符),并且需要在位级别将它们分开。

例如,如果第一个字符是“A”,则需要查找其字符代码(65 或十六进制 0x41),然后查看位。当然,无论十进制还是十六进制,这些位都是相同的,但是在十六进制中手动操作更容易。0x41 是第 5 位和第 1 位设置,所以这将是一个“内部调用”。第 1 位似乎没有记录。

我不确定为什么看起来好像需要两个字符;它只记录了八位。

于 2009-04-07T14:24:33.787 回答