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 ENCODERS Y DISPLAYS

En este script vamos a usar un encoders para cambiar los valores de CRS y HDG, y vamos a escribir esos valores en unos displays. Las variables IOCP son:

  • CRS: 43
  • HDG: 105

como se ve en las siguientes imágenes:

 

El script SC Pascal es el siguiente:


PROGRAM Encoders;

const
OFFSET_HDG=105;
OFFSET_CRSP=43;

var
ID_ENC_HDG:integer;
ID_ENC_CRSP:integer;

procedure OnEncoderChange(id_encoder,value:integer); //cada vez que se mueve un encoder...
begin
   case id_encoder of //vemos cual es...
      ID_ENC_HDG: BEGIN
         WriteIOCP(1,OFFSET_HDG,value); //actualizamos el valor de la variable IOCP
         WriteDisplaysSwap('SIMIO000085-EXT15',4,inttostr(value),'0',3,0); //escribimos el valor en el display
      END;
      ID_ENC_CRSP: BEGIN
         WriteIOCP(1,OFFSET_CRSP,value);
         WriteDisplaysSwap('SIMIO000085-EXT15',1,inttostr(value),'0',3,0);
      END;
   end;
end;

//IOCP EVENTs
procedure OnIOCPConnect(socket:byte);
begin
RegIOCPOffset(1,OFFSET_HDG);
RegIOCPOffset(1,OFFSET_CRSP);
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
end;

//MAIN
Begin
   ID_ENC_HDG:=RegEncoder('SIMIO000085',8,7,0,359,1,0,false,50); //se define el encoder HDG
   ID_ENC_CRSP:=RegEncoder('SIMIO000085',2,5,0,359,1,0,false,50); //se define el encoder CRS
   SetDisplayIntensity('SIMIO000085-exp15',1,2); //se definen los displays
End.

 

En este vídeo se muestra el script funcionando:

 

 

 

Ultima edición: 31.01.2018

 

Versión española

English version