Utilisateur WDF
Inscrit: 19/04/2006 18:20
Post(s): 63
|
Le contexte est le suivant, Dans une fenetre il ya 2 table
La premiere table m'instruit sur la presence des com sur la machine existant Dans le le cas present,
com1 non fonctionnel com2 non fonctionnel com3 operationnel com4 operationnel
La deuxieme table est la lecture sur mes com et l'ajout des donees dans la table2
Mes lecteurs sont 2 lecteurs de barre code, et il lise les memes type de barrecode
Ce que je veux faire, c'est de lire a partir de l'une ou l'autre de mes lecteurs, sur les com qui seront ouverts dans le cas present com3 et com4 et inscrire le resultat dans la table2
J'obtiens presentement que des lectures sur le com4 ,qui est le derniers com ouverts
Voici les code de ma fenetre // ****** Déclaration global de la fenetre **** nCom1 est un entier = 1 nCom2 est un entier = 2 nCom3 est un entier = 3 nCom4 est un entier = 4 gnScan est un entier = 0
// Verification des rs232(com) sur la machine et ajout de l'information dans la première table // fixe les parametre des ports ouverts // installe les sEvénement
SI sOuvre(nCom1,5000,5000,sTimeoutDéfaut,Vrai)= Faux ALORS //port ouvert en mode evenementiel TableAjoute(Table,"Com non fonctionnel " + nCom1) // Erreur("Erreur lors de l'ouverture du Comrt "+nCom1) // Ferme() SINON sFixeParamètre(nCom1, 9600, 1, 8, 0) TableAjoute(Table,"Com " + nCom1) gnScan = nCom1 sEvénement(nCom1,sEveCaractèreReçu,SRECEPTION2)
FIN SI sOuvre(nCom2,5000,5000,sTimeoutDéfaut,Vrai)= Faux ALORS //port ouvert en mode evenementiel TableAjoute(Table,"Com non fonctionnel " + nCom2) // Erreur("Erreur lors de l'ouverture du Comrt "+nCom2)
SINON sFixeParamètre(nCom2, 9600, 1, 8, 0) TableAjoute(Table,"Com " + nCom2) gnScan = nCom2 sEvénement(nCom2,sEveCaractèreReçu,SRECEPTION2)
FIN SI sOuvre(nCom3,5000,5000,sTimeoutDéfaut,Vrai)= Faux ALORS //port ouvert en mode evenementiel TableAjoute(Table,"Com non fonctionnel " + nCom3) // Erreur("Erreur lors de l'ouverture du Comrt "+nCom3)
SINON //FIN sFixeParamètre(nCom3, 9600, 1, 8, 0) TableAjoute(Table,"Com " + nCom3) gnScan = nCom3 sEvénement(nCom3,sEveCaractèreReçu,SRECEPTION2)
FIN SI sOuvre(nCom4,5000,5000,sTimeoutDéfaut,Vrai)= Faux ALORS //port ouvert en mode evenementiel TableAjoute(Table,"Com non fonctionnel " + nCom4) // Erreur("Erreur lors de l'ouverture du Comrt "+nCom4)
SINON //FIN sFixeParamètre(nCom4, 9600, 1, 8, 0) TableAjoute(Table,"Com " + nCom4) gnScan = nCom4 sEvénement(nCom4,sEveCaractèreReçu,SRECEPTION2)
FIN // ************************************************************************
// fermeture de la fenetre
sFerme(1) sFerme(2) sFerme(3) sFerme(4) //sFinEvénement(nCom1) //sFinEvénement(nCom2) //sFinEvénement(nCom3) //sFinEvénement(nCom4)
Ferme ()
// **************************************************************************
// lecture du buffers et ajout de l'information dans la table2 a chaque lecture PROCEDURE SRECEPTION2(nCom1)
wtaille est un entier sBuffer est une chaîne FlagOK est un booléen carstop est une chaîne carstop=RC
//Fintimer(1) wtaille=sDansFileEntrée(nCom1) FlagOK=Faux
// Lecture des informations sur le port série en fonction de la condition d'arrêt SI wtaille<>0 ALORS sBuffer="" TANTQUE PAS FlagOK sBuffer=sBuffer+sLit(gnScan,1) SI Droite(sBuffer,Taille(carstop))=carstop ALORS
Trace(sBuffer,wtaille,sDansFileEntrée(nCom1))
TableAjoute(TABLE2, "Com " + gnScan + TAB + sBuffer ) FlagOK=Vrai FIN FIN FIN
// Traitement des informations lues sur le port série SI FlagOK ALORS
FIN // ************************************************************
Merci a l'avance de l'aide
Contribution le : 19/01/2011 17:12
|