PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Recommandation pour utilisation code barre et douchette
Recommandation pour utilisation code barre et douchette
Débuté par MOSOFT, 15 juil. 2020 17:06 - 11 réponses
Membre enregistré
5 messages
Posté le 15 juillet 2020 - 17:06
Bonjour,

Je souhaite mettre en place un système de code barre pour gérer la traçabilité des produits dans un stock.
Je pense utiliser une douchette pour lire les code barre.

Pourriez-vous me recommander un modèle de douchette? (présence dans un atelier de produits chimiques et un quai de chargement)

Je souhaite également que la lecture d'un code barre (bon de livraison ou étiquette produit) déclenche une interaction en positionnant le programme Windev, en cours exécution sur le PC auquel est relié la douchette, sur une fenêtre correspondant au code barre lu. Dois-je par exemple mettre en place une "tâche parallèle"? Est-ce que ce fonctionnement implique un choix particulier de douchette?

Merci pour vos conseils sur le choix de la douchette et sur la méthode d’implémentation dans mon programme.

Cordialement
Membre enregistré
1 639 messages
Posté le 16 juillet 2020 - 10:01
Hello,

Tu dois déterminer le type de code barre que tu vas utiliser ? (EAN13, Code39, QRcode etc etc.. y'en a plein)
Une fois ce choix fait, tu pourras choisir la douchette (capable donc de lire le type que tu auras choisi)

Ensuite, pour la gestion de la douchette dans Windev, ce n'est que de l'emulation clavier en fait, donc un champ de saisie suffit en fait.

A savoir que les douchettes sont paramétrables (voir leur documentation) pour qu'elle ajouter un RC ou non a la fin de la saisie.
Membre enregistré
49 messages
Posté le 16 juillet 2020 - 10:15
Salut,

Tu peux aussi regarder le champ Code-barres dans les exemples unitaires.

Bon Dev
Membre enregistré
4 223 messages
Posté le 16 juillet 2020 - 10:32
MOSOFT a écrit :
Je souhaite également que la lecture d'un code barre (bon de livraison ou étiquette produit) déclenche une interaction en positionnant le programme Windev, en cours exécution sur le PC auquel est relié la douchette, sur une fenêtre correspondant au code barre lu. Dois-je par exemple mettre en place une "tâche parallèle"?

Il suffit en fin de saisie de faire une recherche sur la PK.

--
Il y a peut être plus simple, mais, ça tourne
Posté le 16 juillet 2020 - 13:57
>>>Je souhaite également que la lecture d'un code barre (bon de livraison ou étiquette produit) déclenche une interaction en positionnant le programme Windev, en cours exécution sur le PC auquel est relié la douchette, sur une fenêtre correspondant au code barre lu<<<

il y a deux solutions :
1- la plus compliquée : mettre la douchette en mode série/USB et utiliser les évènéments d'arrivée (fonctions de gestion des ports série) pour savoir quand un code barre a été lu

2- la plus simple : mettre la douchette en mode émulation clavier et la paramétrer pour qu'elle envoie un PREFIXE CONNU avant chaque code barre (ca se fait en scannant des codes barres spéciaux indiqués dans la doc de la douchette)... Une fois que c'est fait, il suffti que tu laisse ta fenêtre de scan code barre toujours ouverte, et hors écran quand pas nécessaire, et que tu mettes le PREFIXE en question comme raccourci de ton champ de saisie... Dans le code d'entrée en saisi, tu rend la fenêtre visible, et tu as fini

Quand à te reccomander une douchette, non, pas possible... Il y a tout simplement trop de modèles de formes et de caractéristiques différentes. On ne peut pas reccomander sans avoir tous les détails de l'utilisation prévue
Membre enregistré
5 messages
Posté le 16 juillet 2020 - 14:33
Bonjour,

Que veut dire "faire une recherche sur la PK"?

Merci
Membre enregistré
4 223 messages
Posté le 16 juillet 2020 - 14:54
Une recherche sur la clé primaire

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
5 messages
Posté le 16 juillet 2020 - 17:14
Bonjour François,

Merci pour ta réponse.

Concernant le "type de code barre", je suis "libre".
Mon but est d'avoir un identifiant, je partirai donc un format 1D, type EAN 13 ou CODE128 qui semblent des standards.

Du coup, y-t-il une marque de douchette "qui sort du lot" par sa robustesse et fiabilité?

Merci
Membre enregistré
5 messages
Posté le 16 juillet 2020 - 17:19
Argus a écrit :
Je souhaite également que la lecture d'un code barre (bon de livraison ou étiquette produit) déclenche une interaction en positionnant le programme Windev, en cours exécution sur le PC auquel est relié la douchette, sur une fenêtre correspondant au code barre lu<<<

il y a deux solutions :
1- la plus compliquée : mettre la douchette en mode série/USB et utiliser les évènéments d'arrivée (fonctions de gestion des ports série) pour savoir quand un code barre a été lu

2- la plus simple : mettre la douchette en mode émulation clavier et la paramétrer pour qu'elle envoie un PREFIXE CONNU avant chaque code barre (ca se fait en scannant des codes barres spéciaux indiqués dans la doc de la douchette)... Une fois que c'est fait, il suffti que tu laisse ta fenêtre de scan code barre toujours ouverte, et hors écran quand pas nécessaire, et que tu mettes le PREFIXE en question comme raccourci de ton champ de saisie... Dans le code d'entrée en saisi, tu rend la fenêtre visible, et tu as fini

Quand à te reccomander une douchette, non, pas possible... Il y a tout simplement trop de modèles de formes et de caractéristiques différentes. On ne peut pas reccomander sans avoir tous les détails de l'utilisation prévue




Merci Argus, cela répond à ma question concernant la gestion des évènements.
Membre enregistré
4 223 messages
Posté le 16 juillet 2020 - 18:25
MOSOFT a écrit :
Du coup, y-t-il une marque de douchette "qui sort du lot" par sa robustesse et fiabilité?

Ton revendeur devrait pouvoir te renseigner. C'est son boulot.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
4 messages
Posté le 16 juillet 2020 - 23:06
Pour choisir le type de code barre va sur le lien suivant: https://www.normapremier.com/code-barre/
Pour le choix de la douchette, personnellement je commande des Honeywell reconditionnées sur aliexpress, prix imbattable pour un produit de qualité, attention aux marques chinoises moins chères mais inadaptées, sinon le prix sur les sites de ventes français tourne dans les 100/120€ pièce. Toutes les marques sérieuses lisent tous les types de codes barre (2D) et il est complétement inutile de sélectionner des modèles hors de prix.
Pour la lecture du code par l'application, je procède de la manière suivante:
Un champ saisie caché ou pas suivant besoin détenant le focus, exploitation dans l'événement touche enfoncée du code <RC> envoyé en fin de trame par la douchette et si j'ai besoin de différencier une action "clavier" de la douchette j'utilise un timer d'environ 300 à 5400 ms déclenché par le premier caractère, et pour valider une lecture douchette il faut réunir les conditions suivantes
1) Réception <RC>
2) Timer non expiré
3) Au mois X caractères dans la trame
Et après en fonction du code reçu tu fais ce que tu veux ...
La durée du timer sera aussi fonction de la longueur maxi de la trame à recevoir, avec une marge de tolérance à tester.
J'utilise tout cela dans mon entreprise
Membre enregistré
3 messages
Posté le 17 juillet 2020 - 09:30
Bonjour,

