Une classe pour le port rs232 ou lpt

Soyez le premier à donner votre avis sur cette source.

Vue 17 350 fois - Téléchargée 2 819 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
cs_carlos Messages postés 4 Date d'inscription jeudi 6 décembre 2001 Statut Membre Dernière intervention 14 juin 2007
4 juin 2007 à 15:42
oups j'oubliai

MERCI @ PLUS
cs_carlos Messages postés 4 Date d'inscription jeudi 6 décembre 2001 Statut Membre Dernière intervention 14 juin 2007
4 juin 2007 à 15:41
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...
medelias Messages postés 18 Date d'inscription mardi 28 octobre 2003 Statut Membre Dernière intervention 12 mars 2006
12 mars 2006 à 23:28
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+
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 12
10 mars 2006 à 11:10
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

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.