0

および PBX からの出力データを解析しようとしていますが、実際には理解できないものを見つけました。ドキュメントでは、次のように述べています

通話の種類と機能に関する情報。「ステータス情報 3」の 8 文字で、16 進表記の ASCII 値が続きます。

1.キャラクター
Bit7 着信
Bit6 発信
Bit5 内部呼び出し
Bit4 CN コール
2.キャラクター
Bit3 転送されたコール (内部の転送側)
Bit2 CN 転送された呼 (外部の転送者)
ビット1
ビット 0

これを解釈する方法はありますか?その時点で照合する生データはありませんが、まだそれを把握する必要があります。

4

3 に答える 3

2

おそらく 2 文字 (16 進数: 0-9、AF) を受け取ることになるでしょう。最初の桁は最上位 4 ビットの 16 進値を表し、次の桁は最下位 4 ビットを表します。

例: ビットマップの 16 進表現として、文字列 "7C" のようなものを受け取る可能性があります: 01111100。

于 2009-04-07T14:24:03.727 に答える
0

「ステータス情報 3」の 8 文字で、16 進表記の ASCII 値が続きます。

これは次のことを意味すると考えます。

  1. あなたは8バイトを取得します-1行あたり1バイトだと思います。
  2. それは単に間違った用語です。1 バイトあたり 2 桁の 16 進数を意味しますが、文字と呼びます。

したがって、これは単なるビット フラグ付きのバイトです。より正確には、そのような 8 つのバイトの配列です。

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

データがないと非常に難しい。2 バイト (2 つの ASCII 文字) を取得し、ビット レベルでそれらを分離する必要があると思います。

たとえば、最初の文字が「A」の場合、その文字コード (65、または 16 進数の 0x41) を調べてから、ビットを調べる必要があります。もちろんビットは10進数でも16進数でも同じですが、16進数の方が手でやったほうが楽です。0x41 はビット 5 とビット 1 がセットされているため、「内部呼び出し」になります。ビット 1 は文書化されていないようです。

2 文字が必要なように見える理由がわかりません。文書化されているのは 8 ビットのみです。

于 2009-04-07T14:24:33.787 に答える