{ RoboLinex 1.5 Programa de control de dispositivos RCX de Lego en entorno grfico. Copyright (C) 2003 Prodel S.A Programador: Daniel Pascual Dominguez Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior. Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General de GNU para más detalles. Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. } unit ppruebas; interface uses SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms, QDialogs, QStdCtrls ,Unit6, uentradas, Unit2; //type tejecucion=(normal,continua); type Tpruebas = class(TForm) SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; procedure FormClick(Sender: TObject); procedure FormActivate(Sender: TObject); private { Private declarations } public tipo:integer; { Public declarations } end; var pruebas: Tpruebas; nimpre:TipoPunterolista; implementation uses Unit9, piloto4, proyecto2; {$R *.xfm} procedure Tpruebas.FormClick(Sender: TObject); begin savedialog1.Execute; end; procedure Tpruebas.FormActivate(Sender: TObject); var fichero: textfile; cadena:PChar; dire,cadena1,cad:string; tcom:TComponent; tw:twidgetcontrol; tipoe,sest,sposix,sposiy,sini,ssimpl,stipo,spot,spote:integer; slimitelu,smayo,saleatori:integer; stiemp:real; sti:string[3]; sti1:string; ssalid,sentrada:string; sentradam:string[2]; stipoc:string[2]; mio:string; code,max:integer; begin if pilot33.Visible=true then begin hide; if tipo=1 then begin SaveDialog1 := TSaveDialog.Create(self); SaveDialog1.DefaultExt:='*.rb3'; SaveDialog1.Filter:='Ficheros RoboLinux 3 (*.rb3)|*.rb3'; SaveDialog1.Execute; assignfile(fichero,SaveDialog1.filename); rewrite(fichero); writeln(fichero,pilot33.sensor1.dar_estado); writeln(fichero,pilot33.salida6.dar_estado); writeln(fichero,pilot33.salida5.dar_estado); writeln(fichero,pilot33.salida4.dar_estado); writeln(fichero,pilot33.sensor.dar_estado); writeln(fichero,pilot33.salida3.dar_estado); writeln(fichero,pilot33.salida2.dar_estado); writeln(fichero,pilot33.salida1.dar_estado); if pilot33.tipoejecucion=continua then writeln(fichero,1) else writeln(fichero,0); closefile(fichero); end; if tipo=2 then begin OpenDialog1.Filter:='Ficheros RoboLinux 3 (*.rb3)|*.rb3'; OpenDialog1.Execute; assignfile(fichero,OpenDialog1.filename); reset(fichero); readln(fichero,sest,sposix,sposiy,stipoc,sini,ssimpl,sentrada); pilot33.sensor1.inicializar(sest,sposix,sposiy,trim(stipoc),sini,ssimpl,trim(sentrada)); pilot33.sensor1.Show; pilot33.sensor1.selecentrada.show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); pilot33.salida6.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); pilot33.salida6.Show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); pilot33.salida5.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); pilot33.salida5.Show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); pilot33.salida4.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); pilot33.salida4.Show; readln(fichero,sest,sposix,sposiy,stipoc,sini,ssimpl,sentrada); pilot33.sensor.inicializar(sest,sposix,sposiy,trim(stipoc),sini,ssimpl,trim(sentrada)); pilot33.sensor.Show; pilot33.sensor.selecentrada.show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); pilot33.salida3.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); pilot33.salida3.Show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); pilot33.salida2.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); pilot33.salida2.Show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); pilot33.salida1.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); pilot33.salida1.Show; readln(fichero,tipoe); if tipoe=1 then begin pilot33.tipoejecucion:=continua; pilot33.image4.Picture:=pilot33.image5.picture; end else begin pilot33.tipoejecucion:=normal; pilot33.image4.Picture:=NIL; end; closefile(fichero); end; end else begin hide; if tipo=1 then begin SaveDialog1 := TSaveDialog.Create(self); SaveDialog1.DefaultExt:='*.rb4'; SaveDialog1.Filter:='Ficheros RoboLinux 4 (*.rb4)|*.rb4'; SaveDialog1.Execute; assignfile(fichero,SaveDialog1.filename); rewrite(fichero); nimpre:=pilot4.lista.inicio; if pilot4.tipoejecucion=continua then writeln(fichero,1) else writeln(fichero,0); while nimpre<>NIL do begin writeln(fichero,nimpre^.sensor1.dar_estado); writeln(fichero,nimpre^.salida3.dar_estado); writeln(fichero,nimpre^.salida2.dar_estado); writeln(fichero,nimpre^.salida1.dar_estado); nimpre:=nimpre^.sig; end; closefile(fichero); end; if tipo=2 then begin OpenDialog1.Filter:='Ficheros RoboLinux 4 (*.rb4)|*.rb4'; OpenDialog1.Execute; assignfile(fichero,OpenDialog1.filename); reset(fichero); pilot4.lista.actual^.sensor1.hide; pilot4.lista.actual^.sensor1.selecentrada.hide; pilot4.lista.actual^.salida2.hide; pilot4.lista.actual^.salida2.fpotencia.hide; pilot4.lista.actual^.salida3.hide; pilot4.lista.actual^.salida3.fpotencia.hide; pilot4.lista.actual^.salida1.hide; pilot4.lista.actual^.salida1.fpotencia.hide; freemem(pilot4.lista.actual); pilot4.maximo:=1; pilot4.lista.inicio:=NIL; readln(fichero,tipoe); if tipoe=1 then begin pilot4.tipoejecucion:=continua; pilot4.image4.Picture:=pilot4.image5.picture; end else begin pilot4.tipoejecucion:=normal; pilot4.image4.Picture:=NIL; end; max:=0; while not eof(fichero) do begin GetMem(nimpre,SizeOf(TipoPunterolista)+SizeOf(TipoNodo)); Application.CreateForm(Tfentradasp4, nimpre^.sensor1); Application.CreateForm(Tfsalidas, nimpre^.salida3); Application.CreateForm(Tfsalidas, nimpre^.salida2); Application.CreateForm(Tfsalidas, nimpre^.salida1); readln(fichero,sest,sposix,sposiy,stipoc,sini,ssimpl,sentradam,slimitelu,smayo,saleatori,sti1); // sti1:=sti; replace(sti1,'*','.'); val(sti1,stiemp,code); nimpre^.sensor1.inicializar(sest,sposix,sposiy,trim(stipoc),sini,ssimpl,trim(sentradam),slimitelu,smayo,saleatori,stiemp); // nimpre^.sensor1.Show; // nimpre^.sensor1.selecentrada.show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); nimpre^.salida3.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); // nimpre^.salida3.Show; // if nimpre^.salida3.tipo<>4 then // nimpre^.salida3.fpotencia.Show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); nimpre^.salida2.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); // nimpre^.salida2.Show; // if nimpre^.salida2.tipo<>4 then // nimpre^.salida2.fpotencia.Show; readln(fichero,sest,sposix,sposiy,stipo,sini,ssimpl,spote,ssalid); nimpre^.salida1.inicializar(sest,sposix,sposiy,stipo,sini,ssimpl,trim(ssalid),spote); // nimpre^.salida1.show; // if nimpre^.salida1.tipo<>4 then // nimpre^.salida1.fpotencia.Show; if pilot4.lista.inicio=NIL then //es el primer nodo begin pilot4.lista.inicio:=nimpre; pilot4.lista.actual:=pilot4.lista.inicio; pilot4.lista.actual^.ant:=NIL; pilot4.lista.actual^.sig:=NIL; end else begin pilot4.lista.actual^.sig:=nimpre; nimpre^.ant:=pilot4.lista.actual; nimpre^.sig:=NIL; pilot4.lista.actual:=nimpre; end; max:=max+1; end;// del while pilot4.lista.actual^.sensor1.Show; pilot4.lista.actual^.sensor1.selecentrada.show; pilot4.lista.actual^.salida3.Show; if pilot4.lista.actual^.salida3.tipo<>4 then pilot4.lista.actual^.salida3.fpotencia.Show; pilot4.lista.actual^.salida2.Show; if pilot4.lista.actual^.salida2.tipo<>4 then pilot4.lista.actual^.salida2.fpotencia.Show; pilot4.lista.actual^.salida1.Show; if pilot4.lista.actual^.salida1.tipo<>4 then pilot4.lista.actual^.salida1.fpotencia.Show; pilot4.maximo:=max; closefile(fichero); pilot4.refresca_contador; pilot4.refrescadiscos; end; end; if pilot4.Visible=true then begin if tipo=1 then begin pilot4.lista.actual.sensor1.selecentrada.Visible:=true; pilot4.lista.actual.sensor1.Visible:=true; pilot4.lista.actual.salida1.Visible:=true; pilot4.lista.actual.salida1.fpotencia.Visible:=true; pilot4.lista.actual.salida2.Visible:=true; pilot4.lista.actual.salida2.fpotencia.Visible:=true; pilot4.lista.actual.salida3.Visible:=true; pilot4.lista.actual.salida3.fpotencia.Visible:=true; end else begin pilot4.lista.actual.sensor1.selecentrada.Visible:=true; pilot4.lista.actual.sensor1.Visible:=true; pilot4.lista.actual.salida1.Visible:=true; pilot4.lista.actual.salida1.fpotencia.Visible:=true; pilot4.lista.actual.salida2.Visible:=true; pilot4.lista.actual.salida2.fpotencia.Visible:=true; pilot4.lista.actual.salida3.Visible:=true; pilot4.lista.actual.salida3.fpotencia.Visible:=true; end end else begin pilot33.salida1.Visible:=true; pilot33.salida1.fpotencia.Visible:=true; pilot33.salida2.Visible:=true; pilot33.salida2.fpotencia.Visible:=true; pilot33.salida3.Visible:=true; pilot33.salida3.fpotencia.Visible:=true; pilot33.salida4.Visible:=true; pilot33.salida4.fpotencia.Visible:=true; pilot33.salida5.Visible:=true; pilot33.salida5.fpotencia.Visible:=true; pilot33.salida6.Visible:=true; pilot33.salida6.fpotencia.Visible:=true; pilot33.sensor1.Visible:=true; pilot33.sensor1.selecentrada.Visible:=true; pilot33.sensor.Visible:=true; pilot33.sensor.selecentrada.Visible:=true; end; end; end.