Comme @bof à dit, il a les solutions par le JavaScript et peut-être des extension système pour aider à ce faire, mais dépend du produit et des restrictions imposer par le système et le navigateur.
De plus, le Javascript à des limitations d’autorisations pour accéder au système hôte. La solution serait d’utiliser une extension de navigateur qui permet d’avoir plus de liberté, mais encore la, tu va avoir surement des problèmes pour communiquer avec la balance.
Si le fabriquant offre des outils pour l’exécution de la balance dans certains environnement, tu peux voir alors tes solutions. Si les balances ne sont pas encore acheté, alors magasine bien leur capacités à ce niveau.
Tu peux être chanceux et tomber sur un modèle populaire avec des libs officiels comme open source qui pourrons et permettre de communiquer de manière plus libre. Si tu peux, cherche des librairie pour ce genre de produit pour voir ce qui en ressort comme modèle, et ainsi aligner ton choix.
Attention à la compatibilité Linux. Tu as souvent des WinDevice avec le USB. Dans l’expédition, les logiciels sont souvent sous Windows. Alors vérifie bien le support Linux et le support pour le ARM. Le pilote peut être capricieux.
Si tu as accès au matériel et à l’information de lecture, moi je te suggère de te faire un moyen simple de l’inscrire avec un programme qui marchera en arrière plan, comme un service. Ce service serait configuré sur une touche ou un bouton (si tu utilise des RPi et le GPIO) pour lancer une mise en mémoire (clipboard, comme avec Copier, CTRL+C) et un collage (coller, CTRL+V).
Ceci n’est qu’un exemple de l’idée, mais le programme pourrais émuler lui-même les touche à entrer pour inscrire les numéro, comme un scanneur de code à barre physique fait.
Avec cette solution, tu peux alors l’utiliser n’importe où, par exemple, si plusieurs interfaces sont possibles (dans les transactions), et de faciliter l’utilisation. L’utilisateur n’a qu’à sélectionner la cellule ou il doit l’inscrire et appuyer sur un bouton.
En plus, si tu as divers modèles de balances compatibles mais avec des différences de lecture, tu peux ajuster le programme en conséquence. Ça évite aussi de rendre le site de transaction non fonctionnel si une erreur de code apparait, surtout si tu dois altérer tes pages du service, sans utiliser d’injecteur de javascript.
Et dernier avantage, si tu développe ce genre d’application, tu peux tester sur un seul poste et l’intégrer par la suite aux autres si c’est concluant. Tu peux par exemple pré-configurer des commandes de reset, changer le port d’écoute (multiple balance ou si d’un poste à l’autre le port USB change de nom)
En extra…
Si ton système de transaction à un API, tu pourrais également programmer une interface optimisé en Python. Un affichage par un script Python est beaucoup plus léger que d’utiliser un navigateur Web. À la limite, sauf si tu exploite à gros débit, tu pourrais avoir des caisses avec des RPi Zero. De mon expérience, les navigateurs Web sur RPi, ce n’est pas « top », surtout Chrome(ium). Alors ce serait une option à envisager, car tu pourras faire ton intégration de balance et même plus.