Facility Control

 View Only
  • 1.  Send VISCA commands with DashBoard

    Posted 04-04-2019 19:01

    Hi again!

    So, one of the places I work at just recently aquired two of the ROSS PIVOT Cam SE.
    After reading, and testing and going over, I've got control of the two cameras by using the Camera Control DashBoard available over at the PIVOT Cam downloads.

    However, there isnt much to learn from this DashBoard, as the Edit Mode is password protected.
    As intelectual rights etc, that's good and all, and I respect that.

    Now, after diving around a little, I've kinda landed on that the camera uses VISCA protocols over IP, and just does away with the RS232 to IP converter.
    And I think that the VISCA would be sent with an UDP to the corresponding camera IP/Port.

    However I cant the camera to react to a UDP Byte Array message like "HOME".
    VISCA protocol source here btw:
    https://www.epiphan.com/userguides/LUMiO12x/Content/UserGuides/PTZ/3-operation/VISCAcommands.htm#CamValues

    Is there any chance we could get the examples of how to make our own DashBoards to control the PIVOT cams? Would be greatly appreciated..



  • 2.  RE: Send VISCA commands with DashBoard

    Posted 04-04-2019 22:21

    So... After fiddeling with this for a couple of hours... I ended up with this...

    In order to send a VISCA over IP, it's a UDP message (TCP can get a response I guess), sent to the IP of the camera, to the port 52381, and it has to be built up by bytes.

    So far, I've been able to break the bytes down into the following.

    The first two bytes are the Payload Type. I'm not sure what else kind of types there are as this is the only one I've managed to get working so far...

    The next two bytes (3 and 4) are the Payload Length. This is the number of bytes in the VISCA command payload.

    Then comes the next four, that are "Sequence Numbers", and this one should be incrementet by the controller (dashboard) for each command issued, OR as a workaround, it can be set to FF FF FF FF as long as we're working with one controller.

    Then the command, with the ID of the unit in that chain (in this case 1, so the ID is 81), followed by the command, and then the terminator (FF).

    So the HOME command is as follows in UDP to the PIVOT Cam as a VISCA over IP:
    01 00 00 05 FF FF FF FF 81 02 06 04 FF

    Now this took me quite a while, so if anyone amazingly awesome would happen to see this (lookin at you @jamespeltzer), and could give me a fair few pointers in how to incorporate PIVOT Cam SE control intro a custom DashBoard, now that would be great!


    #DashBoard


  • 3.  RE: Send VISCA commands with DashBoard

    Posted 04-04-2019 22:27

    HI Aleksander.

    First, let's determine if you need to talk to the PIVOT directly or if talking through the CustomPanel would be sufficient.

    The CustomPanel responds to RossTalk GPI triggers for camera selection and shot recalls so, if you're just trying to do that (and want to use the shots stored in the custom panel), you can save yourself a lot of effort by sending "GPI SHOT_NUMBER:CAMERA_NUMBER" to the IP address/"RossTalk GPI Listener" port (specified under Preferences->RossTalk GPI Listener) of the computer running the PIVOT CustomPanel.

    If this isn't what you're trying to do, we do have a few other tricks available that involve talking through the CustomPanel.  If all of those fail, we can go down the road of sending VISCA directly to the camera (hint: look at "Create Message Builder" in the ogScrpt Script Palette).

    Cheers.

     

    James


    #DashBoard


  • 4.  RE: Send VISCA commands with DashBoard

    Posted 04-04-2019 23:33

    See... now... I love that! So simple, so easy... But ARG! I dont mean to sound ungratefull, but that's like, something that REALLY could be usefull in a readme.txt or just a HELP in the camera control DashBoard... Would've saved me a few more gray hairs at least...

    Well, at least I got somewhere...
    Yes, shot recalls is what I'm mainly after, and that little tip you gave me there, that worked perfectly by the way, will get me quite a bit on the way. I think the camera control like PTZ operation will not be handled by whoever is using the main custom control panel anyhow. However nice that would be.

    Now, I did solve the riddle above though I think... I did get the other commands I tried as well to react, simply by building a few functions etc that let me count the payload length, and as long as I could use the FF FF FF FF "cheat" I got most of everything working. Everything I could kinda grab from this at least:
    https://www.epiphan.com/userguides/LUMiO12x/Content/UserGuides/PTZ/3-operation/VISCAcommands.htm

    I didnt go after the pan/tilt/zoom yet, but I might give it a go.
    So, if you'd LIKE to, I would very much like at least a little peek down the road of sending VISCA directly to the camera.
    I did use the Create Message Builder earlier (OSC messages remember), and got somewhere with it, but this time around, just using the "Send UDP Message" just seemed alot easier. But I assume you're about to prove me wrong there :P

    So if you dont mind great @jamespeltzer , enlighten us with your DashBoard wisdom!


    #DashBoard


  • 5.  RE: Send VISCA commands with DashBoard

    Posted 04-07-2019 19:07

    I will try to get an example of the IP Visca for PIVOT SE sometime soon. I have an example of doing the simpler serial Visca protocol for shot recalls - you may find it useful to pattern-match to it:

    function sendShotMessage(ip, port, chain, shotNumber, message)
    {
    var messageBuilder = ogscript.createMessageBuilder();
    messageBuilder.writeByte(0x80 + chain);
    messageBuilder.writeByte(0x01);//memory command = 01 04 3F
    messageBuilder.writeByte(0x04);//see above
    messageBuilder.writeByte(0x3F);//see above
    messageBuilder.writeByte(message); //store/recall/delete
    messageBuilder.writeByte(shotNumber);
    messageBuilder.writeByte(0xFF); //end of message

    rosstalk.sendBytes(ip, port, messageBuilder.toByteArray(), null);

    }

    function recallShot(ip, port, chain, shotNumber)
    {
    sendShotMessage(ip, port, chain, shotNumber, 2);
    }

    function storeShot(ip, port, chain, shotNumber)
    {
    sendShotMessage(ip, port, chain, shotNumber, 1);
    }

    function deleteShot(ip, port, chain, shotNumber)
    {
    sendShotMessage(ip, port, chain, shotNumber, 0);
    }

    #DashBoard


  • 6.  RE: Send VISCA commands with DashBoard

    Posted 08-14-2021 11:37

    Hi again James! Been a while, and dont know if you're roaming these forums anymore.

    I did sort out the recall thingy from the Old ROSS DashBoard for PIVOT Cams, however, I'm now, again, looking into the VISCA control, and if nothing else, at least be able to recall the shots stored on the camera from a second DashBoard.

    So if you have any VISCA examples for me, that'd be great.
    Kinda rusty on DashBoard here now after this pandemic...



    ------------------------------
    Aleksander Stalsberg
    Lillehammer Icehockey Club
    ------------------------------



  • 7.  RE: Send VISCA commands with DashBoard

    Posted 08-23-2021 09:39

    Hi Aleksander

    This post is a bit of a blast from the past but I think most of the pieces are here.  In your first message of the post, you are showing the HOME message over IP Visca. In the example code I posted, I show the shot recall message with the serial version of the protocol (which we would send over IP to one of the PIVOT 20 cameras).   You may notice they look similar after the FF FF FF FF part - this is because the first part of your message is just the IP header.

    The header consists of:
    2 bytes of "payload type" data (0x10, 0x00) to indicate you are sending a Command message
    2 bytes of "payload length" data (0x00, 0x05) to indicate you have a payload of 5 bytes (the 81 ... FF part)
    4 bytes of "sequence number" data (you just used 0xFF 0xFF 0xFF 0xFF for those)

    The Message Builder I posted above can just have the necessary bytes added to the start of the message to send the "IP Visca" message instead of the serial version.  
    The only other thing to look out for is that your sequence numbers should start at 0 and increment on each message you send. To make sure you are starting at zero, you would send a sequence number reset message (message type 0x02 0x00) with a payload of 0x01 (the sequence number in the header will be ignored for this message)

    Hope this helps!

    James



    ------------------------------
    James Peltzer
    Ross Video
    ------------------------------



  • 8.  RE: Send VISCA commands with DashBoard

    Posted 09-04-2019 23:05

    So, James... I'm back at this one...

    For some reason tonight... I was setting up new camera positions, recalling them using the GPI X:X as you told me about above, and that worked just fine...

    Until all of a sudden... For no appereant reason at all, this thing stopped working. Now it's only working when I recall shot id 2.
    I have 37 of them in the DashBoard, all from 0-36 stored, I change nothing in the code, I even tried going back to using the RossTalk GPI thingy and not visual logic or ogScript, but nope... It will suddenly only recall shot ID 2...

    Any clues here? Tonight has just been a mess, and this one just... Nope... Cant figure out why...


    #DashBoard


  • 9.  RE: Send VISCA commands with DashBoard

    Posted 09-12-2019 17:20

    Hi Aleksander
    Sorry for the delayed response. Did you ever sort this out?

    It does indeed seem odd that you can recall GPI 2 but nothing else. Is it shot ID 2 in one specific camera or shot ID 2 in all cameras? Do you still have shots associated with each camera?

    I'd also recommend closing all other open panels while debugging.

     


    #DashBoard


  • 10.  RE: Send VISCA commands with DashBoard

    Posted 09-14-2019 18:08

    Not figured this one out yet.
    At IBC this weekend, but will take another look at this as soon as I am back home.


    #DashBoard