didi59650
Messages postés77Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 9 mai 2006
-
6 avril 2006 à 11:29
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012
-
7 avril 2006 à 13:51
avec inpout32.dll comment je peux passer de l'etat 0 à 1 sur le DTR du port serie puie revenir a l'etat 0 avec le logiciel delphi?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 6 avril 2006 à 12:23
Salut,
pour le Timer c'est tout simple:
tu mets un Timer sur ta fiche (en mode conception)
Tu lui fixes l'interval désiré (dans l'inspecteur d'objets) en Millisecondes 5 Sec : Interval = 5000
toujours dans l'inspecteur d'objets tu cliques sur l'onglet évènements et tu double cliques à droite de OnTimer ce qui va t'écrire dans ton code un squelette de procédure (voir ci-dessous):
Procedure TForm1.Timer1Timer(Sender : TObject);
Begin // ici ton code
End;
et tu écris le code que tu désires voir s'exécuter après la temporisation (5 sec par Ex)
Procedure TForm1.Timer1Timer(Sender : TObject);
Begin Timer1.Enabled : = False; // on Stop le Timer
Button1.Caption := 'Timer Off'; // ici le code qui doit être exécuté
End ;
Démarrage du Timer :
Procedure TForm1.Button1Click(Sender : TObject);
Begin Timer1.Enabled : = True;
Button1.Caption := 'Timer On'; // pour voir quelque chose
End;
Bon l'exemple n'est pas terrible mais bon ce n'est qu'un exemple
Et pour un Timer qui fonctionnerai de suite au début du programme tu peux mettre la propriété Enabled du Timer à True directement dans l'inspecteur d'objects
didi59650
Messages postés77Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 9 mai 2006 6 avril 2006 à 12:59
salut jlen,
je sais j'ai expliqué a l'ingenieur informaticien ce que tu m'avais dit mais il veut que je le fasse avec inpout32 car meme si au depart ça peut parraitre plus compliquer au final je pourrai faire ce que je veux du port serie. (je ne ve pas le contrarier;...)
Maintenant je vais essayer avec le DSR si j'arrive a le fair varier de l'etat 1 a 0
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 6 avril 2006 à 13:27
salut,
Excuse moi mais ton ingénieur est un Âne doublé d'un incompétant.
Il as eu son diplome dans une pochette surprise? ou l'a-t-il acheté en
Thaïlande?
Ce n'est vrai que tant que tu restes sur le com1 mais tu n'auras jamais
accès aux ports virtuels de cette façon puisqu'ils n'ont pas d'adresse
physique dans l'espace E/S Qu'il essaye donc de le faire sur un
portable qui n'a pas de com1 (c'est maintenant la quasi généralité) et
il verra ce qu'il se passe. ---> une spendide erreur d'exécution!!!
et un plantage de l'appli!! (dans ce cas on utilise un convertisseur
USB/RS et les E/S sont accessibles soit par Dll soit par driver)
Enfin utliser diretement les registres interdit toute possiblité de portabilité: GENIAL comme genre de programme!!!!
didi59650
Messages postés77Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 9 mai 2006 6 avril 2006 à 14:22
ou alors il faudrait que je crée un bouton qui annule le premier et remet ainsi l'etat logique zero (qui revient d'ailleur automatiquement lorsque je ferme delphi)
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 7 avril 2006 à 13:51
pour changer l'état du DTR c'est très facile
- 1) soit tu créé ta propre routine avec les Api's de windows et tu rajoute
hComm c'est le Handle du Port
pour DTR
EscapeCommFunction(hComm , SETDTR ou CLRDTR); SETà l'état haut(1) CLR état bas(0)
pour RTS
EscapeCommFunction(hComm , SETRTS ou CLRRTS);
- 2) soit en utilisant TComPort ou tout autre composant orienté RS232
ComPort.SetDTR(True or False);
ComPort.SetRTS(True or False);