Giter VIP home page Giter VIP logo

kramer_vp_control_protocol's Introduction

Kramer VP-Series Control Protocol Definitions

A collection of the RS-232 Serial (and serial-over-ethernet or serial-over-IR) protocol specs in JSON format, so they can be easily used in any project.

Structure

Files

vp-7xx.json: command definitions for VP-719 through -724 (and will probably work for other -7xx models). This is probably the file you want to use.

vp-7xx.md: A markdown version of the commands in the json file, for use by silly humans with silly eyes who need to read things.

generator.rb: ruby source files used to generate the above JSON and Markdown.

Command Objects in Files

The command files are an array of JSON object, and every object looks like this:

{
    "comments" : "VGA-2 is VP-724 Only",
    "control_type" : {
        "get" : 4,
        "set" : 3
    },
    "description" : "Select Input Source",
    "group": null,
    "function_code" : 0,
    "response_values" : {
        "0" : "VGA-1",
        "1" : "VGA-2",
        "2" : "DVI",
        "3" : "Component",
        "4" : "YC-1",
        "5" : "AV-1",
        "6" : "YV-2",
        "7" : "AV-2",
        "8" : "Scart",
        "9" : "TV"
    },
    "set_parameters" : [
        "integer",
        0,
        9
    ]
  }

The properties in each object are:

  • comments
    • comments about the command, such as compatibility
  • control_type
    • defines the codes used to set or get the function value on the device
    • if a command can only be used to set, then the get property will be `null'
    • likewise, if a command can only be used to get, then the set property will be `null'
  • description
    • description of the command
  • group
    • functional grouping, if applicable
  • function_code
    • the function code to be passed to the device, along with the control type
  • response_values
    • if the command returns a value, this is a dictionary of what the returned values mean
  • set_parameters
    • if the function value can be set, these are the constraints for the parameters to be passed to the device
      • null - no parameters required
      • ["integer", x, y]: an integer within the range of x and y inclusive
      • ["gt", x]: an integer that is greater than x
      • "any": any numeric value allowed, but see comments for details
    • parameters are only used for set operations, not for get operations

Communication Parameters

For RS-232 connections, the serial port configuration is:

  • 9600 baud
  • 8 data bits
  • no parity
  • 1 stop bit

The serial port on most devices is wired as DTE, so you will need to use a null-modem adapter to connect it to a PC.

The docs say that all commands are specified to end with a "carriage return", although a unix-style "\n" seems to work just fine as well.

Sending GET commands

To send a GET command, the format is: Y {{control type for GET}} {{function code}}

There is a single space between each item.

Sending SET commands

To send a SET command, the format is: Y {{control type for SET}} {{function code}} {{parameter}}

There is a single space between each item.

If the command was successful, done\n will be returned from the device, followed by the GET response.

Reading responses

In addition to sending "done" for a set command, all successful commands will return a response formatted as: Z {{control type}} {{function code}} {{response value}}

If the command has a dictionary of response values, use that to look up the meaning. If there is no dictionary, then the value is meant to be used directly or as described by the command comments.

The response is ended when the device sends >, and is then ready to receive a new command.

Protocol Version

This definition is derived from the Kramer RS-232 Command Set documentation. This is the so-called "New" protocol for devices with firmware > KB2.33. Devices with previous firmware use the "Old" protocol which is not (yet) included here.

It should also work for later models of the same family, like VP-730/-731, but has not been tested.

Device Compatibility

This version currently has support for the protocol used in the VP-719, -720, -723, and -724 DS and XL Presentation Switcher/Scaler devices. It will also work for rebranded equivalent models

Kramer Ocean Matrix BTX Notes
VP-719 OMX-7190A BTX-719
VP-720 OMX-7200A
VP-723
VP-724 OMX-7240A
VP-7xx Should work, untested

License

Unless otherwise encumbered, all work herein is licensed under GNU LGPL-3.0.

kramer_vp_control_protocol's People

Contributors

xunker avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.