ASCII-Werte in Hexadezimalschreibweise
Frage
Ich versuche, einige Ausgangsdaten aus und PBX zu analysieren, und ich habe etwas gefunden, das ich herausfinden kann nicht wirklich. In der Dokumentation sagt es folgende
Informationen für Anruftyp und Funktion. Acht Zeichen für ‚Statusinformationen 3‘ mit folgenden ASCII-Werte in Hexadezimalschreibweise.
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
Alle Ideen, wie diese zu interpretieren? Ich habe keine Rohdaten zur Zeit gegen anzupassen, aber ich brauche noch, es herauszufinden.
Lösung
Acht Zeichen für ‚Statusinformationen 3‘ mit folgenden ASCII-Werte in Hexadezimalschreibweise.
Wenn Sie denken, dies bedeutet folgendes.
- Sie werden 8 Byte erhalten - ein Byte pro Zeile, ich denke .
- Es ist nur der falsche Begriff. Sie bedeuten zwei hexadezimalen Ziffern pro Byte, sondern nennen sie Zeichen.
So ist es nur ein Byte mit Bitflags -. Oder genauer gesagt ein Array von acht solchen Bytes
Bit
7 incoming
6 outgoing
5 internal
4 CN
3 transfered
2 CN transfered
1 unused?
0 unused?
Sie könnte dies zu einem Enum-Karte.
[BitFlags]
public enum CallInformation : Byte
{
Incoming = 128,
Outgoing = 64,
Internal = 32,
CN = 16
Transfered = 8,
CNTransfered = 4,
Undefined = 0
}
Andere Tipps
Wahrscheinlich werden Sie zwei Zeichen (Hex-Ziffern: 0-9, A-F) erhalten erste Ziffer steht für den Hex-Wert für die höchstwertigen 4 Bits, nächste Stelle für die am wenigsten signifikanten 4 Bits
.Beispiel: Sie werden wahrscheinlich so etwas wie die Zeichenfolge „7C“ als Hex-Darstellung der Bitmap erhalten. 01111100
Sehr hart, ohne Daten. Ich würde vermuten, dass Sie zwei Bytes (zwei ASCII-Zeichen) erhalten werden, und müssen sie auf Bit-Ebene auseinander nehmen.
Zum Beispiel, wenn das erste Zeichen ‚A‘ ist, müssen Sie seinen Zeichencode zu sehen (65, oder hex 0x41) und dann an dem Bits aussehen. Natürlich sind die Bits gleich, unabhängig von dezimal oder hex, aber seine easer von Hand in hex zu tun. 0x41 ist, Bit 5 und Bit 1 gesetzt ist, so dass ein „interner Anruf“ sein würde. Bit 1 scheint nicht dokumentiert.
Ich bin mir nicht sicher, warum es aussieht, als ob die zwei Zeichen erfordern würde; es ist nur acht Bits dokumentiert.