Une classe pour le port rs232 ou lpt

Soyez le premier à donner votre avis sur cette source.

Vue 16 594 fois - Téléchargée 2 723 fois

Description

C'est une classe pour la connexion, le contrôle, la lecture et l'écriture dans un port soit COM ou LPT en utilisant le système de création d'un fichier buffer (CreateFile)

Source / Exemple :


unit LiaisonRS232;

interface

uses windows, SysUtils, Dialogs;

const TAILLE_RX = 4096;    // taille tampon d''entrée
      TAILLE_TX = 4096;     // taille tampon de sortie
      MAX_WAIT_READ = 5000; // temps max d''attente pour lecture (en ms)
      
type  //PCOMPORT = ^COMPORT;
      COMPORT = String;
     _LiaisonRS232 = class
     constructor Create;
     destructor Destroy;override;
  private
     g_hCOM : Hwnd;
     g_cto: COMMTimeOuts;
     g_dcb : Dcb;
  public

     function OuvrirCOM(szCOM: COMPORT):Boolean;
     function LireCOM(Buffer: Pointer; nOctetsALire :Integer;var lpNumberOfBytesRead: Cardinal):Boolean;
     function EcrireCOM(Buffer: Pointer; nOctetsAEcrire: Integer;var lpNumberOfBytesWritten: Cardinal):Boolean;
     function CloseCOM:Boolean;
   end;

var nId : Integer;
    nOctetsEcris: Integer;
    nOctetsLus: Integer;

implementation

constructor _LiaisonRS232.Create;
begin
	//configuration du temps d''attente
	g_cto.ReadIntervalTimeout := MAX_WAIT_READ;
	g_cto.ReadTotalTimeoutMultiplier := 0;
	g_cto.ReadTotalTimeoutConstant := MAX_WAIT_READ;
	g_cto.WriteTotalTimeoutMultiplier := 0;
	g_cto.WriteTotalTimeoutConstant := 0;

	....... Le reste est dans le zip -:)

Conclusion :


vous n'avez qu'à placer l'unité LiaisonRS232 dans votre uses et en déclarant une variable de type _LiaisonRS232.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

jlen100
Messages postés
1649
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
7 -
salut,
je n'ai pas encore eu le temps de tester mais avant je pense qu'il serait utile que tu indiques la syntaxe de la variable COMPORT.
je suppose que c'est celle habituelle -->'paramaetres du port' mais ma boule de cristal ne l'indique pas et je pense que beaucoup ne la connaisse pas ou n'auront pas envie de se plonger dans la doc pour la retrouver

@+
jlen
medelias
Messages postés
18
Date d'inscription
mardi 28 octobre 2003
Statut
Membre
Dernière intervention
12 mars 2006
-
Salut JLEN100,

tu peut éliminer le type COMPORT, car je l'utiliser pour que la fonction OUVRIRCOM ne génère pas des erreurs il y a avait
COMPORT = String[5] (la fonction n'accpte pas comme paramètres le String[5], donc on peut écrire directement
function OuvrirCOM(szCOM: String):Boolean;

A+
cs_carlos
Messages postés
4
Date d'inscription
jeudi 6 décembre 2001
Statut
Membre
Dernière intervention
14 juin 2007
-
Salut je suis nouveau dans la confrérie,,,
Comment on fait pour appeler les fonctions dans une autre unité??

Que faut il déclaré dans l'autre unité pour se servir des foucctions de cette classe??

Je suis un novice...
cs_carlos
Messages postés
4
Date d'inscription
jeudi 6 décembre 2001
Statut
Membre
Dernière intervention
14 juin 2007
-
oups j'oubliai

MERCI @ PLUS

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.