Documentation

Matériel qu’une application peut utiliser

Une application sur un écran peut lire des scanners de codes à barres et des lecteurs de badges, des étiquettes NFC, la caméra, le microphone, des appareils série, des lignes GPIO, des capteurs Bluetooth LE et des imprimantes de reçus, et elle informe votre agent de ce qui s’est passé. Cette page est l’unique tableau de ce que chaque Player offre.

Ce qu’une application peut atteindre

Une application est la page que votre agent téléverse et place sur un écran. Le Player lui donne le matériel de l’appareil sur lequel il s’exécute par window.screenrig.device : l’application écoute un scan, pilote un relais ou imprime un reçu, et rapporte le résultat à votre agent avec emit, de sorte que « badge scanné » ou « service demandé » arrive dans le journal des événements du projet.

Chaque type de matériel a son propre indicateur de capacité. Un indicateur n’est vrai que sur un Player qui offre la fonctionnalité, sur un appareil qui a le matériel, pour la page qui contrôle l’écran, de sorte qu’une même version s’exécute aussi sur un écran sans le matériel. La référence du SDK liste les indicateurs, les appels et les erreurs.

Fonctionnalités de page sur chaque Player qui exécute des applications

La visibilité de la page, le minutage de la page, les params de lancement et les données d’écran dans context fonctionnent sur chaque Player qui exécute des applications : l’application Web Player, Android (Google Play et l’Amazon Signage Stick), Linux et Raspberry Pi, macOS, Windows, BrightSign, Samsung Smart Signage (Tizen) et LG webOS Signage. Ils n’exigent aucun matériel. Apple TV, iPhone et iPad n’exécutent aucune application.

Ce que chaque Player offre

Une cellule nomme ce que fait le Player. « Oui » est la fonctionnalité telle que la ligne la décrit, et « Non » est un Player qui ne l’offre pas. Les appels de chaque ligne sont dans la référence du SDK.

CapacitéAndroidLinux et Raspberry PimacOSWindowsBrightSignSamsung (Tizen), LG webOSApplication Web du lecteur
Visibilité de la page, minutage de la page, params de lancement et données d’écran dans contextOuiOuiOuiOuiOuiOuiOui
Scanners de codes à barres et lecteurs de badges (émulation de clavier)OuiOuiOuiNonOuiOuiOui
Étiquettes NFCOuiNonNonNonNonNonNon
Lecture de codes-barres par caméraOuiOuiOuiNonNonNonNon
Comptage des personnesOuiNonOuiNonNonNonNon
Niveau sonore du microphoneOuiOuiOuiOuiNonNonNon
USB et série RS-232Oui (adaptateurs USB CDC-ACM)OuiNonOuiOui (le port RS-232 intégré et le série USB)NonWebSerial, kiosque ChromeOS seulement
GPIOLà où l’appareil expose une puce GPIO sysfs accessible en écriture (sans pull)Raspberry Pi ; autres cartes avec SCREENRIG_GPIO_CHIPNonNonOui : GPIO 0 à 7 sur le connecteur GPIO, ou un adaptateur USB-GPIO BrightSignNonNon
Capteurs Bluetooth LE (lecture et notification)Oui (Android 12 et plus récent)Oui (le BlueZ de l’hôte)OuiOuiNonNonNon
Imprimantes de reçus (ESC/POS)Oui (USB)OuiNonOuiNonNonNon
Impression PDFNonOui (CUPS)NonNonNonNonNon
Scanners de point de vente USB (WebHID)NonNonNonNonNonNonKiosque ChromeOS seulement
Télécommande infrarouge (réception et envoi)Envoi, sur un appareil doté d’un émetteur infrarougeNonNonNonRéception et envoiNonNon
Messages UDP vers et depuis le réseau de l’écranOuiOuiNonOuiOuiNonNon
Entrée HDMI en directNonNonNonNonOui : XT1143, XT1144, XT1145, XT2144 et XT2145NonNon

Android couvre les Players Google Play et Amazon Signage Stick. Le paquet Raspberry Pi est le Player Linux.

Notes pour chaque Player

Android et l’Amazon Signage Stick

Les ports série sont des adaptateurs série USB CDC-ACM, les imprimantes sont des imprimantes USB, le Bluetooth LE exige Android 12 ou plus récent, les lignes GPIO exigent un appareil qui expose une puce GPIO sysfs accessible en écriture, et l’infrarouge envoie par l’émetteur propre à l’appareil lorsqu’il en a un (Android ne reçoit pas d’infrarouge).

Deux types d’autorisation s’appliquent, et aucun n’interrompt un écran en cours de lecture :

  • La caméra, le microphone et le Bluetooth sont accordés une seule fois lors de la configuration de l’appareil, dans les paramètres d’applications d’Android ou avec adb shell pm grant. Le Player ne les demande jamais. Tant que vous ne les accordez pas, la page ne détient aucun indicateur de caméra ou de microphone, et les appels Bluetooth rejettent ble_unavailable.
  • Les appareils USB font apparaître la boîte de dialogue USB d’Android seulement lorsqu’une page ouvre un port série ou imprime sur une imprimante USB pour la première fois, une fois pour chaque appareil. Un scanner de codes à barres ou un lecteur de badges qui saisit comme un clavier n’exige aucune autorisation.

