Pilotage de l'activation du scanner en environnement Telnet - VT. Objectif Dans une application VT, il peut être souhaitable de bloquer le scanner tant que le serveur n'a pas traité les saisies effectuées par l'opérateur. Dans cet environnement la difficulté consiste à déterminer quand le serveur a traité la saisie utilisateur. Le flux Telnet VT En mode VT le serveur effectue généralement un écho de tout ce qui est saisi par l'utilisateur, de manière à le guider pendant la saisie. Le sous-système qui gère cet "écho" souvent n'est pas le même que celui qui gère l'application. Dans la plupart des systèmes nous trouvons le schéma suivant: Application Telnet Echo (OS) serveur TCP/IP (OS) Terminal File d'attente File d'attente File d'attente Nous voyons qu'à plusieurs niveaux de la pile de transmission il peut y avoir des files d'attente avec des transactions. La couche TCP/IP sortante gère une file d'attente de sortie. La pile protocolaire TCP/IP garde des paquets en attente du traitement par la couche Telnet. La couche Telnet, effectue un écho distant (renvoi vers le terminal) de chaque caractère envoyé, et met dans une file d'attente les données à traiter par l'application. Synchroniser la saisie de données (terminal) avec l'application (est une tâche complexe)
Lors de la lecture d'un code à barres le processus est le suivant: Saisie d'un CB par l'utilisateur (terminal) Envoi par TCP/IP-Telnet (terminal) Réception par la couche TCP/IP-Telnet Echo de saisie Envoi vers l'application Echo de saisie: La procédure de base (Telnet) effectue un écho vers l'utilisateur de ce qui est saisi, pour lui permettre de visualiser ce qui est fait. Ce flux de données (écho) peut être plus ou moins complexe et comprendre: Seulement les données saisies Des données et des séquences escape (placement curseur, couleurs, etc) Il est difficile au niveau du terminal de déterminer dans le flux d'entrée ce qui correspond à un "écho" Telnet ou un affichage applicatif. L'écho Telnet est généralement produit mécaniquement par la couche Telnet/Tcpip quel que soit l'état de l'application. Activation / désactivation du scanner Des développements seront réalisés pour permettre de désactiver le scanner de plusieurs manières. Désactivation automatique du scanner () Dans WireLess TelNet VT Il existe un paramètre ( [SCANNER] ) qui permet de désactiver automatiquement le scanner après une lecture réussie, et de l'activer seulement selon les données reçues en provenance du host. A la réception d'une donnée quelconque [SCANNER] =1. A la réception d'une donnée de texte affichable [SCANNER] =2. A la réception d'une commande de beep (BEL-0x07) [SCANNER] =3. A la réception d'une séquence escape précise (ESC%1S) [SCANNER] =4.
A la découverte d'un texte affiché [SCANNER] =4 et action [LAUNCHEXE] 'SCANACTIVATE' avec le texte à découvrir. Désactivation du scanner par présence d'un texte à l'écran A la découverte d'un texte affiché le scanner est désactivé. Si le texte n'est pas présent, le scanner est activé. [SCANNER] =4 et Action [LAUNCHEXE] 'SCANDEACTIVATE' avec le texte à découvrir. La solution de désactiver le scanner par un affichage à l'écran peut être inefficace. En effet, le besoin de bloquer le scanner vient dans la situation où le serveur est saturé des demandes et met du temps à répondre, tandis que l'utilisateur peut continuer à scanner. Dans ce contexte, l'affichage qui provoque le blocage du scanner peut arriver un certain temps après la lecture, laissant à l'opérateur la possibilité d'effectuer des saisies.
Développements à réaliser pour réactiver le scanner avec un texte Nous préconisons l'utilisation du mode de désactivation automatique, avec réactivation du scanner à la découverte d'un texte à un endroit précis de l'écran. Pour utiliser le mode il est nécessaire de placer un texte quelconque à un endroit donné de l'écran sur toutes les grilles de saisie qui utilisent le code à barres. Il est nécessaire que ce texte disparaisse lors du traitement des informations pour que le scanner ne se réactive pas lorsqu'il n'est pas requis. Dans l'exemple qui suit, le texte "** LIRE CB **" est utilisé pour réactiver le scanner. Lecture code à barres Produit 046563 ECROUS 1/4 plat ** LIRE CB ** Scanner actif, désactivation après lecture.
Traitement de la saisie Produit 046563 ECROUS 1/4 plat 23849403939324 ** TRAITEMENT ** Scanner inactif, désactivation automatique. Lecture code à barres Produit 046532 Rondelle acier 2mm ** LIRE CB ** Scanner actif, désactivation après lecture.