Beyerdynamic Discussion System, String parsing
arnmohan
Posts: 7
Can anyone help to decode the string sent by the Beyerdynamic discussion system[MCS D-200].
51 delegate units are attached to the main unit including chairman's mic; (first COM port is iCNS[PC] and second COM port is AMX control system).
I can start and stop each delegate unit using the hex commands in this format - $06,$0A,$01,$00,$01,$00,$01
But I couldn't show on the touchpanel that which mic is being pressed. It has become too difficult to decode the string. The stings sent by the MCS D200 has a random nature(please see attached). It will be really really helpful if anyone can tell something.
51 delegate units are attached to the main unit including chairman's mic; (first COM port is iCNS[PC] and second COM port is AMX control system).
I can start and stop each delegate unit using the hex commands in this format - $06,$0A,$01,$00,$01,$00,$01
But I couldn't show on the touchpanel that which mic is being pressed. It has become too difficult to decode the string. The stings sent by the MCS D200 has a random nature(please see attached). It will be really really helpful if anyone can tell something.
0
Comments
The strings that are listed in the protocol you attached are not random in nature. Here is what the format looks like to me:
1) All strings are 7 bytes long.
2) Bytes 1 and 2 are always $06 and $0A.
3) Byte 3 is the mic address.
4) Byte 4 is always $00.
5) Byte 5 is the On/Off state ($01=On, $02=Off)
6) Bytes 6 and 7 are always $00 and $01.
HTH
The .txt file I've attached is describing protocol to activate/deactivate mic stations.
Wht I'm asking is abt the reply from beyerdynamic main unit when a mic was turned on(manually or via RS 232). That string is not in a common format, then how can I determine which exact mic has been just turned on?
First byte always $06
second byte always $0A
3rd and 4th bytes are the LOGID of the mic.
To figure byte 3 take the LOGID of the mic and Binary AND with $FF
To figure the 4th byte take the LOGID of the mic and / $100
The 5th byte is the on/off byte. 1 is on 2 is off.
The 6th byte is to check 1 for request to speak queue or 0 for don't check
the queue.
Byte 7 is the group ID.
And I used the parameters in the attached document, none of others describes its even parity.
7.2 Speakerlist (Delegate stations on/off/requ)
The speakerlist is sent to the Ext. Controller when a microphone is turned on or off.
Where: 8,B,1,1,38,0,0,1,1 (9 bytes)
byte 1 = LEN "8" (plus byte 1 for a total of 9 bytes)
byte 2 = CMD "B"
byte 3 = Sesson ID "1"
byte 4 = Flag "1"
byte 5 = Lo logID "38"
byte 6 = Hi logID "0"
byte 7 = Pos "0"
byte 8 = State "1"
byte 9 = Group ID "1"
If you don't care about this stuff ignore it and just key on finding your first 2 fixed bytes:
"Bytes 1 and 2 are always $06 and $0A"
and then if the point where you find these string and the total length of the string is at least 7 bytes longer than the find point then dump up to the find point -1 and then grab the 7 byte string and parse.
Many thanks Vining,
Bt I couldn't make out this part.(which you quoted above)
I created a buffer of size 9 and analyzed a series of strings when more than 2 mics are activated, bt then the string was not in this format. I hope first 9 bytes will get replaced when the next reply comes, or else I'm missing the point where the buffer has to be cleared.