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.
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.