Programcode im Kontrolpanel Skripten

Fragen zur Verwendung des PC_DIMMER
Antworten
acryd

Programcode im Kontrolpanel Skripten

Beitrag von acryd » 19.11.2010, 01:00

Hallo erstmal,

Ich habe ein wenig mit dem Programcode Editor des Kontrolpanels herumexperimentiert, bin mir aber nicht sicher ob es dafür nicht auch eine einfachere oder elegantere Lösung gibt.
Folgendes Szenario:
Ich habe einen umgebauten Futurelight PHP 575e Par Movinghead, in diesem sitzt eine Kamera, diese soll nun mithilfe von PCD und einem Joystick gesteuert werden.
Da 8bit Auflösung für Pan und Tilt zu ungenau sind habe ich diesen Futurelight Head gewählt da er 16 bit unterstütz.
Nun kann ich ja leider bei der Joysticksteuerung nur jeweils den PAN oder den PANFINE Kanal auswählen, was dann für eine Kamera zu ruckartige Bewegungen bedeuten würde.
Ich habe leider in der Software keine möglichkeit gefunden das PCD selbsttätig PAN und PANFINE (tilt ebenso) kombiniert ansteuert so das ich sehr weiche bewegungen fahren kann, da muss es doch eigentlich eine Lösung für geben, da sonst die 16 bit wenig sinn machen würden.
Mein Ansatz war nun das ich im Kontrolpanel ein Delphi Script schreibe was in intervallen den FINE Wert erhöht und bei erreichen von 255 jeweil den groben Kanal dann um 1 erhöht, so das ich eine weiche Bewegung erziele.
Leider wird wie im anderen Thread erwähnt der Joystick bei mir nicht erkannt deswegen kann ich nicht Prüfen ob der Joystick bei Mapping auf einen Krontrolpanel Button einen Repeat machen würde so das die Script Funktion solange ausgeführt wird bis ich den Joystick loslasse.

Villeicht mache ich mir das alles auch viel zu kompliziert und ihr habt ne einfachere Lösung für mich.
Hier der Code für den Entsprechenden Kontrolbutton, Pan liegt auf Channel 1 Tilt auf 2 Panfine auf 5 und Panfine auf 6 nur als Info.

-------------- code begin --------------------
unit ButtonCode;
interface
procedure ButtonMouseDown;
procedure ButtonMouseUp;

var pan_grob: Integer;
var pan_fein: Integer;
var pan_grob_new: Integer;
var pan_fein_new: Integer;

implementation
procedure ButtonMouseDown;
begin

pan_grob:=get_absolutchannel(1);
pan_fein:=get_absolutchannel(5);

pan_fein_new := pan_fein + 100;
pan_grob_new := pan_grob;

if pan_fein_new > 255 then
begin
pan_fein_new := 0;
pan_grob_new := pan_grob + 1;
end
else
begin
end;

set_absolutchannel(1, pan_grob, pan_grob_new, 1);
set_absolutchannel(5, pan_fein, pan_fein_new, 1);
end;

procedure ButtonMouseUp;
begin
end;
end.
-------------- code end-----------------

Für weitere ideen wäre ich sehr dankbar.

mfg
Ben

Antworten