Help: Serial control of Speakercraft AV switch
Rabbie13
Posts: 16
It's been a while but I've decided to have anbother go at AMX programming.
I am having trouble with controlling a Speakercraft MZC66 controller using RS232 and need some expert help.
I have purchased the RSA-1.0 serial interface for the MZC66 and it is all working fine. I have confirmed this by using the MZC Control Emulator program and also by firing serial strings out of a PC serilal port using Girder 5 program.
I can get the MZC to work fine using these methods but I just cannot seem to get the NI2100 to send the correct commands to the RSA-1.0 interface.
I therefore downloaded an AMX module for the speakercraft MZC controllers from the website. By loading up the test Touch Panel and main program, I can use the Netlinx Diagnostics to see exactly what strings are being sent to the RSA-1.0 interface. This is where I get confused.
According to the Speakercraft protocol the following string would switch Zone1/Source1 on:
0x55, 0x05, 0xA3, 0x00, 0x00, 0x03
N.B. when I used Girder 5 and computer, the above is exactly how the string was sent to COM1 of PC
However, selecting Zone1/Source1 on the AMX system using the Speakercraft test module, I see the following being sent to the RSA-1.0 on port 5001:2:1
U$05$A3$00$00$03$
If I then use the following command in my original AMX control system to enable Zone1/Source1, nothing happens:
SEND_STRING dvReceiver,"'U$05$A3$00$00$03$'" // MZC to Zone1, Input1
I have also tried several variations of the string too, using the Control a Device tool in Diagnostics
'U$05$A3$00$00$03$'
'$55,$05,$A3,$00,$00,$03'
'0x55, 0x05, 0xA3, 0x00, 0x00, 0x03'
I'm sure the solution will be simple, but so am I... :-)
A couple of things to note:
I just don't think I have the skills to integrate the AMX Speakercraft Module into my current project.
I only need to enable 7 commands for my project, i.e. Select Src 1-6 on Zone 1 and Power off commands.
I'm not a programmer by nature, so think AMX Programming 1 level at best.
Any help would be much appreciated. I've attached the Speakercraft protocol for info.
I am having trouble with controlling a Speakercraft MZC66 controller using RS232 and need some expert help.
I have purchased the RSA-1.0 serial interface for the MZC66 and it is all working fine. I have confirmed this by using the MZC Control Emulator program and also by firing serial strings out of a PC serilal port using Girder 5 program.
I can get the MZC to work fine using these methods but I just cannot seem to get the NI2100 to send the correct commands to the RSA-1.0 interface.
I therefore downloaded an AMX module for the speakercraft MZC controllers from the website. By loading up the test Touch Panel and main program, I can use the Netlinx Diagnostics to see exactly what strings are being sent to the RSA-1.0 interface. This is where I get confused.
According to the Speakercraft protocol the following string would switch Zone1/Source1 on:
0x55, 0x05, 0xA3, 0x00, 0x00, 0x03
N.B. when I used Girder 5 and computer, the above is exactly how the string was sent to COM1 of PC
However, selecting Zone1/Source1 on the AMX system using the Speakercraft test module, I see the following being sent to the RSA-1.0 on port 5001:2:1
U$05$A3$00$00$03$
If I then use the following command in my original AMX control system to enable Zone1/Source1, nothing happens:
SEND_STRING dvReceiver,"'U$05$A3$00$00$03$'" // MZC to Zone1, Input1
I have also tried several variations of the string too, using the Control a Device tool in Diagnostics
'U$05$A3$00$00$03$'
'$55,$05,$A3,$00,$00,$03'
'0x55, 0x05, 0xA3, 0x00, 0x00, 0x03'
I'm sure the solution will be simple, but so am I... :-)
A couple of things to note:
I just don't think I have the skills to integrate the AMX Speakercraft Module into my current project.
I only need to enable 7 commands for my project, i.e. Select Src 1-6 on Zone 1 and Power off commands.
I'm not a programmer by nature, so think AMX Programming 1 level at best.
Any help would be much appreciated. I've attached the Speakercraft protocol for info.
0
Comments
send_string dvDevice,"'U',$05,$A3,$00,$00,$03" or
send_string dvDevice,"$55,$05,$A3,$00,$00,$03"
Your second example was close...
'$55,$05,$A3,$00,$00,$03' but single quote transmits the values as ASCII not HEX
It should be "$55,$05,$A3,$00,$00,$03"
"'U$05$A3$00$00$03$'" is the issue. The way you have this right now, you are sending the actual characters U,$, and so on. This is because when Netlinx sees a string enclosed in single quotes ('hello'), it takes that string and sends a specific set of hex values according to the ASCII standard. In the case of my example string, what you would see coming out of the port, if you set the notifications window to display hex only, would be $68,$65,$6C,$6C,$6F. What you are actually sending the amp is a string that has 17 bytes in it, rather than the 6 that the controller wants to see. To fix this, try the following send_string command:
send_string dvReceiver, "$55,$05,$A3,$00,$00,$03"
Notice that the quotes around the string are double quotes ("55") not single quotes.
Hopefully that helps.
Andrew
I knew it would be simple and it was.
I'm not here too often, but when I am you guys always come up trumps.