Message de rapport:
 

probleme avec plusieurs rs232 (com)

Sujet: probleme avec plusieurs rs232 (com)
par lass1250 sur 19/1/2011 17:12:35

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
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2