Port com

templeofboom Messages postés 41 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 21 juin 2005 - 15 juin 2005 à 09:50
fredylapoc47 Messages postés 8 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 2 mars 2006 - 26 févr. 2006 à 02:09
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

moldov Messages postés 165 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 10 novembre 2008
15 juin 2005 à 11:02
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
0
templeofboom Messages postés 41 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 21 juin 2005
15 juin 2005 à 11:10
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
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
15 juin 2005 à 11:28
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
0
templeofboom Messages postés 41 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 21 juin 2005
15 juin 2005 à 11:35
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
15 juin 2005 à 15:03
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 ]
0
templeofboom Messages postés 41 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 21 juin 2005
15 juin 2005 à 15:16
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
0
fredylapoc47 Messages postés 8 Date d'inscription dimanche 26 février 2006 Statut Membre Dernière intervention 2 mars 2006
26 févr. 2006 à 02:09
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/
0
Rejoignez-nous