InAir
PILOTE PRO
- Messages
- 1 058
- Réactions
- 131
- Points
- 152
Silverstar a dit:In'air a dit:Pour ceux qui utilise des cartes Sioc ,rien de plus simple => un fichier de définition de variables (numéros et affectations sans code de traitement) => une simple boucle "for next" en 3 lignes dans le code Pascal pour lire les valeurs des variables IOCP et c'est tout.
Montre un exemple
Voilou
Code Sioc :
Code:
[== Indéfini ==]
// *****************************************************************************
// * Config_SIOC ver 5.1 - By Manuel Velez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 22/01/2018
Var 0100, name Out1, Link IOCARD_OUT, Output 11
Var 0101, name Out2, Link IOCARD_OUT, Output 12
Var 0102, name Out3, Link IOCARD_OUT, Output 13
Var 0103, name Out4, Link IOCARD_OUT, Output 14
Code Pascal :
Code:
[== Indéfini ==]
unit InAir;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls, ScktComp ,ShellApi ,
Tlhelp32 ,Sockets ;
Const
//Sorties Sioc1
Out1 = 100;
Out2 = 101;
Out3 = 102;
Out4 = 103;
type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
StatusBar1: TStatusBar;
Button1: TButton;
function RechercheIp : String;
procedure ConnectSioc();
procedure ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure WriteSioc(Variable ,Valeur : String);
procedure MajOutput();
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ConnectSioc();
end;
function TForm1.RechercheIp : String;
begin
With TCustomIpClient.Create(Nil) do
begin
Result := LocalHostAddr;
Free;
end;
end;
procedure TForm1.ConnectSioc();
begin
ClientSocket1.Port := 8092;
ClientSocket1.Host := RechercheIp;
ClientSocket1.Open;
end;
procedure TForm1.ClientSocketConnect(Sender: TObject;Socket: TCustomWinSocket);
begin // Se produit quand la connection est établie avec Sioc
StatusBar1.Panels[0].Text := Connecté avec Sioc;
end;
procedure TForm1.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;ErrorEvent: TErrorEvent; var ErrorCode : Integer);
begin // Gestion des différentes erreur de connection et de déconnection
if ErrorEvent=eeConnect then
StatusBar1.Panels[0].Text := Erreur de connection avec Sioc;
if ErrorEvent=eeSend then
Form1.StatusBar1.Panels[0].Text := Erreur lors de lenvoit de données vers Sioc;
if ErrorEvent=eeReceive then
StatusBar1.Panels[0].Text := Erreur lors de la réception de données Sioc;
if ErrorEvent=eeDisconnect then
StatusBar1.Panels[0].Text := Erreur lors de la déconnection Sioc;
ErrorCode := 0;
end;
procedure TForm1.WriteSioc(Variable ,Valeur : String);
begin
Form1.ClientSocket1.Socket.SendText(Arn.Resp: + Variable + = + Valeur + : + chr($0D) + chr($0A));
end;
procedure TForm1.MajOutput;
Var i : Byte;
begin
For i := 100 to 103 do
WriteSioc(inttostr(i),inttostr(1));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
MajOutput();
end;
end.
Resultat après click sur le Bp
JeanMi