lecture port serie tcomport
Salut amis développeurs,
Je voudrais vous poser une question a propos du composant tcomport.
J'arrive a envoyer des trames en hexa mais je n'arrive pas a recevoir de donnees.
J'ai suivis le tuteuriel sur le site avec la fonction onrxchar mais l evenement ne se declenche pas.
Est ce qu il faut configurer un parametre du compsant?
Qu est ce qu il faut mettre dans le parametre eventchar?
Merci d'avance.
Tcomport 3.1 en C++ builder
:oops: Bonjour la communauté Je suis nouveau sur ce forum, je bidouille pas mal en informatique et juste pour apprendre en m'amusant je teste le C++ Builder, j'ai de bonnes connaissances en Delphi 6 et j'ai voulu faire un test en c++ pour comparer les 2 environnements or autant en delphi ça marche en C++ la fonction m'en read n'a pas l'air de fonctionner
en Delphi mon programme est (dans un timer 100ms)
Code:
1 2 3
| var bit:byte;
bit:=strtoint('209');
comport1.Write(bit,1); |
Pour la réception c'est
Code:
1 2 3 4 5 6 7 8 9 10
| procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var temp,press: byte;
Buff : byte;
ligne:integer;
begin
comport1.Read(buff,1); // valeur reçue du port série
if Buff >= 254 then exit;
Temp:=buff; // mesure de la Température dans le buffer
Statusbar1.Panels[0].text:='T° = '+inttostr(Temp);
end; |
comment faire en C++
si quelqu'un peut m'aider à comprendre
car en c++ malgré beaucoup d'essai ça ne marche pas
merci d'avance
erreur Composant TComPort
Bonjour à tous
je me bat en se moment avec mon projet en cours
je dois récuperer les trames envoyés par un PABX sur le Port Série d'un PC pour avoir les infos nécessaires pour concerver une trace de l'appel et le facturer.
j'utilise donc le port série en configuration 7bits de données, 1 bits de stop, impaire, et sans contrôle de flux.
j'essai d'implenter le composant de cette manière:
Code:
1 2 3 4 5 6 7
|
void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
AnsiString Str;
ComPort1->ReadStr(Str, Count);
Memo1->Text=Memo1->Text + Str;
} |
cependant j'ai une erreur quelque part car lors de la compilation, borland C++ 6 me dis
Code:
1 2
|
[C++ Error] Unit1.cpp(20): E2316 '_fastcall TForm1::ComPort1RxChar(TObject *,int)' is not a member of 'TForm1' |
est-ce que quelqu'un pourrai m'en dire plus?
merci
retour au problème de trames
c'est encore moi
je revient avec mon histoire de définitions de trames
voici donc un exemple de trame que mon programme a à analyser:
Code:
153014-02173847 403100100F10619181428 00'12" 3B0040101 00023084
le problème est que cette trames est composée de 5 bloc et que mon programme reconnait donc 5 trames différentes...
Lorsque je fait
Code:
1 2 3
| AnsiString Str;
ComPort1->ReadStr(Str, Count);
Edit1->Text=Edit1->Text + Str; |
le programme m'affiche la trame à la suite de ce qui ce trouver déjà dans le Edit.
Normal...
maintenant si je transforme le
Code:
Edit1->Text=Edit1->Text + Str;
en
il me fait defiler les 5 bloc et s'arréte sur le dernier
encore normale mais bon... c'est pas ce que je veut moi :(
n'y a t'il donc pas moyen de faire en sorte qu'il comprenne que la trame est composée des 5 bloc?
la taille de mes trames est variables
comment faire?
avec un boucle? (ça fait un peut bricolage :? )
A+
tibo