Généralités
JSON (JavaScript Object Notation) est un format léger utilisé pour l’échange de données. Il est basé sur un sous-ensemble de langage JavaScript : la façon dont les objets sont construits en JavaScript.
JSON (JavaScript Object Notation) est un format léger utilisé pour l’échange de données. Il est basé sur un sous-ensemble de langage JavaScript : la façon dont les objets sont construits en JavaScript.
JSON repose sur deux structures :
Voici un exemple de données JSON :
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
"212 555-1234",
"646 555-4567"
]
}
JSON utilise JSON-RPC (basé sur REST) pour interagir avec les processeurs Event Master tels que l’E2, le S3-4K et l’EX. JSON-RPC est un protocole d’appel de procédure à distance codé en JSON.
JSON-RPC fonctionne en envoyant une requête à un serveur implémentant ce protocole. Dans ce cas, le client est généralement un logiciel qui a l’intention d’appeler une méthode unique d’un système distant. Plusieurs paramètres d’entrée peuvent être transmis à la méthode distante sous la forme d’un tableau ou d’un objet, tandis que la méthode proprement dite peut renvoyer plusieurs données de sortie.
Il existe des JSON-RPC définis pour effectuer des tâches sur le processeur Event Master. L’utilisateur doit envoyer une requête JSON par l’intermédiaire de son application ou d’applications open source.
Ces applications doivent envoyer des requêtes sur l’adresse IP sur laquelle s’exécute le processeur Event Master et sur le port fixe 9999 (le serveur Web du processeur Event Master s’exécute sur le port 9999).
Pour utiliser les API JSON à partir de l’application Web, sélectionnez l’icône des réglages dans la barre de navigation du menu, puis API JSON-RPC dans le tableau de bord de l’application Web.

