Documentation de l’API HTTP

La documentation de l’API HTTP vous indiquera comment contrôler votre tableau d’affichage vidéo à distance, soit par l’intermédiaire d’un dispositif Stream Deck, soit par un appel de commande curl via la ligne de commande, soit par l’intermédiaire d’un logiciel que vous développez vous-même.

Qu’est-ce qu’une API et une API HTTP ?

Une API (interface de programmation d’application) est un élément qui permet à d’autres systèmes d’interagir avec lui. Il existe de nombreux types d’API, c’est pourquoi je l’ai appelé « élément », et il peut fournir de nombreux types d’interactions : vous pouvez lui envoyer des données, collecter des données à partir de ce système ou le contrôler à distance.

Dans notre cas, nous avons mis en œuvre une API HTTP, ce qui signifie que nous avons une sorte de serveur web qui attend de recevoir vos requêtes comme si vous demandiez un site web, et de faire des choses en fonction de l’adresse que vous avez tapée.

L’important est qu’il s’agit d’un serveur web. Vous pouvez donc envoyer des requêtes API HTTP à l’aide de n’importe quel programme capable de demander des pages web (votre navigateur favori, l’application boucler sur Linux et OSX, etc.) et, plus important encore, vous pouvez le faire à partir de n’importe quel ordinateur, tablette ou téléphone portable qui se trouve sur le même réseau, ce qui vous permet d’avoir plusieurs LDSscoreboards (ou LDSperimetral) contrôlés à partir d’un point centralisé, votre centre de contrôle.

Pour appeler cette API HTTP, il faut interroger une url (URL est le nom donné à l’adresse composée du protocole, de l’ordinateur, du port et de la requête) comme s’il s’agissait d’une « page web ». Mais où est cette page web ? Je fais n’importe quoi ! Le plus simple est d’ouvrir avec votre navigateur préféré la requête que vous souhaitez. L’adresse à mettre sera la suivante : https://IP_DEL_ORDENADOR:PUERTO_CONFIGURADO/PETICION_A_EFECTUAR

Par conséquent, et en résumé :

  • L’adresse IP de l’ordinateur dépend de la configuration réseau de l’équipement. Nous vous recommandons de le fixer pour éviter qu’il ne change et que les demandes ne soient envoyées à un autre ordinateur sans que vous vous en rendiez compte.
  • Le port est indiqué dans la configuration du terminal, marqué d’une flèche rouge.
  • La demande dépendra de l’ordre que vous souhaitez donner à LDSscoreboard (nous le verrons prochainement).

Grâce à cette documentation HTTP API, vous pouvez apprendre à contrôler le tableau d’affichage vidéo à distance de manière simple.

Documentation et configuration de l'API HTTP de LDSscoreboard

Dans le cas présenté, l’IP de notre ordinateur est 192.168.1.35 et le port configuré est 8080.

Description de l’API

L’objectif est de disposer d’une API pour toutes les commandes de contrôle de LDSscoreboard, à l’exception de l’édition de contenu. Vous pouvez ainsi contrôler de manière centralisée tous les écrans que vous souhaitez, publier du contenu promotionnel ou mettre des éléments en favoris.

contrôle du glissement

Commandement Paramètres
/pcontrol/show_slide/<SLIDE_NAME> Fait apparaître la diapositive indiquée à l’écran.

slide_slide_name = Nom de la diapositive à afficher

Contrôle des compteurs

Commandement Paramètres
/pcontrol/increment_counter/NAME_CONTER Incrémente le compteur passé en paramètre

nom_compteur = Nom du compteur sur lequel opérer

/pcontrol/decrement_counter/NAME_CONTER Diminue le compteur passé en paramètre

nom_compteur = Nom du compteur sur lequel opérer

/pcontrol/set_counter/NAME_COUNTER/VALUE Affecte une valeur à un compteur donné.

nom_compteur = Nom du compteur sur lequel opérer
valeur = valeur numérique à attribuer

/pcontrol/get_counter_value/counter_name Récupère la valeur d’un compteur.

nom_compteur = Nom du compteur sur lequel opérer
valeur = valeur numérique à attribuer

liste des joueurs

Commandement Paramètres
/roster/get_local_team_name Vérifier le nom de l’équipe locale
/roster/get_guest_team_name Vérifier le nom de l’équipe visiteuse
/roster/get_team_players_count/[local|guest] Renvoie le nombre de joueurs de l’équipe qui joue à domicile ou à l’extérieur.
/roster/get_player_information/[local|guest]/PLAYER_INDEX Renvoie les informations du joueur indiqué (nom, numéro, etc.)
/roster/increment_player_score/[local|guest]/PLAYER_INDEX Augmente le score associé au joueur ayant l’index indiqué.
/roster/decrement_player_score/[local|guest]/PLAYER_INDEX Diminue le score associé au joueur ayant l’index indiqué.
/roster/get_player_score/[local|guest]/PLAYER_INDEX Récupère le score associé au joueur avec l’index indiqué.
/roster/increment_player_fauls/[local|guest]/PLAYER_INDEX Augmente les fautes associées au joueur ayant la note indiquée.
/roster/decrement_player_fauls/[local|guest]/PLAYER_INDEX Diminue les fautes associées au joueur avec l’indice indiqué.
/roster/get_player_fauls/[local|guest]/PLAYER_INDEX Récupère les fautes associées au joueur avec l’index indiqué.
/roster/increment_player_cautions/[local|guest]/PLAYER_INDEX Augmente le nombre d’avertissements associés au joueur ayant le classement indiqué.
/roster/decrement_player_cautions/[local|guest]/PLAYER_INDEX Diminution des mises en garde associées au joueur avec l’indice indiqué
/roster/get_player_cautions/[local|guest]/PLAYER_INDEX Récupère les avertissements associés au lecteur avec l’index indiqué.

 

