Bonjour , je souhaite communiquer avec une balance sur le port COM1 rs 232 mon code: ((( ca marche pas ))) nGnNumeroMessage est un entier = 1 // Ouverture du port spécifié sOuvre(1, 25000, 5000, 5000,Vrai) // Initialise les paramètres du port série sFixeParamètre(1,9600,0,8,0,Faux,Faux,Vrai) SI ErreurDétectée ALORS Erreur("Impossible d'initialiser le port", ErreurInfo()) FIN sEvénement(1, sEveCaractèreReçu, SerialRead) sFinEvénement(1,sEveCaractèreReçu) --------------------------------------------------------------------------------------------------------------- PROCÉDURE SerialRead cMonCaractere est un caractère TANTQUE sDansFileEntrée(1) > 0 cMonCaractere = sLit (1,1) SI cMonCaractere = Caract(10) ALORS sOutBuffer = sMonBuffer FEN_serial_com.SAI_RecNo = Milieu (sOutBuffer,Taille(sOutBuffer) - 5, 5) sMonBuffer = "" SINON sMonBuffer = sMonBuffer + cMonCaractere FIN FIN
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , J'ai fait ça en 2008 je crois. Je vais essayer juste de trouver mon code. C'était un truc Italien(appareil). Je dois fouiller, juste pour te donner mon code. Même le nom du projet, je ne connais même plus
Bonsoir, C'est un vieux code, mais tu peux le lire [windev] popo est un entier=sEcrit(numport,"READ"+RC) //Multitache(1) s est une chaîne Multitâche(20) Saisie1=sLit(numport,500) //Multitache(10) s=Saisie1 POIDS_BRUT=Val(ExtraitChaîne(Saisie1, 3, ",")) POIDS_NET=Val(ExtraitChaîne(Saisie1, 3, ",")) Unitepoids=ExtraitChaîne(Saisie1, 4, ",") [/windev] [windev] PROCEDURE ouvertureport() etatduport=2 numport=0 vvitesse,vbitdonnee,vbitstop sont des entiers ch est une chaîne =ComplèteRep(fRepExe())+"PORTPARAM.INI" numport =Val(INILit("CONNEXION", "PORT", "1", ch)) //INILit( Vitesse est un entier=Val(INILit("CONNEXION", "VITESSE", "2", ch)) PARITE est un entier=Val(INILit("CONNEXION", "PARTITE", "1", ch)) Bitdonnee est un entier=Val(INILit("CONNEXION", "Bitdonnee", "5", ch)) Bitstop est un entier=Val(INILit("CONNEXION", "BISTOP", "2", ch)) TAILLEBUFFER est un entier=Val(INILit("CONNEXION", "BUFFER", "5000", ch)) numport=Val(INILit("CONNEXION", "PORT", "1", ch)) Vitesse=Val(INILit("CONNEXION", "VITESSE", "1", ch)) PARITE=Val(INILit("CONNEXION", "PARITE", "1", ch)) Bitdonnee=Val(INILit("CONNEXION", "BITDONNEE", "1", ch)) Bitstop=Val(INILit("CONNEXION", "BITSTOP", "1", ch)) TAILLEBUFFER=Val(INILit("CONNEXION", "BUFFER", "5000", ch)) PARIte-=1 vvitesse=Vitesse*4800 vBitstop=Bitstop-1 SELON Bitstop CAS 1 vBitstop=0 CAS 2 vBitstop=1 CAS 3 vBitstop=2 FIN vbitdonnee=3+Bitdonnee vparite est un entier=Parite-1 //info(port,Vitesse,Bitdonnee,Bitstop,vvitesse,Parite,vbitstop,vbitdonnee) tbool est un booléen=sOuvre(numport, 5000, 5000) IF tbool=Faux THEN Erreur("Impossible d''ouvrir le port", ErreurInfo()) // if any error on fxing parameters SI OuiNon(Non,"Voulez vous saisir manuelement les valeur ?")=Non RENVOYER Faux END END //info(numPORT, vvitesse, Parite, vbitdonnee, vbitstop, Faux,Faux,Faux) vbool est un booléen= sFixeParamètre(numport,vvitesse, PARITE, vbitdonnee, vbitstop, Faux,Faux,Faux) SI ErreurDétectée ALORS Erreur("Impossible d'initialiser le port", ErreurInfo()) FIN //vbool= sFixeparamètre(... // PORT, ... // Port // vvitesse, ... // Taux // Parite, ... // Parité : 0=aucune, 1=paire, 2=impaire // vbitdonnee, ... // Nb bit de données // vbitstop, ... // Nb bit de stop // // 0=1 bit de stop, 1=1,5 bits de stop, 2=2 bits de stop // Faux, ... // DTR/DSR ignoré // Faux, ... // RTS/CTS ignoré // Faux) // XON/XOFF ignoré IF vbool=Vrai THEN etatduport=1 // numport=PORT RENVOYER Vrai [/windev]
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , je peux te dire que ça marchait très bien. En fait on ne lit pas seulement, Il te faut le bon API qui permet à ton pont d'éxécuter une commande. Ce que je ne vois pas. Tu dois lui dire de lire . Hors tus lis en continue. On charge le pont , ça affiche une valeur qu'on récupère. Dans le cas d'espèce, j'envoie READ au port série et il me retourne une chaine que je décompose. Je pense que tous est ici
BONJOUR MONSIEUR merci d'abord pour votre réponse rapide j'ai pas compris option RTFM P37 Je développe sous windev voici le code actuel : reslt est un boolien=souvre(numport,2000,2000,stimeoutdefaut,vrai) si reslt =vrai alors sfixeparametre(numport,9600,0,8,0) POIDRECU EST UNE CHAINE = SLIT(NUMPORT,sdansfileentree(numport)) ------------------------------------- quand j'affiche upoidrecu je trouve = yyyyyyyyyyyyyyyyyyyyyyyy ou est le problème malgre dans un autre pont bascule il marche normalement et dans le XK3190-D18 ne marche pas
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!Cliquez pour agrandir...