{ 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 Unit5; interface uses {$IFDEF LINUX} Libc, {$ENDIF} Qt {Windows}, {Messages} SysUtils, Variants, Classes, QGraphics, QControls, QForms, QDialogs, QExtCtrls, QStdCtrls; type Tfadministrador = class(TForm) Image2: TImage; Image4: TImage; Image5: TImage; Image7: TImage; Image8: TImage; Label1: TLabel; Button1: TButton; Label2: TLabel; procedure Image7Click(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Image4Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Image8Click(Sender: TObject); private { Private declarations } public { Public declarations } // function probar_comunicacion():boolean; end; var fadministrador: Tfadministrador; implementation uses fpuertos, Unit1; {$R *.xfm} procedure Tfadministrador.Image7Click(Sender: TObject); begin label1.Visible:=false; hide; fprincipal.show; end; procedure Tfadministrador.Image2Click(Sender: TObject); begin label1.Visible:=false; puertos.top:=(screen.height div 2)-(puertos.height div 2); puertos.left:=(screen.Width div 2)-(puertos.width div 2); puertos.show; end; procedure Tfadministrador.Image5Click(Sender: TObject); begin label2.Visible:=true; //label2.Refresh; //refresh; Application.ProcessMessages; if (fprincipal.probar_comunicacion=true) then begin label2.Visible:=false; Application.ProcessMessages; showmessage('La comunicacion con el RCX funciona correctamente'); end else begin label2.Visible:=false; Application.ProcessMessages; showmessage('¡¡ERROR !! No se pudo establecer la comunicación con el'+ ' RCX, compruebe que la configuración del puerto sea correcta, que los cables'+ ' esten bien conectados y que el RCX este encendido.'+#13#10+ ' Si todo es correcto es posible que su RCX no tenga instalado el firmware'+ ' adecuado, si es así seleccione la opcion bajar firmware.'); end; end; procedure Tfadministrador.Image4Click(Sender: TObject); var fichero: textfile; cadena:PChar; dire,cadena1:string; //fichero: tpersistent; begin label2.Visible:=true; //label2.Refresh; //refresh; Application.ProcessMessages; // if (fprincipal.probar_comunicacion=true) then // begin label2.Visible:=false; showmessage('Pulse OK para iniciar la descarga del firmware a su RCX. Espere a oir la senal acustica en su RCX que le indica el final de la descarga, antes de continuar.'); label1.Visible:=true; Application.ProcessMessages; dire:= GetCurrentDir; cadena:=PChar('/usr/bin/nqc -S'+puertoactivo+' -firmware '+dire+'/FIRM0309.LGO'); Libc.system(cadena); Application.ProcessMessages; if (fprincipal.probar_comunicacion=false) then showmessage('El firmware no se ha transmitido correctamente a su RCX , compruebe la configuracion de puertos y pruebe de nuevo.'); label1.Visible:=false; Application.ProcessMessages; // end // else // begin // label2.Visible:=false; // Application.ProcessMessages; // showmessage('¡¡ERROR !! No se pudo establecer la comunicación con el'+ // ' RCX, compruebe que la configuración del puerto sea correcta y que los cables'+ // ' estan bien conectados.'+#13#10+ // ' Si la configuración de puertos y el cableado es correcto es posible que su RCX'+ // ' no tenga instalado el firmware adecuado, si es así seleccione la opcion bajar firmware.'); // end; end; procedure Tfadministrador.Image8Click(Sender: TObject); begin showmessage(''+ 'Seleccionar Puerto COM'+#13#10+ 'Escoge el puerto de comunicaciones al cual se conectará el transmisor de infrarrojos. Las opciones son:'+#13#10+ 'COM 1.'+#13#10+ 'COM 2.'+#13#10+ 'USB'+#13#10+ 'En general, en un PC, el COM 1 corresponde al puerto del modem y el COM 2 al puerto de la impresora. Por defecto, el programa selecciona el puerto COM'+#13#10+ 'Si se selecciona un puerto y el transmisor está conectado al otro puerto, el programa mostrará un mensaje de error.'+#13#10+ #13#10+ 'Descargar el Firmware'+#13#10+ 'Una vez configurada la transmisión entre el ordenador y el RCX, es necesario descargar su firmaware. El firmware es una especie de sistema operativo del RCX que es necesario cargar antes de enviar cualquier otro tipo de programa.'+#13#10+ 'El firmware permanece en la memoria del RCX hasta que se quitan las baterías. Si el cambio de las baterías se realiza rápidamente, el firmware no sufre ninguna modificación. En cualquier caso, el software ROBOLINUX verifica el firmware '+#13#10+ 'y preguntará automáticamente si desea volver a descargar el firmware sobre el RCX.'+#13#10+ #13#10+ 'Probar el RCX y la comunicación por IR'+#13#10+ 'Una vez descargado el firmware sobre el RCX, es necesario comprobar la comunicación entre el PC y el RCX.'+#13#10+ 'Al hacer clic sobre el icono de PROBAR COMUNICACIÓN DEL RCX, éste responderá con un pequeño sonido.'+#13#10+ 'Conecte el transmisor de IR al ordenador y disponga el RCX cerca del transmisor antes de empezar esta sección.') end; end.