Audio Request via MSP 8
ondrovic
Posts: 217
Hi everyone,
I am running into an issue with the Audio Request ( F Series ) controlled by MSP 8's.
The problem is that when you select the source it connects to the Zone which its one, but it doesnt select any default music. Any ideas on how to do that without putting it into random mode?
Thanks
BTW using the DO_PUSH() commands
I am running into an issue with the Audio Request ( F Series ) controlled by MSP 8's.
The problem is that when you select the source it connects to the Zone which its one, but it doesnt select any default music. Any ideas on how to do that without putting it into random mode?
Thanks
BTW using the DO_PUSH() commands
0
Comments
to select any of the playlists i do DO_PUSH code similiar to this..
DO_PUSH(TP1mp,200); //zone 1
wait 5
{
DO_PUSH(TP1mp,11); //playlists
wait 5
{
DO_PUSH(TP1mp,89); //item 1, increment for each playlist
wait 5
{
DO_PUSH(TP1mp,20); //play now
wait 5
{
//DO_PUSH(TP1Scenes,7); //zone 1 on
}
}
}
}
That's why I dislike the paradigm of making the entire interface simply button presses. I really like the idea of a virtual you can send commands to, so you aren't forced to that kind of coding. I've taken to adding a command interface to modules that don't already have one, just for that reason.
Request does have a protocol document up on site that tells you the commands you need to send. Now with the older firmware I was able to figure out to send the up command for example:
SEND_COMMAND vdvCDLIB1,"$30,$15"
Now the new firmware with multiple zones broke that command and you'd probably have to do some reverse engineering to figure out how to send the command in the new protocol. I got lazy and just used the do push method.
In fact how I usually do Request control is declare a virtual touchpanel to control each zone of request. Then any panel that uses the request gets combined with the virtual touchpanel on an as needed basis. This allows me to guarantee that the panel is online and is controlling a specific zone when I go to do DO_PUSH.
but when i want to do scripting/events seperate from the panel, that's where the direct interface commands are required.
that's a neat idea Dave. do you place the DO_PUSHes within the module ?
i've a similiar problem with the MAX interface. there is no command to tell a panel to control a new zone. so i can only send a macro of DO_PUSHes. to place that inside another module could make that re-usable. thanks for the idea.
So if you wanted zone 1 to play for example I think you'd do this:
SEND_COMMAND vdvCDLIB1,"$30,$08,$F1,$FF,$FB"
Since the zone change though you might have to send it to the IP device directly, ie dvCDLIB1 instead of through the virtual devices.
Now I don't have a Request piece with the new firmware kicking around here at the office at the moment so can't test any of that but thought I'd share the idea of how I think it should work.
certainly looks like much neater way, thanks for the insight
Generally, I try to get deep enough into the controlled device to aviod DO_PUSH altogether. The last module I did this with was the Escient provided Fireball module. They had everything tied to touch panels, but I had some MSP keypads on the job their module wouldn't even recognize if I used DO_PUSH to the appropriate panel. So I added my command interface, and send the direct commands that the Fireball required for the keypad, leaving their panel interface intact for the panels on the job. Best of both worlds. In that case, however, I had the full source code, not just a compiled module file ... in other cases you might be forced to use the DO_PUSH inside your interface; though I would think a PASSTHRU (which AMX nearly always provides) would do it in many cases too. You mentioned the MAX interface - that would be another perfect module to add this too. If you trace the provided code to the BUTTON_EVENT for changing zones, you will see it just changes a variable. It would be a simple matter to add a COMMAND event to change it, and even do bounds checking first.
I like this method so much I have taken to adding a virtual to my systems just for debugging and Telnet control. All it does is accept commands and provide feedback. I can query the sytem for what zones ae on, what volume levels are set, and ask it to provide detailed debugging. I had perviously been doing it only with modules, but liked how it worked out so much I expanded it to the main code as well.