Documentation de l’API HTTP
Grâce à la documentation de l’API HTTP, vous apprendrez comment contrôler votre panneau d’affichage vidéo à distance, que ce soit via un appareil de type Stream Deck, un appel de commande curl via la ligne de commande, ou via un logiciel que vous développez vous-même.
Qu’est-ce qu’une API et une API HTTP ?
Une API (Application Programming Interface) est un élément qui offre aux autres systèmes un moyen d’interagir avec lui. Il existe de nombreux types d’API, c’est pourquoi je l’ai qualifiée d’« élément », et elle 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 implémenté une API HTTP, ce qui signifie que nous disposons d’une sorte de serveur web qui attend de recevoir vos requêtes comme si vous demandiez une page web, et qui exécute des actions en fonction de l’adresse que vous avez saisie.
La partie importante ici est qu’il s’agit d’un serveur web, vous pouvez donc envoyer des requêtes d’API HTTP en utilisant n’importe quel programme capable de demander des pages web (votre navigateur préféré, l’application curl sur Linux et OSX, etc.) et, plus important encore, vous pouvez le faire depuis n’importe quel ordinateur, tablette ou téléphone portable connecté au 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, vous devez consulter 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 m’embrouille ! La manière la plus simple est d’ouvrir la requête que vous souhaitez avec votre navigateur préféré. L’adresse à saisir aura la forme suivante : https://IP_DE_L_ORDINATEUR:PORT_CONFIGURE/REQUETE
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 la rendre fixe pour éviter qu’elle ne change et que les requêtes ne soient envoyées vers un autre ordinateur sans que vous ne vous en rendiez compte.
- Le port est indiqué dans la configuration du terminal, marqué par une flèche rouge.
- La requête dépendra de l’ordre que vous souhaitez donner au LDSscoreboard (nous le verrons sous peu).
Grâce à cette documentation de l’API HTTP, vous apprendrez à contrôler le panneau d’affichage vidéo à distance de manière simple.

