IOWarrior ports abfragen

Hallo Leute,

kann ich Den zustand des IOWarriors auch über ein Script abfragen?

Also ungefähr so:

if Command = 'Test1' then begin State := IOWarriorRemote(0).GetPort(24); if (State = true) then begin IOWarriorRemote(0).SetPort(24, false); end; if (State = false) then begin IOWarriorRemote(0).SetPort(24, true); end; end;

Ich möchte folgendes erreichen:

Ich habe eine Taste die den Befehl “Test1” ausführt.

Diese soll eine Toggle funktion auf den Port 24 des IOWarrios haben.

Wäre sehr nett wenn mir da jemand helfen könnte.

Gruß Rene

Ja, die Funktion GetPort existiert und ist genauso zu verwenden, wie du es im Beispiel gezeigt hast.

Allerdings ist das normalerweise nur für Ports, die als reiner Eingang genutzt werden; ob man auch den Zustand der Ausgangsports damit abfragen kann, müsstest du einfach mal probieren.

Ansonsten gibt es noch die Möglichkeit, sich den aktuellen Zustand in einer Variable zu merken. Entweder mit GetRuntimeData/SetRuntimeData, oder du machst gleich ein Notification Script daraus:

var
  PortIstAn: boolean;

procedure OnLoad;
begin
  PortIstAn := false;
end;

procedure OnExecuteCommand(Command: string);
begin
  if Command = 'TEST1' then begin
    zustand := not zustand;
    IOWarrior(0).SetPort(24, zustand);
  end;
end;

begin
end.

Dann einfach auf die Taste den Befehl TEST1 legen.