PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Douchette Windows CE ou Windows Mobile
Douchette Windows CE ou Windows Mobile
Débuté par Nicos77, 15 sep. 2017 08:46 - 25 réponses
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 15 septembre 2017 - 08:46
Bonjour,
Je suis en train d'acheter 1 douchette industrielle type Motorola MC9200.
Dans le but de faire des programmes de gestion de stock.

La seule chose ou j'ai un gros doute.
Dois-je la prendre en version Windows Mobile? Ou Windows CE? Je suis sur Windev Mobille 22

Merci
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 17 septembre 2017 - 14:28
Salut,

Windev Mobile te permettra de développer aussi bien pour Windows Mobile que pour Windows CE, le sujet n'est pas là. Le sujet est plutôt, lequel de ces deux OS est le mieux ?
Côté visuel de l'interface, Windows Mobile est plus joli.
Mais personnellement je préfère (de loin) Windows CE car plus fiable. Sur Windows Mobile, j'ai eu des problèmes de RAM que je n'ai jamais eu sous Windows CE.
Windows CE est un OS rustique et spartiate fait pour l'entreprise. Windows Mobile est un OS plus sophistiqué, fait pour les particuliers.

Cordialement,

Marc.
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 20 septembre 2017 - 18:24
Bonjour,

Merci pour cette réponse.
J'ai malheureusement été poussé par ma direction pour les 1er essai et je suis partis vers le Windows Mobile à cause de sa résolution plus élevé.
On verra. J'en ai pris qu'une pour le moment.
La suite sera acheté d'ici quelques semaines, une fois l'appli opérationnel.

Merci
Membre enregistré
66 messages
Popularité : +6 (6 votes)
Posté le 22 septembre 2017 - 10:33
Bonjour

peut-être trop tard mais il existe des machines (type Chinois) en Android , qui sont bien en prix et en Android tu peux aussi utiliser des téléphones normaux (voir chez certains transporteurs) avec les lecteurs 1D/2D bluetooth type boite d'allumettes
A+
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 22 septembre 2017 - 11:25
Les terminaux Chinois, j'ai essayé et je déconseille pour des appli professionnelles. Le SDK fourni l'est souvent sans aucune documentation, le matériel est de très mauvaise qualité.
L'avantage de Motorola (Zebra, Psion, Symbol, ...) c'est que le SDK est très bon et bien documenté. Et DataWedge permet de développer rapidement la gestion du lecteur code-barres, ... Pour une gestion de stock ça me semble important.
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 22 septembre 2017 - 12:03
Merci à vous.

Je reçois ma douchette lundi.
Je ne connais rien du tout en ce qui concerne les SDK etc...
J'ai préparer mon appli en WDMobile,
Après, marchera ou marchera pas? On verra Lundi :)

En fait je me suis pas du tout occupé de la partis "Scan". J'ai simplement un champs Saisie que je rempli et valide. Je suis parti du principe que la douchette allait le saisir à ma place.
Est-ce que je suis dans la mauvaise direction?

Merci
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 22 septembre 2017 - 14:20
Pour utiliser la douchette d'un terminal lecteur de codes-barres, normalement on utilise le SDK du constructeur. Grâce à lui, notre application peut commander le périphérique (lecteur code-barres). Il s'agit le plus souvent de DLL en C ou en .NET, proposant des fonctions à utiliser convenablement, c'est pourquoi la qualité de la documentation du SDK est absolument primordiale.
Mais par chance, tu n'a pas pris un terminal chinois, mais un terminal Motorola. Et Motorola a créé un outil formidable appelé ScanWedge ou DataWedge selon la version. Cet outil est un logiciel qui va permettre d'activer la lecture du code-barres, et de renvoyer son contenu vers le champ de saisie actif au moment de la lecture.
Par contre il va probablement falloir paramétrer un peu DataWedge. Il faut définir le ou les triggers (bouton de déclenchement), il faut le paramétrer pour qu'il se lance au démarrage, etc.

Attention à une chose : Si tu dois lire des codes GS1-128, il faudra configurer DataWedge pour qu'il transforme les caractères séparateurs d'AI "FNC4" en caractère imprimable. Sans quoi tu ne sera pas capable de décoder le code-barres GS1-128.

Attention aussi à ta façon de développer ton interface. Si sur un écran tu as plusieurs champs qui peuvent prendre le focus en plus du champ de saisie devant recevoir la lecture du CB, et l'opérateur scanne un CB alors que ce n'est pas le bon champ qui a le focus, alors il ne se passera rien du tout et le gars dira que ton appli ne fonctionne pas bien. C'est l'inconvénient de la lecture par DataWedge. A toi de penser correctement tes interfaces pour que, lorsque l'opérateur doit scanner quelque-chose, il n'y ait aucun autre champ à l'écran susceptible de recevoir le focus.