Voici quelques-unes des API JSON définies pour contrôler le processeur Event Master. Si vous avez une configuration Event Master maître/esclave, JSON doit être envoyé à l’appareil maître. Pour toutes les requêtes, cette section explique le paramètre transmis ou utilisé dans les appels RPC. Si l’objet params est vide, cela signifie que l’API n’a pas besoin de paramètre.
allTrans
Définition :
Requête :
{} - ne nécessite aucun paramètre.Réponse :
Exemple :
{"params":{}, "method":"allTrans",
"id":"1234", "jsonrpc":"2.0"}cut
Définition :
Requête :
{} - ne nécessite aucun paramètre.Réponse :
Exemple :
{"params":{}, "method":"cut",
"id":"1234", "jsonrpc":"2.0"}resetFrameSettings
Définition :
Requête :
params : {"reset":x},
« x » peut être compris entre 0 et 5
Réponse :
Exemple :
{"params":{"reset": 0}, "method":"resetFrameSettings",
"id":"1234", "jsonrpc":"2.0"}powerStatus
Définition :
Requête :
{} - ne nécessite aucun paramètre.Réponse :
réponse : {FrameId1 :{ PwrStatus1, PwrStatus2},{FrameId2
:{ PwrStatus1, PwrStatus2}
PwrStatus1 indique l’état d’alimentation du premier emplacement du processeur Event Master avec l’id de châssis FrameId1, FrameId2.
PwrStatus2 indique l’état d’alimentation du second emplacement du processeur Event Master avec l’id de châssis FrameId1, FrameId2.
Exemple :
{"params":{}, "method":"powerStatus",
"id":"1234", "jsonrpc":"2.0"}listPresets
Définition :
Requête :
params : {"ScreenDest":x , "AuxDest":x},
« x » peut être :
Réponse :
réponse : tableau de : [{"id": 0, "Name":
"Preset3.00", "LockMode": 0, "presetSno":
3.00}, {"id": 1, "Name": "Preset4.00",
"LockMode": 0, "presetSno": 4.00}]
Exemple :
{"params":{"ScreenDest": 0}, "method":"listPresets",
"id":"1234", "jsonrpc":"2.0"}listDestinationsForPreset
Définition :
Requête :
params : {"id":x },
« x » peut être :
Réponse :
réponse : tableau de : [{"id": 0, "Name":
"Preset3.00", "LockMode": 0, "presetSno":
3.00, "ScreenDest":[{"id": 0}, {"id":
3}],"AuxDest":[{"id": 0},
{"id": 1}]}]
Exemple :
{ "params":{"id": 0}, "method":"listDestinationsForPreset",
"id":"1234",
"jsonrpc":"2.0"}
savePreset
Définition :
Requête :
params : {"presetName": "NewPreset",
"ScreenDestination":[{"id": 2}, {"id":
3}],
"AuxDestination":[{"id": 1}, {"id":
2}]}
Réponse :
Exemple :
{"params": {"presetName": "NewPreset"},
"method":"savePreset", "id":"1234",
"jsonrpc":"2.0"}
{"params": {"presetName": "NewPreset",
"ScreenDestination":
{"id": 0},"AuxDestination":{"id":
0}}, "method":"savePreset", "id":"1234",
"jsonrpc":"2.0"}
Points clés concernant le pré-réglage, qui sont les mêmes pour renommer, activer et supprimer :
« presetSno » : numéro de série prédéfini. L’utilisateur peut fournir un nombre à virgule flottante si nécessaire. Ex. : « presetSno » : 1,01, « presetSno » : 1,00, « presetSno » : 1, « presetSno » : 1,1, « presetSno » : 1,10.
Veuillez noter que 1,1 et 1,10 ou 1,00 et 1 sont identiques.
renamePreset
Définition :
Paramètres de requête :
{"id": x, "newPresetName":
"NewPresetName"}{"presetSno": x.y, "newPresetName":
"NewPresetName"}params : {"presetName": "OldPresetName",
"newPresetName": "NewPresetName"}
Réponse :
Exemple :
{"params": {"id": 0, "newPresetName": " newPresetName "},
"method":"renamePreset", "id":"1234",
"jsonrpc":"2.0"}
{"params": {"presetName": "NewPreset", "newPresetName": "NewPresetName"},
"method":"renamePreset", "id":"1234",
"jsonrpc":"2.0"}
{"params": {"presetSno": 1.00, "newPresetName": " newPresetName "},
"method":"renamePreset", "id":"1234",
"jsonrpc":"2.0"}
activatePreset
Définition :
Paramètres de requête :
{"id": x, "type": x}{"presetSno": x.y, "type":
x}params : {"presetName": "PresetName"}
« type » : 0 pour rappeler dans l’Aperçu (par défaut), 1 pour rappeler dans le Programme.
Ce paramètre n’est pas obligatoire, mais il doit être indiqué lorsque l’utilisateur souhaite rappeler un pré-réglage dans le Programme.
Réponse :
Exemple :
{"params": {"id": 0, "type":
0}, "method":"activatePreset",
"id":"1234", "jsonrpc":"2.0"}
//Recall in preview with id 0.
{"params": {"presetName": "abc"
}, "method":"activatePreset",
"id":"1234", "jsonrpc":"2.0"}
//Recall in preview with preset name "abc".
{"params": {"presetSno": 1.00, "type":
1}, "method":"activatePreset",
"id":"1234", "jsonrpc":"2.0"}
//Recall in program with presetSno 1.
recallNextPreset
Définition :
Rappelle le pré-réglage suivant sur le processeur Event Master.
Aucun paramètre n’est requis.
Requête :
{}Réponse :
Exemple :
{"params": {}, "method":"recallNextPreset",
"id":"1234", "jsonrpc":"2.0"}deletePreset
Définition :
Supprime un pré-réglage sur le processeur Event Master.
L’utilisateur peut supprimer le pré-réglage avec l’id, le numéro de série du pré-réglage ou le nom du pré-réglage.
Requête :
{"id": x}{"presetSno": x.y}{"presetName": "PresetName"}Réponse :
Exemple :
{"params": {"id": 1}, "method":"deletePreset",
"id":"1234", "jsonrpc":"2.0"}{"params": {"presetSno": 1.00}, "method":"deletePreset",
"id":"1234", "jsonrpc":"2.0"}{"params": {"presetName": "Preset
5.00"}, "method":"deletePreset",
"id":"1234", "jsonrpc":"2.0"}
listDestinations
Définition :
Requête :
params : {"type": x}
0 : afficher toutes les destinations.
0 est la valeur par défaut du paramètre de type.
Réponse :
réponse : tableau de : {"ScreenDestination":[{"id":
0, "Name": "Dest1", "HSize": 3840,
"VSize": 1080, "Layers": 1,"DestOutMapColl":[{"id":
0"DestOutMap":[{"id":
0, "Name": "Out1", "HPos":
0, "VPos": 0, "HSize": 1920, "VSize":1080,
"Freeze": 0},{"id": 1, "Name":
"Out2", "HPos": 1920, "VPos": 0,
"HSize": 1920, "VSize":1080, "Freeze":
1}]}]}],"AuxDestination":
[{"id": 0, "AuxStreamMode": 4}, {"id":
1, "AuxStreamMode": 4}]}"
Exemple :
{"params": {"type": 0}, "method":"listDestinations",
"id":"1234", "jsonrpc":"2.0"}listSources
Définition :
Requête :
params : {"type": x}
0 : affiche toutes les sources d’entrée.
0 est la valeur par défaut du paramètre de type.
Réponse :
réponse : tableau de : {"id": 0, "Name":
"InSource1", "HSize": 3840, "VSize":
1080,
"SrcType": 0, "InputCfgIndex": -1,
"StillIndex": 0, "DestIndex": -1,
"UserKeyIndex": -1, "Mode3D": 0, "Freeze":
1, "Capacity": 2,
"InputCfgVideoStatus": 4}
SrcType : 0 = entrée, 1 = magasin d’images fixes
InputCfgVideoStatus : état de la vidéo d’entrée
Exemple :
{"params": {"type": 0}, "method":"listSources",
"id":"1234", "jsonrpc":"2.0"}listContent
Définition :
Requête :
params : {"id": x}
Réponse :
réponse : { "id": 0, "Name": "ScreenDest1""BGLyr":[{"id":
0, "LastBGSourceIndex":
0, "BGShowMatte":0, "BGColor":[{"id":0,
"Red":0, "Green":0, "Blue":0}]},
{"id": 1, "LastBGSourceIndex": 0,
"BGShowMatte":0, "BGColor":[{"id":0,
"Red":0, "Green":0, "Blue":0}]}],(0
= PGM Background, 1 = PVW Background)
"Layers":[{"id": 0, "LastSrcIdx":
0, "HPos": 0, "VPos": 0, "HSize": 400,
"VSize": 300, "PvwMode": 0, "PgmMode":
0, "Freeze": 0, "FlexZOrder":
0,"LayerTrans":[{"id": 0, "TransTime":
30, "TransPos": 0}, {"id": 1,
"TransTime": 30, "TransPos": 0}]
, "3D": "Yes", "Freeze": 0, "Capacity":
2}]}]}
BGLyr : index du calque d’arrière-plan, dernier index de source d’arrière-plan.
« id » : 0 affecte l’arrière-plan dans le Programme. « id » : 1 affecte l’arrière-plan dans l’Aperçu.
Exemple :
{"params": {"id": 0}, "method":"listContent",
"id":"1234", "jsonrpc":"2.0"}activateCue
Définition :
Requête :
params : {"id": 1, "type": x}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
{"cueName": "Cue1", "type":
x}, "method":"activateCue", "id":"1234",
"jsonrpc":"2.0"}{"cueSerialNo": 1.00, "type":
x}, "method":"activateCue", "id":"1234",
"jsonrpc":"2.0"}Réponse :
Exemple :
{"params": {"id": 1}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
//Play – no parame or type 0{"params": {"type": 1}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
//Pause – type 1{"params": {"type": 2}, "method":"activateCue",
"id":"1234", "jsonrpc":"2.0"}
//Stop – type 2activateDestGroup
Définition :
Requête :
{"id": x}{"destGrpSno": x.y}{"destGrName": "GroupName"}Réponse :
Exemple :
{"params": {"id": 0}, "method":"activateDestGroup",
"id":"1234", "jsonrpc":"2.0"}{"params": {"destGrpName": "abc"
}, "method":"activateDestGroup", "id":"1234",
"jsonrpc":"2.0"}{"params": {"destGrpSno": 1.00}, "method":"activateDestGroup",
"id":"1234", "jsonrpc":"2.0"}listCues
Définition :
Requête :
{}, "method":"listCues", "id":"1234",
"jsonrpc":"2.0"}Réponse :
Exemple :
{"params": {}, "method":"listCues",
"id":"1234", "jsonrpc":"2.0"}3dControl
Définition :
Requête :
params : {"id" : id, "type": x, "syncSource":
y, "syncInvert": z}
Réponse :
réponse : {"id": 0, "Name": "InSource1",
"HSize": 3840, "VSize": 1080,
"Src-Type": 0, "InputCfgIndex": -1,
"StillIndex": 0, "DestIndex": -1,
"UserKeyIndex": -1, "Mode3D": 0,
"Freeze": 1, "Capacity": 2,
"InputCfgVideoStatus": 4}
Exemple :
{"params": {"id": 1, "type":
0, "syncSource": 1, "syncInvert": 0},
"method":"3dControl", "id":"1234",
"jsonrpc":"2.0"}
changeContent
Définition :
Requête :
params : {"id":0,"BGLyr":[{"id":0,"LastBGSourceIndex":0,"BGShowMatte":0,
"BGColor":[{"id":0,"Red":0,"Green":0,"Blue":0}]},{"id":1,
"LastBGSourceIndex":0,"BGShowMatte":0,"BGColor":
[{"id":0,"Red":0,"Green":0,"Blue":0}]}],"Layers":
[{"id":0,"LastSrcIdx":0,"Window":{"HPos":0,"VPos":0,"HSize":400,"VSize":300},
"Source":{"HPos":0,"VPos":0,"HSize":1920,"VSize":1080},
"Mask":
{ "Left":0.01, "Right":10.1, "Top":0.0,"Bottom":0.0},"PvwMode":1,"PgmMode":0,
"Freeze":0,"PgmZOrder":0,"PvwZOrder":0}]}
BGLyr : index du calque d’arrière-plan, dernier index de source d’arrière-plan.
« id » : 0 affecte l’arrière-plan dans le Programme. « id » : 1 affecte l’arrière-plan dans l’Aperçu.
Réponse :
Exemple :
{"params":{"id":0,"BGLyr":[{"id":0,"LastBGSourceIndex":0,"BGShowMatte":0,
"BGColor":[{"id":0,"Red":0,"Green":0,"Blue":0}]},{"id":1,
"LastBGSourceIndex":0,"BGShowMatte":0,"BGColor":[{"id":0,"Red":0,
"Green":0,"Blue":0}]}],"Layers":[{"id":0,"LastSrcIdx":0,
"Window":{"HPos":0,"VPos":0,"HSize":400,"VSize":300},
"Source":{"HPos":0,"VPos":0,"HSize":1920,"VSize":1080},
"Mask":{ "Left":0.01, "Right":10.1,
"Top":0.0,"Bottom":0.0},
"PvwMode":1,"PgmMode":0,"Freeze":0,"PgmZOrder":0,"PvwZOrder":0}]},
"method":"changeContent", "id":"1234",
"jsonrpc":"2.0"}.
{"params":{"id":0, "TestPattern"
:5 }, "method":"changeContent", "id":"1234",
"jsonrpc":"2.0"}freezeDestSource
Définition :
Requête :
params : {"type": x, "id": y, "screengroup":
z ,"mode": 0/1}
Type : type de la source.
Réponse :
Exemple :
{"params": {"type": 0, "id":
0, "screengroup": 0 ,"mode": 1},
"method":"freezeDestSource", "id":"1234",
"jsonrpc":"2.0"}
listStill
Définition :
Requête :
{}Réponse :
réponse : tableau de : [{"id":0,"Name":"StillStore1",
"LockMode":0,"HSize":{"Min":0,"Max":99999,"$t":1920},"VSize":{"Min":0,
"Max":99999,"$t":1080},"StillState":{"Min":0,"Max":4,"$t":3},"PngState":
{"Min":0,"Max":2,"$t":0},"FileSize":{"Min":0,"Max":100000,"$t":9331.2}}]
Exemple :
{"params": {}, "method":"listStill",
"id":"1234", "jsonrpc":"2.0"}deleteStill
Définition :
Requête :
params : {"id": x}
Réponse :
Exemple :
{"params":{"id": 0}, "method":"deleteStill",
"id":"1234", "jsonrpc":"2.0"}takeStill
Définition :
Requête :
params : { "type": x, "id": y, "file":
z}
Réponse :
Exemple :
{"params":{"type":0 , "id":
1, "file": 5}, "method":"takeStill",
"id":"1234",
"jsonrpc":"2.0"}
getFrameSettings
Définition :
Requête :
{}Réponse :
{"System":{"id":0,"Name":"System1","FrameCollection":{"id":0,"Frame":
{"id":"00:0c:29:0e:86:d4","Name":"E2","Contact":"","Version":"4.2.30738",
"OSVersion":"NA","FrameType":0,"FrameTypeName":"E2","Enet":{"DhcpMode":0,
"DhcpModeName":"Static","IP":"10.98.0.165","StaticIP":"192.168.000.175",
"MacAddress":"00:0c:29:0e:86:d4","StaticMask":"255.255.255.000",
"StaticGateway":"192.168.000.001"},"SysCard":{"SlotState":2,
"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":80,
"CardTypeLabel":"System","CardID":0},"Slot":[{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":70,"CardTypeLabel":"Expansion",
"CardID":"thisissometextforid0"}},{"Card":{"CardStatusID":2,"CardStatusLabel":
"Ready","CardTypeID":70,"CardTypeLabel":"Expansion","CardID":
"thisissometextforid1"}},{"Card":{"CardStatusID":0,"CardStatusLabel":
"Not Installed","CardTypeID":255,"CardTypeLabel":"Unknown","CardID":
"Undefined"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":1,"CardTypeLabel":"SDI
Input","CardID":"thisissometextforid211"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":3,"CardID":
"thisissometextforid2"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":0,"CardTypeLabel":"DVI
Input","CardID":"thisissometextforid4"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid5"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid7"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid8"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":2,
"CardTypeLabel":"HDMI/DP Input","CardID":"thisissometextforid9"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":22,
"CardTypeLabel":"HDMI Output","CardID":"CardID3"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":22,"CardTypeLabel":"HDMI
Output",
"CardID":"CardID4"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":21,"CardTypeLabel":"SDI
Output","CardID":"CardID415"}},
{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready","CardTypeID":40,
"CardTypeLabel":"MVR","CardID":"CardID15"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid501"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid502"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid503"}},{"Card":{"CardStatusID":2,
"CardStatusLabel":"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler",
"CardID":"thisissometextforid504"}},{"Card":{"CardStatusID":0,
"CardStatusLabel":"Not Installed","CardTypeID":255,"CardTypeLabel":
"Unknown","CardID":"Undefined"}},{"Card":{"CardStatusID":2,"CardStatusLabel":
"Ready","CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid505"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid506"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid507"}},{"Card":{"CardStatusID":2,"CardStatusLabel":"Ready",
"CardTypeID":50,"CardTypeLabel":"VPU
Scaler","CardID":
"thisissometextforid508"}}]}}}}}
Exemple :
{"params":{}, "method":"getFrameSettings",
"id":"1234", "jsonrpc":"2.0"}listAuxContent
Définition :
Requête :
params : {"id" : x}
Réponse :
réponse : {"id":0,"Name":"AuxDest1","PvwLastSrcIndex":0,"PgmLastSrcIndex":0}
Exemple :
{"params": {"id": 0}, "method":"listAuxContent",
"id":"1234", "jsonrpc":"2.0"}changeAuxContent
Définition :
Requête :
params : {"id":x , "Name": "AuxDest1"
, "PvwLastSrcIndex": y , "PgmLastSrcIndex": z}
Réponse :
Exemple :
{"params": {"id":0 , "Name":
"AuxDest1" , "PvwLastSrcIndex": 6 ,
"PgmLastSrcIndex": 1}, "method":"changeAuxContent",
"id":"1234", "jsonrpc":"2.0"}
{"params":{"id":0, "TestPattern"
:3 }, "method":"changeAuxContent", "id":"1234",
"jsonrpc":"2.0"}Lorsqu’un abonnement est effectué à partir d’une application basée sur JSON, une notification est envoyée au port IP où l’application est exécutée lorsqu’il y a un changement pour lequel l’utilisateur s’est abonné.
La notification proprement dite est envoyée de manière asynchrone sous la forme HTTP Post, avec la structure suivante : {result: {method:
"notification",notificationType: "ScreenDestChanged",change:
{ add: [2],
remove: [], update: [0, 1, 2] }}}.
Le champ « change » contient le(s) XmlId des écrans qui ont été ajoutés/supprimés ou mis à jour.
s’abonner
Définition :
Requête :
params : {"hostname": hostname, "port":
port, "notification" : notificationType[]}
« hostname » : nom d’hôte ou adresse IP à laquelle les notifications sont envoyées.
« port » : port TCP auquel les notifications sont envoyées.
« notificationTypes » : groupe de notifications auxquelles l’utilisateur souhaite s’abonner.
Réponse :
{"method": "subscribe"}Exemple :
{"params": {"hostname" : "192.168.247.131",
"port": "3000", "notification" :
["ScreenDestChanged", "AUXDestChanged"]},
"method":"subscribe", "id":"1234",
"jsonrpc":"2.0"}
unsubscribe
Définition :
Requête :
params : {"hostname": hostname, "port":
port, "notification" : notificationType[]}
« hostname » : nom d’hôte ou adresse IP à partir desquels l’abonnement doit être supprimé.
« port » : port TCP.
« notificationTypes » : groupe de notifications auxquelles l’utilisateur souhaite s’abonner.
Réponse :
{"method": "unsubscribe"}Exemple :
{"params": {"hostname" : "192.168.247.131",
"port": "3000", "notification" :
["ScreenDestChanged", "AUXDestChanged"]},
"method":"unsubscribe",
"id":"1234", "jsonrpc":"2.0"}