Le Servlet Json JMRI fournit l'accès web à des listes et des valeurs pour de nombreuses entités JMRI définies, dans le format moderne JSON. Il fournit aussi une interface WebSocket pour faire changer les statuts de ces entités, et écouter les changements externes.
La fonction HTTP GET du servlet répond au modéle URL suivant:{"type":"list","list":"trains"}
qui sont passées à JsonLister pour gestion.{"type":"turnout","data":{"name":"LT14"}}
qui sont transmises aux
gestionnaires spécifiques. Ces demandes initieront les "auditeurs" qui enverront réponses
mises à jour à chaque changement d'état de l'élément.
{"type":"turnout","data":{"name":"LT14","state":4}}
*
ou {"type":"ping"}
. La
*
Pulsation n'obtient pas de réponse, tandis que la pulsation JSON provoque
une{"type":"pong"}
réponse.{"type":"goodbye"}
pour lequel une réponse
identique est envoyée avant que la connexion ne se ferme.commande | réponse | notes |
---|---|---|
{"type":"sensor","data":{"name":"IS2"}}
|
{"type":"sensor","data":{"name":"IS2","state":4}}
|
demande l'état actuel du capteur IS2 |
{"type":"sensor","data":{"name":"IS2","state":4}}
|
{"type":"sensor","data":{"name":"IS2","state":4}}
|
Définit le capteur IS2 à InActif (4) |
{"type":"turnout","data":{"name":"IT99","state":0}}
|
{"type":"turnout","data":{"name":"IT99","state":4}}
|
Envoyer l'état=0 est aussi traité comme une requête pour le statut actuel |
{"type":"power","data":{}}
|
{"type":"power","data":{"state":2}}
|
L'alimentation ne nécessite pas de nom |
{"type":"ping"}
|
{"type":"pong"}
|
ping Requête et Réponse |
{"type":"list","list":"panels"}
|
{"type":"list","list":[{"name":"Panel/Panel",
"URL":"/panel/Panel/Panel?format=json","userName":"Panel","type":"Panel"},
{"name":"Layout/Waccamaw%20Coast%20Line",
"URL":"/panel/Layout/Waccamaw%20Coast%20Line?format=json", "userName":"Waccamaw Coast
Line","type":"Layout"}]}
|
requière une liste de panneaux, répond avec un ensemble des détails de deux panneaux |