Travaillant depuis 30 ans dans le domaine de l'identification automatique et le code barre, je vous conseille tout de même de rester dans des marques reconnues comme Zebra qui offrent d'une part une très large gamme répondant à tous les besoins et d'autre part offrent également un service professionnel avec support en France ou local.

La connexion en mode émulation clavier (port USB) est la solution la plus simple à mettre en place. Il vous suffit alors:

1. D'intercepter les saisies clavier
// Intercepter les actions sur le clavier
Evénement("onToucheEnfoncée", ".*", WM_CHAR) // A mettre dans le code d'initialisation de la fenêtre

2. De gérer ce que vous interceptez dans la procédure onToucheenfoncée

PROCEDURE onToucheEnfoncée(_Message, wParam, lParam)

// Traitement selon le code clavier
SELON wParam
//CAS VK_TAB : Trace("Touche <TAB> Enfoncée")
//CAS VK_LEFT : Trace("Touche <Flêche Gauche> Enfoncée")
//CAS VK_RIGHT : Trace("Touche <Flêche Droite> Enfoncée")
//CAS VK_UP : Trace("Touche <Flêche Haut> Enfoncée")
//CAS VK_DOWN : Trace("Touche <Flêche Bas> Enfoncée")
CAS 123 : RepriseSaisie(SAI_CodeBarre)
AUTRE CAS : Trace("Autre touche : Code = " + wParam)
FIN

(Dans l'exemple ci-dessus, le caractère qui nous intéresse est le caractère «{» (accolade ouverte).
Note: mettre un champ de saisie texte "SAI_CodeBarre" dans votre fenêtre.

3. Sur la douchette commandée, programmez une touche en "préambule" avant l'envoi du code scannée. Exemple:

Votre code barre représente "1234567890123".
Si vous le lisez sans programmation aucune, vous obtiendrez "1234567890123".
Après programmation d'un caractère en "préambule" vous obtiendrez "{1234567890123".

Note: vous devez rajouter une tabulation (TAB) ou Enter (RC) après lecture.

Chez Zebra, le programme 123Scan permet de TOUT programmer sur votre douchette.

4. Dans la procédure onToucheEnfoncée, on "attrape" le caractère ASC 123 qui représente l'accolade ouverte que l'on a rajouté à la lecture du code barre en entête de celui ci et on demande alors au logiciel ce se positionner dans le champ "SAI_CodeBarre" (repriseSaisie).

5. On traite alors dans le champ de saisie "SAI_CodeBarre" ce que l'on veut faire avec le code lu.
On peut dès lors tout faire en fonction du contenu du code barre.
L'accolade ouverte nous assure que le code lu arrive dans le champ "SAI_CodeBarre".
Ensuite, il suffit d'analyser la suite du code lu.


Note: Le code barre lui-même peut contenir un caractère spécial en entête qui peut alors être récupéré et influencer le traitement...

Bien cordialement.

François.