Documentación de la API HTTP
A través de la documentación de la API HTTP aprenderá cómo controlar su marcador de video de forma remota, ya sea mediante un dispositivo tipo Stream Deck, una llamada de comando curl a través de la línea de comandos, o mediante software que usted mismo desarrolle.
¿Qué es una API y una API HTTP?
Una **API** (Interfaz de programación de aplicaciones) es un elemento que proporciona una forma para que otros sistemas interactúen con él. Existen muchos tipos de API, por lo que me he referido a ella como un «elemento», y puede proporcionar muchos tipos de interacciones: puede enviarle datos, recopilar datos de ese sistema o controlarlo de forma remota.
En nuestro caso, hemos implementado una **API HTTP**, lo que significa que tenemos una especie de servidor web que está esperando recibir sus solicitudes como si estuviera solicitando un sitio web, y realiza acciones según la dirección que usted escribió.
Así que la parte importante aquí es que es un servidor web, por lo que puede enviar solicitudes a la API HTTP usando cualquier programa que pueda solicitar páginas web (su navegador favorito, la aplicación curl en Linux y OSX, etc.) y, lo que es más importante, puede hacerlo desde cualquier computadora, tableta o teléfono móvil que esté en la misma red, permitiéndole tener múltiples LDSscoreboards (o LDSperimetral) controlados desde un punto centralizado, su centro de control.
Para llamar a esta API HTTP, debe consultar una URL (URL es el nombre que se le da a la dirección compuesta por el protocolo, la computadora, el puerto y la solicitud) como si fuera una «página web». Pero, ¿dónde está esa página web? ¡Me estoy haciendo un lío!. La forma más fácil es abrir la solicitud que desea con su navegador preferido. La dirección que debe poner tendrá la siguiente forma: https://IP_DE_LA_COMPUTADORA:PUERTO_CONFIGURADO/SOLICITUD
Por lo tanto, y en resumen:
- la IP de la computadora depende de la configuración de red del equipo. Recomendamos que la haga fija para evitar que cambie y que las solicitudes se dirijan a otra computadora sin darse cuenta.
- El puerto se indica en la configuración del terminal, marcado con una flecha roja.
- La solicitud dependerá de la orden que desee darle a LDSscoreboard (lo veremos en breve).
A través de esta documentación de la API HTTP aprenderá cómo controlar el marcador de video de forma remota de una manera sencilla.

