Port com

Signaler
Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
21 juin 2005
-
Messages postés
8
Date d'inscription
dimanche 26 février 2006
Statut
Membre
Dernière intervention
2 mars 2006
-
Bonjour dans le cadre du dev d'une petite appli pour piloter un module
de commande de relais, je doit envoyer des informations sur le port
série.



les données du constructeur me signale qu'il faut utiliser le
paramétrage suivant pour la transmission 2400 bauds, 1 bit de stop, pas
de parité, 8 bits de données, il ne donne pas d'autres information.



J'utilise donc le composant Comport pour ce faire, hors y a surement un probleme car la transmission ne s'effectue pas ...



g un pti prog de test en VB qui fonctionne nickel mais quand je teste
sous delphi y a meme pas la Led du module quis'allume lors d'une
transmission quand bien meme la trame n'est pas la bonne .



si quelqu'un a une idée....

d'avance merci.

Temple0fb00m

7 réponses

Messages postés
165
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
10 novembre 2008

Salut, voila un bout de code qui fonctionne quand j'envoie des données a une imprimante par le port com.



ComPortSerie.Port := 'COM1';

ComPortSerie.BaudRate := StrToBaudRate('9600');

ComPortSerie.DataBits := StrToDataBits('8');

ComPortSerie.StopBits := StrToStopBits('1');

ComPortSerie.Parity.Bits := StrToParity('None'));

ComPortSerie.FlowControl.FlowControl := StrToFlowControl('Software'));

ComPortSerie.Open;

ComPortSerie.Connected := true;

ComPortSerie.WriteStr('Tes données');

ComPortSerie.Close;



Voila

Bonne Prog
Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
21 juin 2005

j'ai quasiment le meme code mais il ne se passe rien au niveau de la
réception: une led doit s'allumer lors de l'envoi de n'importe quelle
donnée et la rien du tout snif...

ca m'embête un peu et je ne comprend pas pourquoi ca ne fonctionne pas : je m'arrache les cheveux...

merci quand meme.

Temple0fb00m
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
salut,

si le constructeur donne un taux de transmission de 2400bauds

il faut ecrire:

ComPortSerie.BaudRate := StrToBaudRate('2400'); au lieu de :

ComPortSerie.BaudRate := StrToBaudRate('9600');

mais tu peux aussi configurer ton port en doublecliquant sur le
composant et en affectant directement les bons parametres: pas une
ligne de code à écrire !!

verifie aussi que ta COM se fait bien sur le port COM1
Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
21 juin 2005

merci mais g déja fait tout ca g un probleme ca veut pas dire que je suis completement a la rammasse en prog' merci quand mm...


Temple0fb00m
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Salut,



Pas de transmission ! Si tu es sur le bon com, je parierai sur les controles de flux !



Je mettrais Comport.FlowControl.FlowControl à fcNone;



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !

[%3C/body ]
Messages postés
41
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
21 juin 2005

j'ai testé et tjs pas de signal...



le composant comm du prog de test en VB, indique ces valeurs:



DTREnable =vrai

InBufferCount =0

InBuffersize = 1024

Inputmode = CommInputModeText

NullDiscard =faux

OutBuffersize =4096

RTSEnable =vrai

Setting ='2400,n,8,1'


mais je ne vois pas vraiment à quoi cela correspond par rapport au composant Comport.

ni en terme de communication ce que veux dire ceci.
Temple0fb00m
Messages postés
8
Date d'inscription
dimanche 26 février 2006
Statut
Membre
Dernière intervention
2 mars 2006

implementation


{$R *.DFM}
// inport externe in rscom.dll
function OPENCOM(OpenString:PChar):Integer; stdcall; external 'RSCOM.DLL';
procedure CLOSECOM(); stdcall; external 'RSCOM.DLL';
procedure DELAY(DelayTime: Real); stdcall; external 'RSCOM.DLL';
procedure TXD(d:WORD); stdcall; external 'RSCOM.DLL';
....
procedure flashTXD;
begin
TXD(1); // out pin 3 DB9
DELAY(1000);
TXD(0); // reset pin 3
DELAY(1000);
end; important RSCOMM.DLL voir http://www.delphipage.net/

FredyLaPoc47 http://www.delphipage.net/