Announcement

Collapse
No announcement yet.

Dolby DSS input change triggering (server/HDMI)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    I can't edit, so I will post.
    After quite a few hours of trying to make outbound cues over ethernet work, I put a pause on it for when I have more time.
    The intention was to trigger actions on a Q-SYS system that would act as in-between the lights' automation and allow changes on sound, as far as the core is concerned.
    More than once or twice, I set the outbound cues, I updated them on the TMS, checked them manually, checked them using a black pattern, making an SPL on the server, checked them by making an SPL on the TMS, working, but have them randomly not work (mostly not) during a screening session.

    I rolled back to serial, using a ser2net module that does the same. The only disadvantage, that (cheap) ser2net module doesn't work well with inbound cues. And, to be honest, I prefer relying on the server, than an external device.

    As far as the inbound cues go. I haven't had them work, but I didn't invest too much time on it. I haven't, for instance, tried to replicate the syntax Steve is using (that reminds me of the Doremi servers' one as well).
    I will return to that project in the future and -if I find the missing ingredient- I will post here.

    Comment


    • #17
      As a follow up on the subject, I was in touch with Dolby lately, about the inbound cues. It seems that they do not register in the logs and more importantly, they don't work.
      I tried the form of command Steve is using and quite a few others. I also tried the from the automation device to send the cues to 9202, that is mentioned on the SW release notes and to the port number that is used on the configuration file (especially on Dolby's demand/suggestion). I also tried to change the UDP protocol to TCP and to use the Theatre network.

      Steve (or someone that has it working), what is the port you use for the DSS inbound cues?

      Comment


      • #18
        The first system that comes to mind I was using an EPRAD eCNA automation. That device uses TCP ports 13000 - 13002 and on later firmwares, 13003 was added. I choose to use 13001 and defined that in the Ethernet automation XML file for the DSS server (DSS200). One can only define one TCP port in the Ethernet Automation file (for both inputs and outputs). It just worked for both directions. In fact, the only configuration I had to do what the XML file and putting the IP and Port in. On the EPRAD side, I had to turn "Event Reports" On for the port I was using so when it issued a pause (in the event of a fire alarm) it would issue the command.

        Comment


        • #19
          We use 9650 port, but it could be other, it makes no difference in our case. One port is used for input and output cues. We don't use 9202 port from release notes anywhere (I don't know what does mean "import port").

          I read about your device a little and I thought maybe your problem with output cues is related to this:
          "Note: An External Control client must communicate with the Q-SYS Core at least once every 60 seconds, or the socket connection will be closed by the Core."

          Comment


          • #20
            Ekaterina, has a good point there. A core will close the socket after 60 seconds of inactivity.

            Comment


            • #21
              Indeed she has.
              In my specific case, the port is used for control commands sent from the Core and received by the DSS. I am not sure if External Control client translates to an external machine controlled as much as controlling. I would imagine the later.
              (Out of subject: I am using a ser2net (serial to ethernet) device to relay commands to the Core from the DSS. I was hoping to replace/drop that, once the DSS internal Ethernet automation was up and running, but I haven't been there yet. I have no issues with ser2net, but the time-out might explain the issues I had with DSS->Core Ethernet cues, when I tried to make it work. So, I am currently trying to figure out Core->DSS or "anything"->DSS for that specific function I need for that screen: switching from server to HDMI input.)

              I thought about the socket closing issue, I don't remember if I read about it in this forum or elsewhere, but I don't get how that would be an obstacle when I was trying to trigger the cue via a PC or a Doremi IMS.
              I also was wondering if I could use curl to trigger a serial command via API. But it's way out of my league and I was advised to not to that way.

              What I know now is that UDP is not giving any results with the port assigned (and the Core reports the "Status: Fault - Error: <blank>" once I change it to TCP on Command Buttons Properties, Status a green "OK", on UDP. But, then again, it doesn't expect any acknowledgement). On UDP, the port on the DSS seemed closed.
              I also learned an interesting detail:
              While not there at the release notes, there is another tag/entry on the <Device Configuration> part of the .xml configuration file, apart from <address> and <port>.
              It's <termination-command> and its counterpart, </termination-command>, where one can include "\0d", for instance (without quote marks).

              Comment


              • #22
                I think something like this should work (but I'm not sure):

                PC -> DSS (using Ncat utility)
                (PC and DSS are on the same subnet)

                1. Set listen mode on PC
                >ncat -l

                (ncat -l [<host>] [<port>]
                In listen mode, <host> controls the address on which Ncat listens; if you omit it, Ncat will bind to all local interfaces (INADDR_ANY). If the port number is omitted, Ncat uses its default port 31337.)


                2. Import the automation configuration file on DSS

                ​<?xml version="1.0" encoding="UTF-8"?>
                <EthernetAutomationConfiguration xmlns="http://www.dolby.com/dcinema/automation/v1/schemas/ethernet">
                <!-- Socket address and port -->
                <DeviceConfiguration>
                <address>pc_ip</address>
                <port>31337</port>
                </DeviceConfiguration>
                <!-- Input Cue Configuration -->
                <InputCueConfiguration>
                <name>hdmi1</name>
                <type>other</type>
                <command>HDMI1</command>
                </InputCueConfiguration>
                </EthernetAutomationConfiguration>​

                3. Return to PC and type:
                HDMI1\r\n
                press Enter

                Input mode should change from server to HDMI1.

                Comment


                • #23
                  I am a bit bounded by other tasks, Ekaterina, but I will definitely try that.
                  Thank you for the suggestion.
                  I already used a PC with WireShark, but didn't work. It might be because of the IP being different...
                  I will let you (all) know.
                  Last edited by Ioannis Syrogiannis; 06-26-2023, 12:40 PM. Reason: Syntax

                  Comment


                  • #24
                    Hi Ioannis,
                    While not there at the release notes, there is another tag/entry on the <Device Configuration> part of the .xml configuration file, apart from <address> and <port>.
                    It's <termination-command> and its counterpart, </termination-command>, where one can include "\0d", for instance (without quote marks).

                    Thank you for this. I've corrected the xml files for two DSS220s and it's been working great for a couple days. If everything goes well further, I'll do it with the rest of the DSS200 and DSS220.
                    I think something like this should work (but I'm not sure):
                    Now I'm sure it works. I tested this when I inserted termination command tags in the xml. It looks like that:
                    image.png
                    1. ncat command
                    2. DSS220 -> PC
                    3/4/5/6. PC -> DSS220 (executed)​

                    Code:
                    <?xml version="1.0" encoding="UTF-8"?>
                    <EthernetAutomationConfiguration xmlns="http://www.dolby.com/dcinema/automation/v1/schemas/ethernet">
                    
                        <!-- Socket address and port -->
                        <DeviceConfiguration>
                            <address>11.111.111.2</address>
                            <port>31337</port>
                            <termination-command>\0D\0A</termination-command>
                        </DeviceConfiguration>
                        
                        
                        <!-- Output Cue Configuration -->
                        
                        <!-- Light -->    
                        <OutputCueConfiguration>
                            <name>Floor_ON</name>
                            <type>light</type>
                            <command>run Light_Floor-ON</command>
                        </OutputCueConfiguration>
                    
                        <!-- Input Cue Configuration -->
                        
                        <!-- Playback -->
                        <InputCueConfiguration>
                            <name>play</name>
                            <type>other</type>
                            <command>PLAY</command>
                        </InputCueConfiguration>
                        
                        <InputCueConfiguration>
                            <name>stop</name>
                            <type>other</type>
                            <command>STOP</command>
                        </InputCueConfiguration>
                    
                        <InputCueConfiguration>
                            <name>reselect</name>
                            <type>other</type>
                            <command>RESELECT</command>
                        </InputCueConfiguration>
                        
                        <!-- Input -->
                        <InputCueConfiguration>
                            <name>hdmi2</name>
                            <type>other</type>
                            <command>HDMI2</command>
                        </InputCueConfiguration>
                        
                    </EthernetAutomationConfiguration>​
                    11.111.111.1 - Auditorium Link Address (for instance)​
                    11.111.111.2 - PC IP

                    Good luck

                    Comment

                    Working...
                    X