PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Ecrire sur l'afficheur LCD d'une caisse enregistreuse
Ecrire sur l'afficheur LCD d'une caisse enregistreuse
Iniciado por NiceBel, 27,ene. 2021 23:28 - 11 respuestas
Miembro registrado
513 mensajes
Popularité : +7 (7 votes)
Publicado el 27,enero 2021 - 23:28
Bonjour,

Sur une caisse enregistreuse de type: Mutex, j'essai de communiquer avec l'afficheur LCD à travers le port com 2 afin d'y afficher les messages adéquats sans succès, ça fait maintenant plus qu'une semaine d'essais ..

1- Déjà je suis sûr que c'est le port com2 car via un petit utilitaire du fournisseur j'arrive à écrire sur l'afficheur via COM2 !
2- J'ai déjà réussi à communiquer avec l'afficheur LCD sur d'autres caisses pas cella ..
(Pour les autres caisses y'avait un driver un peut développé que je pouvais paramétré sur les options: Charactere: FRANCE,Commande: ESC/POS)
3- D'autres logiciels puisse par défaut communiquer avec l'afficheur de cette caisse Mutex ..
4- Voici le code:

bMyserial est un booléen
n est un entier = Val(ChaîneSupprime(SAI_COM,"COM",SansCasse))
sFerme(n)
Multitâche(-10)
bMyserial = sOuvre(n,2000,2000)
SI bMyserial ALORS
//info(n,SAI_taux,SAI_parite,SAI_nbBitsdonnes,SAI_nbBitsStop)
sFixeParamètre(n,SAI_taux,SAI_parite,SAI_nbBitsdonnes,SAI_nbBitsStop,SAI_DTR,SAI_RTS,SAI_XON)
ToastAffiche("Connected !!",toastCourt,cvMilieu,chCentre,VertPastel)
Ecrit_Sur_Lafficheur("BIENVENUE","CHEZ "+gsNomboutique)
SINON
Ouvre(FEN_info,"Erreur d'ouverture de COM"+n+RC+"Fermez toute autre application qui l'utilise puis Paramettrez l'afficheur comme suit: 9600,paire ou even, 8bits, Charactere: FRANCE,Commande: ESC/POS")
FIN


5- Pour les paramètres de "sFixeParamètre", j'ai mis des champs de saisies pour les TEST et j'ai essayé toutes les valeurs

Toujours sans succès ! SVP si vous avez des idées,
Merci !
Miembro registrado
513 mensajes
Popularité : +7 (7 votes)
Publicado el 27,enero 2021 - 23:33
Le port com2 s'ouvre bien sur !!
La fonction Ecrit_Sur_Lafficheur : comport que des
sEcrit(nPort,sUnCaractere)
Miembro registrado
2.568 mensajes
Popularité : +222 (260 votes)
Publicado el 28,enero 2021 - 08:50
Bonjour,

Tu n'as pas la doc du fabricant ?

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
513 mensajes
Popularité : +7 (7 votes)
Publicado el 28,enero 2021 - 09:16
Malheureusement non !!
Une fonction en JAVA existe t'elle ? et comment intégrer la librairie qui va avec ..
Miembro registrado
3.875 mensajes
Popularité : +227 (347 votes)
Publicado el 28,enero 2021 - 12:23
Bonjour,
NiceBel a écrit :
Malheureusement non !!

Même en cherchant sur le NET ?

--
Il y a peut être plus simple, mais, ça tourne
Miembro registrado
946 mensajes
Popularité : +102 (110 votes)
Publicado el 28,enero 2021 - 13:06
Bonjour
Tester les échanges entre l'utilitaire du fournisseur et l'afficheur en utilisant un espion
Liste de programes voir https://www.virtual-serial-port.org/fr/articles/best-serial-port-monitor-utilities/

--
«Nos clients sont nos meilleurs beta testeur.» H. Mintzberg
«Un programme informatique fait ce que vous lui avez dit de faire, pas ce que vous voulez qu'il fasse» Troisième loi de Greer
Miembro registrado
513 mensajes
Popularité : +7 (7 votes)
Publicado el 03,febrero 2021 - 01:13
J'ai constaté que je ne doit envoyer qu'un seul caractère à la fois et que je dois attendre 30ms avant d'envoyer le deuxième ce qui me fait un blocage au niveau de l'appli !!
Miembro registrado
962 mensajes
Popularité : +183 (185 votes)
Publicado el 03,febrero 2021 - 08:15
hello,
NiceBel a écrit :
> J'ai constaté que je ne doit envoyer qu'un seul caractère à la fois et que je dois attendre 30ms avant d'envoyer le deuxième ce qui me fait un blocage au niveau de l'appli !!

Quel code utilises-tu pour faire la temporisation de 30ms ?

--
Ami calmant, J.P
Miembro registrado
2.568 mensajes
Popularité : +222 (260 votes)
Publicado el 03,febrero 2021 - 09:06
J'ai constaté que je ne doit envoyer qu'un seul caractère à la fois et que je dois attendre 30ms avant d'envoyer le deuxième ce qui me fait un blocage au niveau de l'appli !!

C'est la première fois que je vois ça. Envoyer caractère par caractère et attendre 30ms entre 2...

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
199 mensajes
Popularité : +14 (16 votes)
Publicado el 03,febrero 2021 - 11:17
Bonjour,

La plupart des afficheurs "Point of Sale" répondent à la norme ESC/POS

Il y a quelques années, j'avais écrit une procédure pour afficheur.
Peut-être pourrez vous vous en inspirer ? (Je ne connais plus la marque de l'afficheur)

Procedure EcritLigne(LigneTexte,Position_ligne=1)
// Texte: le texte à afficher sur le display
// Position_ligne : le numéro de la ligne d'affichage (1 ou 2)

// Écriture sur l'afficheur, uniquement si l'ordinateur est l'ordinateur Comptoir

SI Ordinateur = "COMPTOIR" ALORS
// Ouverture du port com
SI PAS sOuvre ( NumPort , 5000 , 5000, 5000 ) ALORS
Info("Impossible d'ouvrir le port Com Spécifié")
FIN
sFixeParamètre ( NumPort , 9600 , 0 , 8 , 0,Faux,Faux,Faux )
SI Position_ligne=1 ALORS
// Écriture de la première ligne
sEcrit(NumPort,Caract(27)+Caract(81)+Caract(65)+LigneTexte+Caract(13))
BOUCLE
SI sDansFileSortie(NumPort) =0 ALORS SORTIR
FIN
SINON
// Écriture de la deuxième ligne
sEcrit(NumPort,Caract(27)+Caract(81)+Caract(66)+LigneTexte+Caract(13))
BOUCLE
SI sDansFileSortie(NumPort) =0 ALORS SORTIR
FIN
FIN
sFerme(NumPort)
FIN


--
Bon développement

Pierre Devillers
Miembro registrado
513 mensajes
Popularité : +7 (7 votes)
Publicado el 03,febrero 2021 - 11:38
Oui, c'est peut être au niveau de configuration de l'afficheur lui meme !!

SI ThreadEtat("Ecrit_Afficheur") = threadEnCours ALORS ThreadArrête("Ecrit_Afficheur")
ThreadExecute("Ecrit_Afficheur",threadNormal,Ecrit_Afficheur,Machaine1,machaine2)


POUR i=1 A 20
sEcrit(Val(gsPort),s2[[i]])
Multitâche(-30)
FIN
Miembro registrado
2.568 mensajes
Popularité : +222 (260 votes)
Publicado el 03,febrero 2021 - 14:04
La plupart des afficheurs "Point of Sale" répondent à la norme ESC/POS

Malgré ça les afficheurs ont souvent des particularités.

--
Cordialement,

Philippe SAINT-BERTIN