unit Envoie; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button2: TButton; EditEtat: TEdit; Timer1: TTimer; Timer2: TTimer; Button1: TButton; OpenDialog1: TOpenDialog; procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } port:integer; end; procedure WriteStrobe(val:integer); var Form1: TForm1; port:integer; envoyer: boolean; longChaine,icourant:integer; chaine:string; MonFichier:File of byte; TableauByte: Array of byte; PortStrobe:integer; implementation function Inp32(port:integer):integer;Stdcall;external 'inpout32.dll' name 'Inp32'; function Out32(port, valeur:integer):integer;Stdcall;external 'inpout32.dll' name 'Out32'; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin port:=888; PortStrobe:=890; WriteStrobe(1); envoyer:=false; end; procedure WriteStrobe(val:integer); begin Out32(PortStrobe,val); end; procedure TForm1.Button2Click(Sender: TObject); begin EditEtat.text:=' >> Opening <<'; assignFile(MonFichier,edit1.Text); reset(MonFichier); EditEtat.text:=' >> Sending <<'; icourant:=0; timer1.enabled:=true; end; procedure TForm1.Timer1Timer(Sender: TObject); var car:byte; begin icourant:=icourant+1; if not Eof(MonFichier) then begin Read(MonFichier, car); out32(port,car); timer2.enabled:=true; end else begin Timer1.Enabled:=False; CloseFile(MonFichier); EditEtat.Text:=' >> Done !! <<'; end; end; procedure TForm1.Timer2Timer(Sender: TObject); begin if envoyer=false then begin WriteStrobe(0); envoyer:=true; end else begin WriteStrobe(1); envoyer:=false; Timer2.Enabled:=false; End; end; procedure TForm1.Button1Click(Sender: TObject); begin OpenDialog1.Title:='Chargement'; if OpenDialog1.Execute then begin end; edit1.Text:=Opendialog1.FileName; end; end.
unit Reception; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CheckLst; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Recevoir: TButton; Stop: TButton; SaveDialog1: TSaveDialog; Edit3: TEdit; Parcourir: TButton; Edit4: TEdit; Label3: TLabel; Edit5: TEdit; Timer1: TTimer; Button1: TButton; procedure RecevoirClick(Sender: TObject); procedure StopClick(Sender: TObject); procedure ParcourirClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; function ReadStrobe(port:integer):boolean; var Form1: TForm1; scrute:boolean; FileHandle:integer; MonFichier:file of byte; implementation function Inp32(port:integer):integer;Stdcall;external 'inpout32.dll' name 'Inp32'; function Out32(port, valeur:integer):integer;Stdcall;external 'inpout32.dll' name 'Out32'; {$R *.dfm} function ReadStrobe(port:integer):boolean; begin ReadStrobe:=(Inp32(port+2) and $01)=$01; end; procedure TForm1.RecevoirClick(Sender: TObject); var val:byte; begin if edit3.Text='' then MessageDlg('Vous devez spécifier un fichier de sortie.',mtError , [mbOk], 0) else begin FileHandle := FileCreate(edit3.Text); fileclose(FileHandle); AssignFile(MonFichier, edit3.Text); Rewrite(MonFichier); Form1.Caption:='Reception Port Parallele - ( Réception... )'; Recevoir.Enabled:=false; scrute:=true; while ReadStrobe(StrToInt(edit1.text)) do begin Application.ProcessMessages ; if scrute=false then break; end; While scrute=true do begin Val := Inp32(StrToInt(edit1.text)); Edit4.text:=Edit4.Text + char(val); Write(MonFichier, val); while not ReadStrobe(StrToInt(edit1.text)) do; while ReadStrobe(StrToInt(edit1.text)) do begin Application.ProcessMessages ; if scrute=false then break; end; end; CloseFile(MonFichier); Form1.Caption:='Reception Port Parallele - ( Terminé ! )'; Recevoir.Enabled:=true; end; end; procedure TForm1.StopClick(Sender: TObject); begin scrute:=false; end; procedure TForm1.ParcourirClick(Sender: TObject); begin SaveDialog1.Title:='Sauvegarde'; if SaveDialog1.Execute then begin if FileExists(SaveDialog1.FileName) then begin if MessageDlg('Ecraser le fichier existant ?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then exit; DeleteFile(SaveDialog1.FileName); end; end; edit3.Text:=Savedialog1.FileName; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Edit5.text:=IntToStr(Inp32(StrToInt(edit1.text))); end; procedure TForm1.Button1Click(Sender: TObject); begin edit4.Text:=''; end; end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question