OVH Cloud OVH Cloud

Composant TComPort dans Borland C++ Builder 6

6 réponses
Avatar
tibo
Bonjour
est-ce que quelqu'un a d=E9j=E0 utilis=E9 le composant TComPort dans Borland
pour r=E9cuperer les donn=E9es qui arrivent sur le port s=E9rie du pc?
les donn=E9es que je dois r=E9cuperer sont d=E9j=E0 en texte et je peut les
lires facilement avec l'hyperterminal de windows.
je dois les r=E9cuperer pour pouvoir les trait=E9s dans mon programme.
est-ce que quelqu'un sais comment faire?

merci
tibo

6 réponses

Avatar
Georges SIMON
Bonjour
est-ce que quelqu'un a déjà utilisé le composant TComPort dans Borland
pour récuperer les données qui arrivent sur le port série du pc?
les données que je dois récuperer sont déjà en texte et je peut les
lires facilement avec l'hyperterminal de windows.
je dois les récuperer pour pouvoir les traités dans mon programme.
est-ce que quelqu'un sais comment faire?

merci
tibo

Bonjour


Le composant TComPort est pratique pour lire et écrire sur un port
série. Je l'utilisait systématiquement avec bcb6 et encore maintenant
avec bds2006.

ATTENTION à l'installation qui comporte un bug (expliquer dans le
fichier d'install).

Le site du projet :
http://sourceforge.net/projects/comport/

Un bon tutorial :
http://petit.developpez.com/serie/cours_tcomport/

A+
Georges

Avatar
tibo
Bonjour et merci pour ta réponse
j'ai déjà installer les composants et j'ai réaliser un petit terminal
pour tester son fonctionnement

Je dois créer un programme qui récupére les trames envoyer par un PABX
sur le port Série.
les trames ce composent ainsi:
153014-02173847 403100100F10619181428 00'12"
3B0040101 00023084

Je dois récuperer de ces trames:
-la date (ici 14-02)
-l'heure (173847 soit 17 heures 38 mn et 47s)
-le poste appelant (403)
-le numéro appelé (0619181428)
-et la durée de l'appel (00'12")

en gros il faudrai juste que je puisse récupérer la trame dans une
variable pour pouvoir la traiter
comment faire???

merci
tibo




On 18 fév, 11:31, Georges SIMON wrote:
tibo a écrit :> Bonjour
est-ce que quelqu'un a déjà utilisé le composant TComPort dans Bo rland
pour récuperer les données qui arrivent sur le port série du pc?
les données que je dois récuperer sont déjà en texte et je peut les
lires facilement avec l'hyperterminal de windows.
je dois les récuperer pour pouvoir les traités dans mon programme.
est-ce que quelqu'un sais comment faire?

merci
tibo


Bonjour

Le composant TComPort est pratique pour lire et écrire sur un port
série. Je l'utilisait systématiquement avec bcb6 et encore maintenant
avec bds2006.

ATTENTION à l'installation qui comporte un bug (expliquer dans le
fichier d'install).

Le site du projet :http://sourceforge.net/projects/comport/

Un bon tutorial :http://petit.developpez.com/serie/cours_tcomport/

A+
Georges



Avatar
tibo
ReBonjour


j'ai un peut avancé au cours de la journée et j'essai d'implenter
maintenant le composant de cette manière:


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:

[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
tibo
Avatar
alexandre
dans le .H tu dois avoir une différence entre le prototype et cette
fonction. Normalement ton EDI écrit tout seul ces trucs, mais si tu as fait
des modifs dans le code qu'il génère...
Avatar
tibo
je l'ai tapé manuellement car je ne vois pas comment il pourrai le
générer



On 19 fév, 08:33, "alexandre" wrote:
dans le .H tu dois avoir une différence entre le prototype et cette
fonction. Normalement ton EDI écrit tout seul ces trucs, mais si tu as fait
des modifs dans le code qu'il génère...


Avatar
Georges
ReBonjour


j'ai un peut avancé au cours de la journée et j'essai d'implenter
maintenant le composant de cette manière:


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:

[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
tibo



Bonjonr,


1 - vérifie que tu as bien déclarer les chemins de TComPort dans
l'environnement de compilation.


2 - vérifie que le C++ Builder génére un fichier entête avec :
#include "CPort.hpp" et non pas #include "CPort.h" comme il a tendance a
le faire.


3 - vérifie qu'il n'y a pas une déclaration multiple de EComPort dans
CPort.hpp. Dans mon cas, j'ai du mettre en commentaire les lignes :

ligne 685 : /* Exception.CreateRes */ inline __fastcall EComPort(int
Ident)/* overload */ : Sysutils::Exception(Ident) { }

ligne 697 : /* Exception.CreateResHelp */ inline __fastcall EComPort(int
Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident,
AHelpContext) { }

4 - C'est effectivement sur l'evenement OnRxChar qu'il faut travailler.

5 - J'ai testé ce composant avec C++Builder 5 puis C++Builder 6 et
maintenant BDS2006 et il fonctionne parfaitement et ce fait oublier.

A+
Georges