PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → URGENT !! TPE INGENICO ENVOI DE MONTANT ??
URGENT !! TPE INGENICO ENVOI DE MONTANT ??
Iniciado por jer_mest, 20,ago. 2004 12:22 - No hay respuesta
Publicado el 20,agosto 2004 - 12:22
Bonjour,

Malgré l'aide de certaines personnes, je n'arrive toujours pas à envoyer
le montant au TPE, toujours NACK en réponse apres l'envoi du message. Je
ne c pas d'ou peut venir le probleme, dois je envoyer le message en chaine,
en numerique je ne c pas ... AIDEZ MOI ENVOYE MOI UN BOUT DE CODE QUI FONCTIONNE
!!!!

Code //

Nombre est un entier
MessageLu est une chaîne
resultat est un entier
LRC est un entier
n est un entier sur 1 octet
i est un entier

//-------
//n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12 sont des entier sur 1 octet

//------- Initialisation du Tableau qui sera remplie du montant à valider
!
//Tabn est un tableau de 12 entiers sur 1 octet
//Tabn[1]=0
//Tabn[2]=1
//Tabn[3]=0
//Tabn[4]=0
//Tabn[5]=0
//Tabn[6]=0
//Tabn[7]=0
//Tabn[8]=5
//Tabn[9]=0
//Tabn[10]=0
//Tabn[11]=null
//Tabn[12]=3
////------------------------------------

// Calcul de la LRC (Octet de contrôle du message)
//lrc=SmartNet(Caract(48)+Caract(49)+Caract(48)+Caract(48)+Caract(48)+Caract(48)+Caract(48)+caract(53)+Caract(48)+Caract(48))
LRC=SmartNet("0100000500")
Info("LRC = "+LRC)

// Pause avant de commencer à dialoguer
Multitache(60)

// Ouverture du port spécifié
SI PAS sOuvre(1, 5000, 5000) ALORS Erreur("Erreur ouverture port Com")

// Initialise les paramètres du port série
SI PAS sFixeParamètre(...
1, ... // Port
1200, ... // Taux
1, ... // Parité : 0=aucune, 1=paire, 2=impaire
7, ... // Nb bit de données
0) ALORS//, ... // Nb bit de stop
// 0=1 bit de stop, 1=1,5 bits de stop, 2=2 bits de stop
Erreur("Erreur a la fixation des parametres !", ErreurInfo(errInfo))
FIN

// Envoi d'un message au buffer de sortie de COM1
// Envoie ENQ = 05
sEcrit(1,Caract(NumériqueVersChaine(5, "X")))
// Pause
Multitache(6)

// Lit Réponse ACK ou NAK
MessageLu=sLit(1, 1)
SI Asc(MessageLu)<>6 ALORS
Erreur("Erreur Réception ACK apres ENQ : ","Réponse du TPE : "+Asc(MessageLu))
sFerme(1)
RETOUR
FIN

// Pause
Multitache(6)

// Envoi d'un message au buffer de sortie de COM1
// Envoie STX = 02
sEcrit(1,Caract(NumériqueVersChaine(2, "X")))

// Pause
Multitache(6)

// Envoie Message Type Caisse Normal (ECR#+MNT+IND)
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[1], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[2], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[3], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[4], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[5], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[6], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[7], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[8], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[9], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[10], "X")))
//resultat = sEcrit(1,Caract(NumériqueVersChaine(Tabn[11], "X"))) // Si =
1 le TPE renvoi N° Carte Bancaire

// ECR#
//resultat=secrit(1,Caract(48)+Caract(49))
//Multitache(6) // Pause

// Message
resultat=sEcrit(1,Caract(48)+Caract(49)+Caract(48)+Caract(48)+Caract(48)+Caract(48)+Caract(48)+Caract(53)+Caract(48)+Caract(48))
Multitache(6) // Pause
Info("Message écrit #ECR+MNT : "+resultat)

// Envoi ETX (End of Text) = 03
resultat=sEcrit(1,Caract(NumériqueVersChaine(3, "X")))
Multitache(6) // Pause

// Envoi LRC (OuExclusif tt les Octects du message)
resultat=sEcrit(1,LRC)
Multitache(6) // Pause


// Lit Réponse ACK ou NACK
MessageLu=sLit(1,1)
TANTQUE Asc(MessageLu)=0
MessageLu=sLit(1,1)
FIN

SI Asc(MessageLu)<>6 ALORS
Erreur("Erreur Réception ACK apres LRC : ","Réponse du TPE : "+Asc(MessageLu))
sFerme(1)
RETOUR
FIN


// Fermeture du port spécifié
sFerme(1)