Linux et Raspberry Pi

Le paquet Raspberry Pi est le Player Linux, et chaque ligne marquée pour Linux fonctionne sur un Pi. La barrette GPIO d’un Pi est trouvée d’elle-même sur un Pi 3, 4 et 5 ; une autre carte nomme sa puce avec SCREENRIG_GPIO_CHIP. Boutons et relais sur GPIO décrit le câblage et l’accès du Player à la puce. Le Bluetooth LE utilise le BlueZ de l’hôte, et l’impression PDF passe par CUPS : une imprimante PDF est donc une file CUPS.

macOS

macOS offre les scanners à émulation de clavier, la caméra, le microphone et le Bluetooth LE. Il n’a aucun appel série, GPIO ou d’impression.

Windows

Windows offre le microphone, les ports série, le Bluetooth LE, les imprimantes de reçus et les sockets UDP. Il n’a pas de capture par émulation de clavier : le Player ne peut pas savoir quand un champ de la page a le focus, donc il ne capte pas les frappes d’un scanner, et un scanner saisit dans le champ actif de la page comme n’importe quel clavier. La caméra et le GPIO ne sont pas offerts.

BrightSign

Une application sur un lecteur BrightSign lit son port RS-232 intégré et ses appareils série USB, des scanners et des lecteurs de badges à émulation de clavier, ainsi que des lignes GPIO : broches 0 à 7 du connecteur GPIO, expanseurs GPIO USB, et lignes et DEL des cartes de boutons BP200 et BP900. Elle reçoit des codes infrarouges d’une télécommande, envoie des codes infrarouges à un téléviseur ou à un équipement AV, envoie et reçoit des messages UDP pour Crestron, AMX, Q-SYS et des contrôleurs de spectacle, et affiche l’image en direct de l’entrée HDMI du lecteur sur les XT1143, XT1144, XT1145, XT2144 et XT2145. Boutons et relais sur GPIO liste les plages de broches, et Lecteurs BrightSign décrit le lecteur.

Samsung Smart Signage (Tizen) et LG webOS Signage

Ces Players exécutent les applications dans le Player du navigateur. Ils obtiennent les fonctionnalités de page et la lecture par émulation de clavier partout où un scanner ou un lecteur de badges de type clavier est branché, et aucun autre matériel. WebSerial et WebHID n’y sont pas offerts.

L’application Web Player et ChromeOS

Dans l’application Web Player, un scanner est un lecteur à émulation de clavier. Les ports série WebSerial et les scanners de point de vente WebHID ne fonctionnent que sur un kiosque ChromeOS. Chrome accorde un port série au Player par sa politique d’entreprise SerialAllowUsbDevicesForUrls ou SerialAllowAllPortsForUrls ; la section Kiosque ChromeOS configure le kiosque.

Confidentialité

La caméra est analysée sur l’appareil et aucune image ne le quitte, et aucun son ne quitte l’appareil.

MQTT et appareils sur le réseau

Le matériel sur le réseau propre de l’écran n’exige aucun indicateur. Une application récupère des données d’un appareil du réseau et se connecte à l’écouteur WebSocket d’un courtier MQTT, et la page du SDK décrit les deux : S’abonner à MQTT et Joindre les appareils du réseau de l’écran. Pages sur le réseau de l’écran liste ce que chaque Player atteint : Samsung Smart Signage (Tizen), LG webOS Signage et BrightSign n’atteignent que les adresses https:// et wss://.

Questions

Quels Players lisent un scanner de codes à barres ou un lecteur de badges ?
Android, Linux et Raspberry Pi, macOS, BrightSign, Samsung Smart Signage (Tizen), LG webOS Signage et l’application Web Player lisent un scanner qui saisit comme un clavier. Windows ne capte pas les frappes du scanner.
Un écran Raspberry Pi peut-il réagir à un bouton ou commuter un relais ?
Oui. Un Pi 3, 4 ou 5 sous le Player Linux lit des boutons et des contacts sur sa barrette GPIO et pilote des relais par une carte relais.
Une application a-t-elle besoin d’une autorisation de la personne devant l’écran ?
Pas devant l’écran. Sur Android, la caméra, le microphone et le Bluetooth sont accordés une seule fois lors de la configuration de l’appareil, et la boîte de dialogue USB n’apparaît que la première fois qu’une page utilise un port série USB ou une imprimante, une fois pour chaque appareil.
La caméra envoie-t-elle des images quelque part ?
Non. La caméra est analysée sur l’appareil et aucune image ne le quitte.
Cela coûte-t-il quelque chose ?
screenRIG est gratuit. Le scanner, le capteur, la carte relais ou l’imprimante sont à votre charge.