Changer l'etat logique du DTR [Résolu]

didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 11:29 - Dernière réponse : cs_shining 329 Messages postés lundi 30 décembre 2002Date d'inscription 10 mars 2012 Dernière intervention
- 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?


merci
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 7 avril 2006 à 02:34
3
Merci
j'y penser en lisant justement, pas de parentheses a mettre pour :

procedure CLOSECOM(); stdcall; external 'RSCOM.DLL';

procedure CLOSECOM; stdcall; external 'RSCOM.DLL';

c'est pas comme en C++ ou les parentheses sont quasi-obligatoire dans les declarations de fonctions (pas de procedures en C++).

<hr size="2" width="100%">

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de f0xi
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 11:43
0
Merci
et comment je peux faire pour garder a l'etat logique 1 durant un moment precis (comment marche le timer)?
Commenter la réponse de didi59650
Cirec 4224 Messages postés vendredi 23 juillet 2004Date d'inscription 5 juin 2018 Dernière intervention - 6 avril 2006 à 12:23
0
Merci
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

@+
Cirec
Commenter la réponse de Cirec
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 12:36
0
Merci
OK je pense avoir compris pour le timer,en fait je le fais avec le TD et j'ai ecris :

begin
out32($3F8+0,$0);
end

au debut le td envoyé -12volt maintenant le TD m'envoie +12 V en permanence
Comment le faire redscendre a l'etat 0 (-12volt)
Commenter la réponse de didi59650
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 avril 2006 à 12:48
0
Merci
salut,

je t'ai déjà dis dans un post précédent que inpout32.dll n'est pas
faite pour le port serie la gestion de ce port étant particulère

vas voir:

ICI

c'est un tuto sur le port serie



@+

jlen
Commenter la réponse de jlen100
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 12:59
0
Merci
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
Commenter la réponse de didi59650
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 avril 2006 à 13:27
0
Merci
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!!!!



@+

jlen
Commenter la réponse de jlen100
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 14:03
0
Merci
lol jlen t'enerve pas je suis en train de le faire avec rscom.dll et ça marche presque
j'ai fait un bouton 1 :

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenCom('COM1: baud=4800 parity=N data=8 stop=0');
end;

et le signal du TD descend a -12volt donc c'est parfait
et je créer un deuxieme bouton pour que celui-ci remette la tension de départ +12volt :

procedure TForm1.Button2Click(Sender: TObject);
begin
CloseCOM;
end;


mais hélas il ne veut pas compiler avec ce deuxieme bouton car il me dit qu'il y a une erreur a procedure closecom:


function OPENCOM(OpenString:PChar):Integer; stdcall; external 'RSCOM.DLL';
procedure TXD(d:WORD); stdcall; external 'RSCOM.DLL';
procedure CLOSECOM(); stdcall; external 'RSCOM.DLL';

j'y suis presque grace a toi jlen !!
Commenter la réponse de didi59650
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 avril 2006 à 14:04
0
Merci
maintenant si tu veux tout savoir sur la manipulation des registres de l'uart vas voir:

http://brassart.iut-amiens.fr/enseignement/fichiers/2006_TP5_Port_serie.pdf EE

Et bon courage!!



@+

jlen
Commenter la réponse de jlen100
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 14:09
0
Merci
ok c cool, tu ne saurais pas pourquoi il me dit identificateur attendu mais 'j' trouvé pour :

procedure CLOSECOM(); stdcall; external 'RSCOM.DLL';

pourtant j'ai beau regardé je ne vois pas d'ou viens erreur
Commenter la réponse de didi59650
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 avril 2006 à 14:21
0
Merci
je ne vois pas cheez moi ça compile correctement
Commenter la réponse de jlen100
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 14:22
0
Merci
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)
Commenter la réponse de didi59650
didi59650 77 Messages postés mercredi 5 avril 2006Date d'inscription 9 mai 2006 Dernière intervention - 6 avril 2006 à 14:40
0
Merci
C bon ça marche, en fait sur delphi 3 il ne faut pas mettre ( ).
Donc j'ai supprimé les parentheses et c bon!!!!!
merci beaucoup jlen
Commenter la réponse de didi59650
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 avril 2006 à 14:54
0
Merci
je ne connais plus delphi3 et je ne l'ai même plus installé



@+

jlen
Commenter la réponse de jlen100
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 7 avril 2006 à 06:52
0
Merci
salut foxi,

en D7 ou D2005 la présence ou non des parenthèses est sans importance
Commenter la réponse de jlen100
cs_shining 329 Messages postés lundi 30 décembre 2002Date d'inscription 10 mars 2012 Dernière intervention - 7 avril 2006 à 13:51
0
Merci
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);
Commenter la réponse de cs_shining

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.