Dernière mise à jour :
30/01/2007
Présentation
Cet exemple montre comment utiliser une sortie d'un port série
(DTR ou RTS) pour produire un signal périodique rectangulaire de
basse fréquence.
Description
Afin de simplifier au maximum le code pour l'accès au port
série, il est fait ici usage du composant TApdComPort contenu
dans le package AsynPro de Multipower. Le composant utilisé pour
produire les changements d'état sur les lignes de sortie du port
com, à savoir DTR et RTS, est le composant jvThreadTimer contenu
dans le package JVCL du projet Jedi.
Activation /
désactivation des
lignes DTR et RTS
Réalisé à intervalles réguliers par le
composant JvThreadTimer, grâce à cette portion de code :
procedure TfmMain.JvThreadTimer1Timer(Sender: TObject);
begin
if not bGenInProgress then exit;
ApdComPort1.DTR := not ApdComPort1.DTR;
ApdComPort1.RTS := ApdComPort1.DTR;
Application.ProcessMessages;
end;
Si l'on veut que le signal RTS ait une polarité opposée
à celle du signal DTR, il suffit d'écrire le code suivant
procedure TfmMain.JvThreadTimer1Timer(Sender: TObject);
begin
if not bGenInProgress then exit;
ApdComPort1.DTR := not ApdComPort1.DTR;
ApdComPort1.RTS := not ApdComPort1.DTR;
Application.ProcessMessages;
end;
Téléchargement
RS232Generator V1.0.0.1 - Exécutable et code source
Logiciels requis
L'éxécutable est fonctionnel. Si vous voulez modifier et
recompiler le code source, vous devez disposer des logiciels et
composants logiciels suivants :
- Delphi 5 Pro SP1 ou plus
-
Turbopower
AsyncPro (version utilisée V4.06) pour les communications
sur port série. Vous pouvez aussi utiliser mon
unité de communication
rmPorts
si vous ne souhaitez pas installer ces composants.
-
Jedi
JCL+JVCL
(version utilisée V3.3) pour les composants Timer et SpinEdit.
Remarque
: j'utilisais
auparavant les composants VrHPTimeBase et VrHPTimeBase contenus dans le
package
TMS
Instrumentation de TMS Software,
mais il semble qu'il n'est désormais plus possible de les
utiliser gratuitement pour un usage personnel, comme c'était le
cas auparavant.