contrôle de la minuterie

Commandement Paramètres
/pcontrol/start_timer/NOMBRE_TIMER Démarre la minuterie dans la direction dans laquelle elle a été réglée.

timer_name = Nom de la minuterie (ou du chronomètre) à utiliser

/pcontrol/stop_timer/NAME_TIMER Arrête la minuterie. Sa valeur n’est pas modifiée.

timer_name = Nom de la minuterie (ou du chronomètre) à utiliser

/pcontrol/reset_timer/NOMBRE_TIMER Réinitialise le timer à la valeur initiale définie dans sa configuration.

timer_name = Nom de la minuterie (ou du chronomètre) à utiliser

/pcontrol/get_timer_time/NAMBRE_TIMER Récupère l’heure fixée par une minuterie.

timer_name = Nom de la minuterie (ou du chronomètre) à utiliser

Étiquettes dynamiques et compteurs automatiques

Commandement Paramètres
/gc/get_dynamic_label/VAR Récupère la valeur attribuée à la variable dynamique.

VAR = Identifiant de la variable à interroger

/gc/set_dynamic_label/VAR/ARG1 Modifie la valeur attribuée à la variable dynamique

VAR = Identifiant de la variable à affecter
ARG1 = Nouvelle valeur à attribuer

/gc/get_automatic_variable/VAR Obtient la valeur d’une variable automatique. Ces variables sont calculées lors de l’utilisation de la liste des joueurs.

VAR = Nom de la variable

Variables existantes :
local_team_score : score de l’équipe locale
home_team_faults : fautes commises par l’équipe locale
local_team_fauls_resettable : fautes commises par l’équipe locale, mais qui peuvent être remises à zéro.
guest_team_score : score de l’équipe visiteuse
guest_team_fauls : fautes de l’équipe visiteuse
guest_team_fauls_resettable : fautes commises par l’équipe visiteuse, mais pouvant être remises à zéro.

/gc/reset_automatic_variable/VAR Remet à zéro le compteur des variables automatiques qui peuvent être réinitialisées.

VAR : Nom de la variable réinitialisable (local_team_fauls_resetable ou guest_team_fauls_resetable).

Exemple d’utilisation de l’API HTTP LDSscoreboard

Prenons un exemple pour mieux comprendre le fonctionnement de l’API HTTP tel qu’il est décrit dans cette documentation. Supposons que nous ayons défini un marqueur contenant une diapositive appelée « slide1 ». Pour demander au système d’ouvrir la diapositive 1, nous devons connaître l’adresse IP de l’ordinateur et le port, puisque nous connaissons déjà le nom.

Si nous prenons l’image en haut de la page, nous voyons que nous avons l’adresse IP 192.168.1.35 et le port 8080, nous devons donc faire une requête HTTP (ouvrir la page) à l’adresse http://192.168.1.35:8080/pcontrol/show_slide/slide1.

Pour ce faire, nous pouvons ouvrir un navigateur et saisir l’adresse dans la barre d’adresse :

Ensuite, si LDSscoreboard est en cours d’exécution, nous devrions voir la diapositive appelée slide1 devenir active.

IMPORTANT

Si le nom de la diapositive contient un espace, comme il s’agit d’un caractère spécial, il faut le remplacer par %20, c’est-à-dire que « my slide » sera traduit par « my%20slide ».

Outils pour effectuer des appels API HTTP

Bien sûr, vous n’êtes pas obligé de faire des appels HTTP à partir d’un navigateur, nous l’avons fait de cette manière parce que c’est un outil que vous êtes sûr d’avoir à portée de main et de connaître, mais il y a beaucoup d’autres façons de le faire.

boucler

curl est un outil de requête HTTP open source. Il est disponible sur Linux, OSX, ainsi que sur les dernières versions de Windows 10. Il est très simple à utiliser, comme le montre l’image suivante :

Javascript

Vous pouvez créer un programme Javascript, en utilisant jquery, dans lequel un appel HTTP est effectué, par exemple avec ce code :

timer_identifier= »mon timer » ;

$.getJSON(`/pcontrol/start_timer/${timer_identifier}`)
.done(function (data) {
if (data.status != 0) {
console.error(`Erreur de démarrage du minuteur : ${JSON.stringify(data)} `) ;
}
})
.fail(function (err) {
if (err.status != 200)
console.error(`Erreur de démarrage du timer [${JSON.stringify(err)}]`) ;
}) ;

et n’importe quel langage de programmation vous permettra de faire de tels appels.