Après tu n'est pas obligé de demander une validation de l'opérateur à chaque lecture d'un code-barres. DataWedge (par défaut) renvoi un retour chariot à la fin d'une lecture. Si ce n'est pas la cas ça se paramètre dans le profil DataWedge. Il ne te reste qu'à appeler la procédure de traitement du code-barres depuis le code de sortie du champ de saisie, ou depuis celui de toucheAppuyée (après contrôle que ce soit bien la touche Entrée qui a été appuyée bien-sûr).

Cdt,

Marc.
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 22 septembre 2017 - 14:24
Attention aussi à un petit truc sans rapport avec le sujet. Je me suis déjà arraché les cheveux là-dessus, alors au cas où : Il peut arriver que Windev Mobile ne donne pas d'avertissement lorsque tu passes un entier sur 4 à une procédure qui attend un entier sur 8, ou inversement. Dans ce cas, en exécution ton programme plantera sur une exception que même un CAS EXCEPTION: ou QUAND EXCEPTION ne peuvent intercepter, et sans qu'aucun message d'erreur ne soit affiché.
Alors en développement Mobile, soit très scrupuleux sur le typage de tes variables.
Posté le 22 septembre 2017 - 14:56
Bjr,

Nicos77 a présenté l'énoncé suivant :
Merci à vous.

Je reçois ma douchette lundi.
Je ne connais rien du tout en ce qui concerne les SDK etc...
J'ai préparer mon appli en WDMobile, Après, marchera ou marchera pas? On
verra Lundi :)

En fait je me suis pas du tout occupé de la partis "Scan". J'ai simplement un
champs Saisie que je rempli et valide. Je suis parti du principe que la
douchette allait le saisir à ma place. Est-ce que je suis dans la mauvaise
direction?

Merci


Non, c bon...
faudra juste que tu controles le parametrage pour verifier les
caracteres de controle que la douchette peut envoyer.

ca se programme avec le lecteur lui meme normalement.. tu as des
planches de codebarres fournies qui permettent d'envoyer les commandes
qu'il faut au lecteur

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 22 septembre 2017 - 16:06
Merci à tous.

Par contre ce n'est pas un Motorola mais un Datalogic. Il y a un exemple dans WindevMobile avec un composant Datalogic. Je ne sais pas s'il sera compatible avec mon pistolet.

Merci
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 22 septembre 2017 - 16:30
Bonjour Dc,
Les planches de paramétrage c'est pour les douchettes USB. Là, Nicos77 nous parlait d'un terminal. Initialement d'un Motorola, mais il semble que ce soit maintenant un Datalogic. Memor X3 ??
Hélas je ne connais pas Datalogic. Je sais qu'il y a un SDK, mais est-ce qu'il y a l'équivalent du DataWedge, là je ne peux pas te dire.
Tu vas pouvoir effectivement jouer avec le composant Datalogic. Il sera compatible, les composants fournis par PC-SOFT sont d'une grande aide pour démarrer. Mais il est tout de même possible que tu aies quelques modif ou ajouts à faire. Tu verras sur place.

Cordialement,

Marc.


Dc a écrit :
Bjr,

Nicos77 a présenté l'énoncé suivant :
Merci à vous.

Je reçois ma douchette lundi.
Je ne connais rien du tout en ce qui concerne les SDK etc...
J'ai préparer mon appli en WDMobile, Après, marchera ou marchera pas? On
verra Lundi

En fait je me suis pas du tout occupé de la partis "Scan". J'ai simplement un
champs Saisie que je rempli et valide. Je suis parti du principe que la
douchette allait le saisir à ma place. Est-ce que je suis dans la mauvaise
direction?

Merci


Non, c bon...
faudra juste que tu controles le parametrage pour verifier les
caracteres de controle que la douchette peut envoyer.

ca se programme avec le lecteur lui meme normalement.. tu as des
planches de codebarres fournies qui permettent d'envoyer les commandes
qu'il faut au lecteur

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 22 septembre 2017 - 16:59
Marc LAZZARINI a écrit :
Bonjour Dc,
Les planches de paramétrage c'est pour les douchettes USB. Là, Nicos77 nous parlait d'un terminal. Initialement d'un Motorola, mais il semble que ce soit maintenant un Datalogic. Memor X3 ??
Hélas je ne connais pas Datalogic. Je sais qu'il y a un SDK, mais est-ce qu'il y a l'équivalent du DataWedge, là je ne peux pas te dire.
Tu vas pouvoir effectivement jouer avec le composant Datalogic. Il sera compatible, les composants fournis par PC-SOFT sont d'une grande aide pour démarrer. Mais il est tout de même possible que tu aies quelques modif ou ajouts à faire. Tu verras sur place.

