Envoyé donnés au port usb

Résolu
didi59650 Messages postés 77 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 9 mai 2006 - 12 avril 2006 à 16:00
didi59650 Messages postés 77 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 9 mai 2006 - 12 avril 2006 à 16:08
Voila j'ai fait un programme qui fonctionne tres bien (stage). La liaison entre mon appareil de mesure et le PC est faite par le port serie. j'ai du changer de PC et maintenant mon appareil est relié au port USB(cable usb relié au DB9). Que dois je changer au programme pour qu'il fasse la meme chose qu'au début???
voici mon programme :

unit Unit1;


interface


uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, RSCOMdec, Grids; //RSCOMdec permet d'utiliser le RsCOM.dll



type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Button3: TButton;
Edit1: TEdit;
Label3: TLabel;
Label2: TLabel;
Label4: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);


private
{ Déclarations privées }


public
{ Déclarations publiques }
end;


var
Form1: TForm1;
tableau : array[1..10000] of char; // Définit un tableau


implementation


function Inp32(wAddr: word): byte; stdcall; external 'inpout32.dll';
function Out32(wAddr: word; bOut: byte): byte; stdcall; external 'inpout32.dll';


{$R *.DFM}


procedure TForm1.Button1Click(Sender: TObject);


begin
Label2.caption:=''; // met un blanc au label2
Opencom('COM1 :baud=4800 parity=e data=7 stop=2'); //ouvre le port serie1
TXD(0); //le TXD en position 0 soit -12 volt
Label4.caption:='Appuyez sur le bouton Mesure/Affich.';
end;


function lecture_luminance: string;


var
index,test: integer; //entier
carac : char; //caractere


begin
clearbuffer; //efface ce qu'il y a en mémoire
Form1.repaint; //efface ce qu'il y a sur edit1
index:=0;
TXD(1); //déclenche acquisition


while (carac <> #13) do //boucle tant que carac est différent de #13
begin
test := readbyte;
if (test <> -1) then //test doit etre différent de -1
begin
carac := char(test);
inc(index);
tableau[index]:= carac; // tableau en memoire
end;
end;
TXD(0); //arrête acquisition
lecture_luminance := (' ')+(tableau[index-6]+tableau[index-5]+tableau[index-4]+tableau[index-3]+tableau[index-2])+' cd/m^2';
end;


procedure TForm1.Button2Click(Sender: TObject);


begin
Label2.caption:='';
Label4.caption:='';
Edit1.Text := '';
Form1.repaint;
Edit1.Text := (lecture_luminance);
Label4.caption:='Vous pouvez reprendre une mesure';
Form1.repaint;


end;


procedure TForm1.Button3Click(Sender: TObject);


begin
CloseCOM; //ferme le port serie
Label2.caption:='Appuyer sur le bouton marche';
Label4.caption:='';
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);


begin
CloseCOM ;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label2.Visible := Not Label2.Visible;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin


end;


end.

1 réponse

didi59650 Messages postés 77 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 9 mai 2006
12 avril 2006 à 16:08
c bon j'ai trouvé, en fait le port usb se comporte comme un port serie donc j'ai regardé dans propriété et c'est le COM4 dc j'avais juste a changer le COM.
3
Rejoignez-nous