PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Ecrire sur l'afficheur LCD d'une caisse enregistreuse
Ecrire sur l'afficheur LCD d'une caisse enregistreuse
Débuté par NiceBel, 27 jan. 2021 23:28 - 11 réponses
Membre enregistré
519 messages
Popularité : +7 (7 votes)
Posté le 27 janvier 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 !
Membre enregistré
519 messages
Popularité : +7 (7 votes)
Posté le 27 janvier 2021 - 23:33
Le port com2 s'ouvre bien sur !!
La fonction Ecrit_Sur_Lafficheur : comport que des
sEcrit(nPort,sUnCaractere)
Membre enregistré
2 572 messages
Popularité : +222 (260 votes)
Posté le 28 janvier 2021 - 08:50
Bonjour,

Tu n'as pas la doc du fabricant ?

--
Cordialement,

Philippe SAINT-BERTIN
Membre enregistré
519 messages
Popularité : +7 (7 votes)
Posté le 28 janvier 2021 - 09:16
Malheureusement non !!
Une fonction en JAVA existe t'elle ? et comment intégrer la librairie qui va avec ..
Membre enregistré
3 887 messages
Popularité : +227 (347 votes)
Posté le 28 janvier 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
Membre enregistré
946 messages
Popularité : +102 (110 votes)
Posté le 28 janvier 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
Membre enregistré
519 messages
Popularité : +7 (7 votes)
Posté le 03 février 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 !!
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 03 février 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
Membre enregistré
2 572 messages
Popularité : +222 (260 votes)
Posté le 03 février 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
Membre enregistré
199 messages
Popularité : +14 (16 votes)
Posté le 03 février 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
Membre enregistré
519 messages
Popularité : +7 (7 votes)
Posté le 03 février 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
Membre enregistré
2 572 messages
Popularité : +222 (260 votes)
Posté le 03 février 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