Cordialement,

Marc.


Dc a écrit :
Bjr,

Nicos77 a présenté l'énoncé suivant :
Merci à vous.

Je reçois ma douchette lundi.
Je ne connais rien du tout en ce qui concerne les SDK etc...
J'ai préparer mon appli en WDMobile, Après, marchera ou marchera pas? On
verra Lundi

En fait je me suis pas du tout occupé de la partis "Scan". J'ai simplement un
champs Saisie que je rempli et valide. Je suis parti du principe que la
douchette allait le saisir à ma place. Est-ce que je suis dans la mauvaise
direction?

Merci


Non, c bon...
faudra juste que tu controles le parametrage pour verifier les
caracteres de controle que la douchette peut envoyer.

ca se programme avec le lecteur lui meme normalement.. tu as des
planches de codebarres fournies qui permettent d'envoyer les commandes
qu'il faut au lecteur

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------




datalogic skorpio x3
A lundi pour la suite ;)

Bon week end
Posté le 22 septembre 2017 - 17:36
re..

Marc LAZZARINI a couché sur son écran :
Bonjour Dc,
Les planches de paramétrage c'est pour les douchettes USB. Là, Nicos77 nous
parlait d'un terminal. Initialement d'un Motorola, mais il semble que ce soit
maintenant un Datalogic. Memor X3 ??


Les planches de parametrage, c 'est quand tu veux l'utiliser en
emulation clavier.
le sdk , c'est quand tu le geres comme un peripherique.

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 22 septembre 2017 - 18:53
Tu parles bien d'un terminal ?
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 25 septembre 2017 - 16:33
Bonjour,

Alors j'ai le fameux terminal. Et ça fonctionne "presque"

Il à fallu que je galère avec mon windows 10 pour voir le pistolet, que je redimensionne un peu mes fenêtres. et j'ai réussi à copier les .cab dans la mémoire puis installer.

J'ai tout de même un souci dont je cherche la solution depuis 1h30. Peut être un truc tout bête.

Je vous met mon code :
SI ToucheEnfoncée(VK_RETURN) ALORS
ExécuteTraitement(BTN_OK,trtClic)
FIN


L'idée est que quand l'utilisateur fait "Return" "Entrée" "CR" le traitement du bouton soit enclenché.
Ca fonctionne bien en simulation sous windows. Ca fonctionne bien lorsque j'appuie sur Enter au clavier du pistolet.
Mais pas lorsque je bip à la douchette.
Si je parametre un [CR] [CR] en fin de scan ca marche. Mais ca me fait réèlement 2 CR. Lorsque je fait qu'un seul [CR], j'ai l'impression qu'il met le focus au bouton mais pas le traitement.
Dans les autres champs après chaque scan, il descend bien au champs suivant.

Avez-vous une idée?

J'ai mis ces constantes en début de projet :
EXTERNE "KeyConst.WL"
EXTERNE "WinConst.WL"



Merci
Message modifié, 25 septembre 2017 - 16:34
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 25 septembre 2017 - 17:43
Salut,

tu as essayé avec toucheAppuyée ?
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 26 septembre 2017 - 12:00
Salut,

Je ne trouve pas de fonctione toucheappuyée.

La seule chose que je trouve c'est ExécuteTraitement(BTN_OK,trtToucheAppuyée)

Mais ca ne fonctionne pas non plus

Merci
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 26 septembre 2017 - 12:17
Il y a t'il une différence entre un [CR] envoyé par le terminal et un VK_RETURN ?

Merci
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 26 septembre 2017 - 13:12
Un CR est bien un VK_RETURN.
Tu dois activer le traitement touche Appuyée dans ton code. Sous l'éditeur, affiche le code de ton champ de saisie. En bas de la zone de traitements, tu dois avoir une barre avec quelques icônes représentant les traitements courants. Et tu as 3 petits points. Tu clique dessus, et tu auras accès à la fenêtre de sélection de tous les traitements possibles pour ton champ. Et là tu trouvera normalement "Touche appuyée (WM_CHAR)".
De mémoire c'est celui-là qu'il faut activer, et c'est là dedans que tu mets le code "Si ToucheEnfoncée(VK_RETURN)...".
D'ailleurs il me vient une question toute bête : actuellement tu l'as mis où ton code "Si ToucheEnfoncée..." ?
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 26 septembre 2017 - 14:22
Oui oui.