Dans le cas illustré, l’adresse IP de notre ordinateur est 192.168.1.35 et le port configuré est 8086.
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. De cette façon, vous pouvez contrôler de manière centralisée tous les écrans que vous souhaitez, publier du contenu promotionnel ou marquer des éléments.
Contrôle des diapositives
| Commande | Paramètres |
|---|---|
| /pcontrol/list_slides | Récupère la liste des diapositives disponibles dans le panneau d’affichage chargé |
| /pcontrol/show_slide/ | Affiche la diapositive indiquée sur l’écran. name_slide = Nom de la diapositive que vous souhaitez afficher |
Contrôle des compteurs
| Commande | Paramètres |
|---|---|
| /pcontrol/list_counters | Récupère la liste des compteurs définis dans le panneau d’affichage actif |
| /pcontrol/increment_counter/COUNTER_NAME | Incrémente le compteur passé en paramètre. counter_name = Nom du compteur sur lequel opérer |
| /pcontrol/decrement_counter/COUNTER_NAME | Décrémente le compteur passé en paramètre. counter_name = Nom du compteur sur lequel opérer |
| /pcontrol/set_counter/COUNTER_NAME/VALUE | Attribue une valeur à un compteur donné. counter_name = Nom du compteur sur lequel opérer. value = valeur numérique à attribuer |
| /pcontrol/get_counter_value/COUNTER_NAME | Récupère la valeur d’un compteur. counter_name = Nom du compteur sur lequel opérer. value = valeur numérique à attribuer |
Liste des joueurs
| Commande | Paramètres |
|---|---|
| /roster/get_local_team_name | Vérifie le nom de l’équipe locale |
| /roster/get_guest_team_name | Vérifie le nom de l’équipe visiteuse |
| /roster/get_team_players_count/[local|guest] | Renvoie le nombre de joueurs dans l’équipe locale ou visiteuse |
| /roster/get_player_information/PLAYER_INDEX[local|guest] | Renvoie les informations du joueur indiqué (nom, numéro, etc.) |
| /roster/increment_player_score/[local|guest] /PLAYER_INDEX | Augmente le score associé au joueur avec l’index indiqué |
| /roster/decrement_player_score/[local|guest] /PLAYER_INDEX | Diminue le score associé au joueur avec 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 avec l’index indiqué |
| /roster/decrement_player_fauls/[local|guest] /PLAYER_INDEX | Diminue les fautes associées au joueur avec l’index indiqué |
| /roster/get_player_faults/[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 les avertissements associés au joueur avec l’index indiqué |
| /roster/decrement_player_cautions/[local|guest] /PLAYER_INDEX | Diminue les avertissements associés au joueur avec l’index indiqué |
| /roster/get_player_cautions/[local|guest] /PLAYER_INDEX | Récupère les avertissements associés au joueur avec l’index indiqué |
Contrôle de la minuterie
| Commande | Paramètres |
|---|---|
| /pcontrol/list_timers | Récupère la liste des minuteries disponibles dans le panneau d’affichage actif |
| /pcontrol/start_timer/TIMER_NAME | Démarre la minuterie dans la direction où elle a été définie. name_timer = Nom de la minuterie (ou chronomètre) sur lequel opérer |
| /pcontrol/stop_timer/TIMER_NAME | Arrête la minuterie. Sa valeur n’est pas modifiée. name_timer = Nom de la minuterie (ou chronomètre) sur lequel opérer |
| /pcontrol/reset_timer/TIMER_NAME | Réinitialise la minuterie à la valeur initiale définie dans sa configuration. name_timer = Nom de la minuterie (ou chronomètre) sur lequel opérer |
| /pcontrol/get_timer_time/TIMER_NAME | Récupère la valeur de la minuterie. name_timer = Nom de la minuterie (ou chronomètre) sur lequel opérer |
Étiquettes dynamiques et compteurs automatiques
| Commande | Paramètres |
|---|---|
| /gc/list_dynamic_labels | Récupère la liste des étiquettes dynamiques disponibles dans le panneau d’affichage chargé |
| /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 à assigner. ARG1 = Nouvelle valeur à assigner |
| /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, local_team_fauls : fautes commises par l’équipe locale, local_team_fauls_resetable : fautes commises par l’équipe locale, mais réinitialisables, guest_team_score : score de l’équipe visiteuse, guest_team_fauls : fautes de l’équipe visiteuse, guest_team_fauls_resettable : fautes de l’équipe visiteuse, mais réinitialisables. |
| /gc/reset_automatic_variable/VAR | Réinitialise le compteur à zéro pour les variables automatiques pouvant être réinitialisées. VAR : Nom de la variable réinitialisable (local_team_fauls_resetable ou guest_team_fauls_resetable) |
Gestion des vecteurs
| Commande | Paramètres |
|---|---|
| /pcontrol/list_vectors | Récupère la liste des vecteurs disponibles dans le panneau d’affichage actif |
| /pcontrol/increment_vector_element/VECTOR_ID/INDEX/INCREMENT_VALUE | Incrémente la valeur de l’élément à la position INDEX du vecteur VECTOR_ID. L’incrément est déterminé par INCREMENT_VALUE |
| /pcontrol/set_vector_element_value/VECTOR_ID/INDEX/VALUE | Définit la valeur de l’élément à la position INDEX du vecteur VECTOR_ID. La nouvelle valeur est déterminée par VALUE |
| /pcontrol/get_vector_element_value/VECTOR_ID/INDEX | Obtient la valeur de l’élément à la position INDEX du vecteur VECTOR_ID. |
| /pcontrol/get_vector_length/VECTOR_ID | Récupère le nombre d’éléments du vecteur. C’est-à-dire, la taille définie. |
Exemple d’utilisation de l’API HTTP LDSscoreboard
Examinons un exemple pour bien comprendre le fonctionnement décrit dans cette documentation sur l’API HTTP. Supposons que nous ayons défini un marqueur contenant une diapositive appelée « slide1 ». Pour demander au système d’ouvrir « slide1 », 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 verrons que nous avons l’adresse IP 192.168.1.35 et le port 8080. Nous devons donc effectuer 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, nous devons le remplacer par %20. Ainsi, « my slide » sera traduit par « my%20slide ».
Outils pour effectuer des appels API HTTP
Bien entendu, vous n'êtes pas limité à effectuer des appels HTTP depuis un navigateur. Nous l'avons fait de cette manière car c'est un outil que vous avez sûrement sous la main et que vous connaissez, mais il existe de nombreuses autres façons de le faire.
curl
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. Son utilisation est très simple, comme le montre l'image suivante :

JavaScript
Vous pouvez créer un programme en JavaScript, en utilisant jQuery, où un appel HTTP est effectué, par exemple avec ce code :
timer_identifier= »my timer »;
$.getJSON(`/pcontrol/start_
.done(function (data) )
.fail(function (err) );
et tout langage de programmation vous permettra d'effectuer ce type d'appels.