Home AMX User Forum AMX General Discussion

How can I get feedback from DVX-3155HD

Hallo everybody!
Need help: I can't get feedback from matrix inside DVX-3155HD. I do in programm SEND_COMMAND 5002:1:0,"'VI1O1'" And it works.
Befor in my programm CREATE_BUFFER 5002:1:0, fb_Matrix

Then I do SEND_COMMAND 5002:1:0,"'?OUTPUT-VIDEO,1'" But I can't receive any symbol.
​Help me please! Perhaps I try to receive feedback from wrong port?

Comments

  • feddxfeddx Posts: 183
    The Create_Buffer command only works gathering "STRING" information in your Event Handler, and not "COMMAND" replies.

    Try removing that create_buffer and use this to see if you get something back:
    Data_EVENT [5002:1:0]  //Or better yet define the switch device in define_device. dvSysSwitch  = 5002:1:0
    {
        String:
        {
            //Put nothing here because you don't need string information
        }
        Command:
        {
            local_var char  cNewReply[50]
            local_var integer tin
            local_var integer tout
            cNewReply = "data.text"                                  //Just like the String Handler, the Command Handler stores replies in the data.text field
            fb_Matrix = "fb_Matrix,cNewReply"
    
            //Put logic to parse buffer here.  The commands coming back should all look like this "SWITCH-LVIDEOI3O2"
       }
    }
    

    Also the DVX uses channels and levels on different ports to indicate which inputs are going to which outputs. For example if you send video input 6 to out 2 with this command: VI6O4 (or the old-school CLVIDEOI6O4) the DVX will reply:
    Level Value From [5002:4:1] - Level 50  Value= 6
    Output Channel:Off [5002:4:1] - Channel 33             //Previous input
    Output Channel:On [5002:4:1] - Channel 36             //New input
    Command From [5002:1:1]-[SWITCH-LVIDEOI6O4]
    

    And if you're using audio AI6O4 (or the old-school CLAUDIOI6O4) the DVX will reply:
    Level Value From [5002:4:1] - Level 51  Value= 6
    Output Channel:Off [5002:4:1] - Channel 43             //Previous input
    Output Channel:On [5002:4:1] - Channel 46             //New input
    Command From [5002:1:1]-[SWITCH-LAUDIOI6O4]
    

    Note though the channel and level events only happen when switching to a different input than the current one.

    I hope this helped.
  • Keep in mind the responses should be coming back as a COMMAND to port 1 of the switcher device. If you don't have a COMMAND event handler in the data event and instead are looking for a STRING, you won't see anything.

    Edit: feddx beat me to it. Another note, turn on diagnostics for device 5002 all ports and watch how much info the switcher gives out, there are several ways to use that data to drive feedback
  • RaphayoRaphayo Posts: 111
    I suggest to use Level_event it will save you lot of time, in the documentation of AMX Presentation switcher you have all the information on that, and if you make a switch thru the front panel with the level_event your routing will change in your program. (same thing if you use the web interface).

  • SergSerg Posts: 3
    Thenk you feddx! It works! I just use fb_Matrix in the programm and have feedback from Matrix!
    I take this code:
    feddx wrote: »

    Try removing that create_buffer and use this to see if you get something back:
    Data_EVENT [5002:1:0] //Or better yet define the switch device in define_device. dvSysSwitch = 5002:1:0
    {
    Command:
    {
    local_var char cNewReply[50]
    local_var integer tin
    local_var integer tout
    cNewReply = "data.text" //Just like the String Handler, the Command Handler stores replies in the data.text field
    fb_Matrix = "fb_Matrix,cNewReply"
    
    //Put logic to parse buffer here. The commands coming back should all look like this "SWITCH-LVIDEOI3O2"
    }
    }
    
  • SergSerg Posts: 3
    Raphayo wrote: »
    I suggest to use Level_event it will save you lot of time, in the documentation of AMX Presentation switcher you have all the information on that, and if you make a switch thru the front panel with the level_event your routing will change in your program. (same thing if you use the web interface).
    Thank you very much Raphayo! I don't think about this. And now I can do so:
    DEFINE_EVENT
    
    BUTTON_EVENT[dvTP,48]
    { PUSH: { [dvMatrix,210]=![dvTP,48] } }
    
    BUTTON_EVENT[dvTP,51]
    { PUSH: { [dvMatrix,213]=![dvTP,51] } }
    
    DEFINE_PROGRAM
    
    [dvTP,48]=[dvMatrix,210] //Video Mute
    [dvTP,51]=[dvMatrix,213] //Video Freeze
    
    
    And it works! It is realy save a lot of time! Thank you! ;)
Sign In or Register to comment.