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.

LDSscoreboard HTTP API Documentation and Configuration

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_ timer/$ `)
.done(function (data) )
.fail(function (err) );

et tout langage de programmation vous permettra d'effectuer ce type d'appels.