Alors en fait je l'avais mis sur le ToucheEnfoncée WM_KEYDOWN. J'ai essayé sur le WM_CHAR et j'ai le même souci.
:(
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 26 septembre 2017 - 14:39
je viens d'essayer sur l’événement perte de focus.
WM_KILLFOCUS
Le code
ExécuteTraitement(BTN_OK,trtClic)


Et ca fonctionne.
Ça ne résous pas mon souci de VK_RETURN mais çà dépanne
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 26 septembre 2017 - 16:05
Ok, voilà comment je procède :

Dans le code d'initialisation de ma fenêtre
// gnEvenement est un entier déclaré dans le Déclaration Globaldes de la fenêtre ou du projet
gnEvenement = Evénement("AppuiTouche", MoiMême..Nom + ".*",WM_KEYDOWN)


Procédure AppuiTouche déclarée dans chaque fenêtre, adaptée aux besoins de la fenêtre :

Procedure AppuiTouche()
bRetour est un booléen = Vrai // Renvoyer la touche appuyée ou non

SELON _EVE.wParam

CAS 27 // ESC
Ferme

CAS 13 // Enter
SI ChampEnCours()="SAI_Saisie" ALORS SortieSaisie()
// Moi c'est dans la procédure SortieSaisie() que je gère le traitement du code-barres scanné, mais tu peux aussi bien faire un ExécuteTraitement(BTN_Ok,trtClic)"

CAS 9 // TAB

CAS 37 // flèche gauche

CAS 39 // flèche droite

CAS 38 // flèche haut

CAS 40 // flèche bas

CAS 193 // Touche spéciale haut gauche (ça ça dépend des terminaux. Là c'est un Motorola)

CAS 194 // Touche spéciale haut droite

CAS 8 // Touche effacer

AUTRE CAS
SI ChampEnCours()<> "SAI_Saisie" ALORS
// ça c'est pour forcer le retour du focus dans mon champ de lecture du code-barres, mais dans ton cas je ne pense pas que ce soit utile.
_EVE.Retour = -1
DonneFocus(SAI_Saisie)
FIN

FIN
// bRetour = faux pour ne pas renvoyer l’événement à Windows. L'appui touche est sans effet. C'est à dire que tu as pu traiter ce que tu avais à traiter, mais la touche n'est pas renvoyée vers l'IHM.
SI bRetour = Faux ALORS _EVE.Retour = 1


Si tu adaptes ce code, tu devrais pouvoir maîtriser totalement les saisies sur ta fenêtre.

Cordialement,

Marc.
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 26 septembre 2017 - 17:13
Merci super

Je devrais pour voir regarder ça demain.
Je te tiens au courant.

Merci
Membre enregistré
63 messages
Popularité : +1 (1 vote)
Posté le 04 octobre 2017 - 11:59
Bonjour,

Pour info je n'ai pas encore pu tester votre code. Je pourrai reprendre le projet ce lundi je pense.
Je reviendrais vers vous.

Merci
Posté le 15 avril 2020 - 18:36
Bonjour Marc,

Je cherche une solution pour récupérer les caractères de contrôles d'un code barres GS1-128 pour décomposer le n° de lot , la DLUO , le GTIN , ... Je pense que je dois paramétrer mon lecteur (Un ZEBRA sous android) mais il y a maintenant des dizaines de paramètres à renseigner et je ne trouve pas !!

Pouvez-vous m'aider ?

Bien à vous
Membre enregistré
232 messages
Popularité : +23 (23 votes)
Posté le 16 avril 2020 - 11:52
Bonjour Hervé,

Ben, en fait ça n'a que très très peu changé par rapport à avant sous Windows CE …

Le principe :
Dans ton profil DataWedge, dans le type de sortie que tu utilises (Sortie Touches probablement), tu vas dans formatage de données avancé et tu créés une nouvelle règle.
Dans cette règle tu ne touches rien (dans la plupart des cas les paramètres par défaut conviennent bien) sauf que tu ajoutes une simple action :
Remplacer la Chaine
Chaine : \x1d (ça c'est le code hexadécimal du séparateur d'AI présent dans les codes GS1)
Chaine : # (ça c'est par quoi tes séparateurs d'AI vont être remplacés)

Et c'est tout.

En faisant ça, les séparateurs d'AI seront visibles puisque transformés en caractère #. J'ai mis le # mais tu mets bien ce que tu veux comme caractère ou groupe de caractères…

Après à toi de savoir interpréter le GS1 128. Il y a toute la doc nécessaire facilement accessible sur le net pour savoir interpréter les AI, leur signification et la valeur des données.

Tu me diras si ça t'a aidé.

Bonne journée,

Marc.