En el caso mostrado, la IP de nuestra computadora es 192.168.1.35 y el puerto configurado es 8086.
Descripción de la API
El objetivo es tener una API para todos los comandos de control de LDSscoreboard, excepto la edición de contenido. De esta manera, puede controlar de forma centralizada todas las pantallas que desee, publicar contenido promocional o marcar elementos.
Control de diapositivas
| Comando | Parámetros |
|---|---|
| /pcontrol/list_slides | Recupera la lista de diapositivas disponibles en el marcador cargado |
| /pcontrol/show_slide/ | Hace que la diapositiva indicada se muestre en la pantalla. name_slide = Nombre de la diapositiva que desea mostrar |
Control de contadores
| Comando | Parámetros |
|---|---|
| /pcontrol/list_counters | Recupera la lista de contadores definidos en el marcador activo |
| /pcontrol/increment_counter/COUNTER_NAME | Incrementa el contador pasado como parámetro. counter_name = Nombre del contador sobre el cual operar |
| /pcontrol/decrement_counter/COUNTER_NAME | Decrementa el contador pasado como parámetro. counter_name = Nombre del contador sobre el cual operar |
| /pcontrol/set_counter/COUNTER_NAME/VALUE | Asigna un valor a un contador determinado. counter_name = Nombre del contador sobre el cual operar, value = valor numérico a asignar |
| /pcontrol/get_counter_value/COUNTER_NAME | Recupera el valor de un contador. counter_name = Nombre del contador sobre el cual operar, value = valor numérico a asignar |
Lista de jugadores
| Comando | Parámetros |
|---|---|
| /roster/get_local_team_name | Comprueba el nombre del equipo local |
| /roster/get_guest_team_name | Comprueba el nombre del equipo visitante |
| /roster/get_team_players_count/[local|guest] | Devuelve el número de jugadores en el equipo local o visitante |
| /roster/get_player_information/PLAYER_INDEX[local|guest] | Devuelve la información del jugador indicado (nombre, número, etc.) |
| /roster/increment_player_score/[local|guest] /PLAYER_INDEX | Aumenta la puntuación asociada al jugador con el índice indicado |
| /roster/decrement_player_score/[local|guest] /PLAYER_INDEX | Disminuye la puntuación asociada al jugador con el índice indicado |
| /roster/get_player_score/[local|guest] /PLAYER_INDEX | Recupera la puntuación asociada al jugador con el índice indicado |
| /roster/increment_player_fauls/[local|guest] /PLAYER_INDEX | Aumenta las faltas asociadas al jugador con el índice indicado |
| /roster/decrement_player_fauls/[local|guest] /PLAYER_INDEX | Disminuye las faltas asociadas al jugador con el índice indicado |
| /roster/get_player_faults/[local|guest] /PLAYER_INDEX | Recupera las faltas asociadas al jugador con el índice indicado |
| /roster/increment_player_cautions/[local|guest] /PLAYER_INDEX | Aumenta las advertencias asociadas al jugador con el índice indicado |
| /roster/decrement_player_cautions/[local|guest] /PLAYER_INDEX | Disminuye las advertencias asociadas al jugador con el índice indicado |
| /roster/get_player_cautions/[local|guest] /PLAYER_INDEX | Recupera las advertencias asociadas al jugador con el índice indicado |
Control de temporizador
| Comando | Parámetros |
|---|---|
| /pcontrol/list_timers | Recupera la lista de temporizadores disponibles en el marcador activo |
| /pcontrol/start_timer/TIMER_NAME | Inicia el temporizador en la dirección en la que se ha definido. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar |
| /pcontrol/stop_timer/TIMER_NAME | Detiene el temporizador. Su valor no se altera. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar |
| /pcontrol/reset_timer/TIMER_NAME | Restablece el temporizador al valor inicial definido en su configuración. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar |
| /pcontrol/get_timer_time/TIMER_NAME | Recupera el valor de un temporizador. name_timer = Nombre del temporizador (o cronómetro) sobre el cual operar |
Etiquetas dinámicas y contadores automáticos
| Comando | Parámetros |
|---|---|
| /gc/list_dynamic_labels | Recupera la lista de etiquetas dinámicas disponibles en el marcador cargado |
| /gc/get_dynamic_label/VAR | Recupera el valor asignado a la variable dinámica. VAR = Identificador de la variable que se consultará |
| /gc/set_dynamic_label/VAR/ARG1 | Cambia el valor asignado a la variable dinámica. VAR = Identificador de la variable que se asignará, ARG1 = Nuevo valor a asignar |
| /gc/get_automatic_variable/VAR | Obtiene el valor de una variable automática. Estas variables se calculan al usar la lista de jugadores. VAR = Nombre de la variable. Variables existentes: local_team_score : puntuación del equipo local, local_team_fauls: faltas cometidas por el equipo local, local_team_fauls_resetable: faltas cometidas por el equipo local, pero restablecibles. guest_team_score: puntuación del equipo visitante, guest_team_fauls: faltas del equipo visitante, guest_team_fauls_resettable: faltas del equipo visitante, pero son restablecibles. |
| /gc/reset_automatic_variable/VAR | Restablece el contador a cero para variables automáticas que pueden restablecerse. VAR: Nombre de la variable restablecible (local_team_fauls_resetable o guest_team_fauls_resetable) |
Gestión de vectores
| Comando | Parámetros |
|---|---|
| /pcontrol/list_vectors | Recupera la lista de vectores disponibles en el marcador activo actual |
| /pcontrol/increment_vector_element/VECTOR_ID/INDEX/INCREMENT_VALUE | Incrementa el valor del elemento en la posición INDEX del vector VECTOR_ID. El incremento está determinado por INCREMENT_VALUE |
| /pcontrol/set_vector_element_value/VECTOR_ID/INDEX/VALUE | Establece el valor del elemento en la posición INDEX del vector VECTOR_ID. El nuevo valor está determinado por VALUE |
| /pcontrol/get_vector_element_value/VECTOR_ID/INDEX | Obtiene el valor del elemento en la posición INDEX del vector VECTOR_ID. |
| /pcontrol/get_vector_length/VECTOR_ID | Recupera el número de elementos del vector. Es decir, el tamaño definido. |
Ejemplo de uso de la API HTTP de LDSscoreboard
Veamos un ejemplo para entender claramente el funcionamiento descrito en esta documentación sobre la API HTTP. Supongamos que hemos definido un marcador que contiene una diapositiva llamada «slide1»; para solicitar al sistema que abra slide1, debemos conocer la IP del equipo y el puerto, ya que el nombre ya lo conocemos.
Si tomamos la imagen en la parte superior de la página, veremos que tenemos la IP 192.168.1.35 y el puerto 8080, por lo que deberíamos realizar una petición HTTP (abrir la página) a la dirección http://192.168.1.35:8080/pcontrol/show_slide/slide1
Para hacerlo, podemos abrir un navegador y poner la dirección en la barra de direcciones:

A continuación, si tenemos LDSscoreboard ejecutándose, deberíamos ver cómo la diapositiva llamada slide1 se activa.
IMPORTANTE
Si el nombre de la diapositiva contiene un espacio, al ser un carácter especial, debemos reemplazarlo por %20; es decir, «my slide» se traducirá como «my%20slide».
Herramientas para realizar llamadas a la API HTTP
Por supuesto, no estás restringido a tener que realizar llamadas HTTP desde un navegador; lo hemos hecho de esta manera porque es una herramienta que seguramente tienes a mano y conoces, pero existen muchas otras formas de hacerlo.
curl
curl es una herramienta de peticiones HTTP de código abierto. Está disponible en Linux, OSX y también en las versiones más recientes de Windows 10. Su uso es muy sencillo, como se puede ver en la siguiente imagen:

JavaScript
Puedes realizar un programa en Javascript, usando jquery, donde se realice una llamada HTTP, por ejemplo con este código:
timer_identifier=»my timer»;
$.getJSON(`/pcontrol/start_
.done(function (data) )
.fail(function (err) );
y cualquier lenguaje de programación te permitirá realizar este tipo de llamadas.