B.2 Event Master series processor JSON RPC remote control

General

JSON (JavaScript Object Notation) is a lightweight format that is used for interchanging data. It is based on a subset of JavaScript language: the way objects are built in JavaScript.

Introduction to JSON

JSON is built on two structures:

Here is an example of JSON data:

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }
How JSON interacts with Event Master processors

JSON uses JSON RPC (REST based) to interact with Event Master processors. JSON-RPC is a remote procedure call protocol encoded in JSON.

JSON-RPC works by sending a request to a server implementing this protocol. The client in that case is typically software intending to call a single method of a remote system. Multiple input parameters can be passed to the remote method as an array or object, whereas the method itself can return multiple output data as well.

There are JSON RPCs defined to perform tasks on the Event Master processor. User needs to send JSON request through their application or open source application like Postman.

These applications should send request on IP where the Event Master processor is running and fixed port 9999 (Webserver of Event Master processor is running on port 9999).

Use JSON from the web application

To use the JSON APIs from the web application, select the Settings icon on the Menu navigation bar, and select JSONRPC API from the web app dashboard.

Image B–1 Use JSON from the web application
JSON APIs

Here are some of the JSON APIs defined for controlling the Event Master processor. If you have a master / slave Event Master setup, JSON must be sent to the master unit. For all the requests, this section explains the parameter passed or used in the RPC calls. If the params object is blank that means that API doesn’t require a parameter.

Note: Requests are case sensitive.

allTrans

 

cut

 

resetFrameSettings

 

powerStatus

 

listPresets

 

listDestinationsForPreset

 

savePreset

 

renamePreset

 

activatePreset

 

recallNextPreset

 

deletePreset

 

listDestinations

 

listSources

 

listContent

 

3dControl

 

changeContent

 

freezeDestSource

 

listStill

 

deleteStill

 

takeStill

 

getFrameSettings

 

listAuxContent

 

changeAuxContent

Subscription and Un-Subscription

When a subscription is done from a JSON-based application, a notification is sent to the ip port where the application is running when there is change for which the user has subscribed.

Actual notification is sent asynchronously as an HTTP Post, with the following structure: {result: {method:

"notification",notificationType: "ScreenDestChanged",change: { add: [2],

remove: [], update: [0, 1, 2] }}}.

The change field contains the XmlId(s) of the screens that were added/removed or updated.

Note: All subscriptions are lost once the Event Master processor is restarted, and they must be subscribed again if required.

subscribe

 

unsubscribe