Licencia de Creative Commons
Este tutorial se acoge a la licencia de Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

 

SC PASCAL: TRABAJANDO CON FICHEROS *.INI

El uso de archivos INI es muy útil cuando trabajamos con scripts copiados de otros usuarios y tenemos que cambiar algunos valores, por ejemplo:

  • los nombres de las tarjetas SimIO
  • los valores de los ejes analógicos (potenciómetros): dos potenciómetros diferentes seguro que dan diferentes valores en la misma posición
  • los valores de los servomotores: dos servomotores diferentes no se posicionan en el mismo lugar con la misma orden
  • ...

 

 

Como ejemplo vamos a ver cómo definir un nombre general para una tarjeta USB en el script SC Pascal, y un nombre específico en el fichero INI. El fichero Displays_INI.ini se coloca en la carpeta "projects" de SC Pascal y sería:

 

[General]

; define las tarjetas USB de acuerdo a las tarjetas
; instaladas en tu sisterma.

Main_Board_1=SIMIO000085
Servo_Board_1=SIMIO000025

; defina tus tarjetas de expansion de acuerdo
; a la lista de direcciones de las tarjetas. Por ejemplo,
; Tarjeta de displays ID 3 con dirección 100010
; debería ser : Displays_Board_3=SIMIO*****-EXT17

64In_Board_1=SIMIO000085-EXT0
64Out_Board_1=SIMIO000085-EXT5
32In32Out_Board_1=SIMIO000085-EXT10
Displays_Board_1=SIMIO000085-EXT15
Displays_Board_2=SIMIO000085-EXT16

 

 

El uso del archivo INI en el script SC Pascal es el siguiente:


PROGRAM Displays_using_INI_files;


const
OFFSET_HDG=105;

var
file_ini:string;
Main_Board_1:string;
Displays_Board_2:string; //Tarjeta de displays con dirección 000010


procedure OnEncoderChange(id_encoder,value:integer);
begin
end;

//IOCP EVENTs
procedure OnIOCPConnect(socket:byte);
begin
   RegIOCPOffset(1,OFFSET_HDG);
end;

procedure OnIOCPConnectClosed(socket:byte);
begin
end;

procedure OnIOCPConnectFail(socket:byte);
begin
end;

procedure OnIOCPChangeSyncro(socket,offset:byte;value:integer);
begin
end;

procedure OnIOCPChange(socket,offset:byte;value:integer);
begin

   //WriteDisplaysSwap('SIMIO000085-EXT16',4,inttostr(value),'0',3,0); Esto sería sin ller el valor del fichero INI
   WriteDisplaysSwap(Displays_Board_2,4,inttostr(value),'0',3,0); //Se usa el valor leido del fichero INI

end;

//MAIN
Begin
   file_ini:='Displays_INI.ini'; //Se define el fichero INI
   Displays_Board_2:=ReadINIFile(file_ini,'General','Displays_Board_2'); //Se lee el valor que interesa
   SetDisplayIntensity('Displays_Board_2',1,2); //Se usa dicho valor
End.

 

 

 

Ultima edición: 06.02.2018

 

 

Versión española

English version