falsches Bedienfeld bei DDF für Stairville Outdoor 12x3W Tri

Selbsterstellte Gerätedefinitionen von PC_DIMMER Nutzern
Antworten
freche_frau
Beiträge: 5
Registriert: 27.07.2014, 17:38

falsches Bedienfeld bei DDF für Stairville Outdoor 12x3W Tri

Beitrag von freche_frau » 28.07.2014, 19:20

Hi!

Für diese LED Pars:
http://www.thomann.de/de/stairville_out ... 3w_tri.htm

habe ich unten stehende DDF erstellt (oder auch im Anhang).
Das Bedienfeld im Geräteeditor ist so, wie ich es haben will (siehe Bildanhang). Füge ich nun das Gerät in der Gerätesteuerung hinzu, erscheint das falsche Kontextmenü / Bedienfeld bei Rechtsklick.

Frage:
ist das ein FALSCHES Bedienfeld (also eines anderen Gerätes) oder ein Standard-Bedienfeld (was z.B. angezeigt wird, weil in meinem Bedienfeld noch irgendein Fehler drinsteckt).

Code: Alles auswählen

<?xml version="1.0" encoding="ISO-8859-1"?>
<device image="64 x 64\Stairville-Outdoor-Stage-Par-12x3-Tri.jpg">
	<information id="PC_DIMMER">
		<name>Outdoor Stage Par 12x3W Tri</name>
		<vendor>Stairville</vendor>
		<author>freche_frau</author>
		<description>8 Kanäle</description>
	</information>
	<channels>
		<function channel="0" minvalue="0" maxvalue="255" name="KANAL_1" fade="yes" type="dimmer"  />
		<function channel="1" minvalue="0" maxvalue="255" name="KANAL_2" fade="yes" type="r"       />
		<function channel="2" minvalue="0" maxvalue="255" name="KANAL_3" fade="yes" type="g"       />
		<function channel="3" minvalue="0" maxvalue="255" name="KANAL_4" fade="yes" type="b"       />
		<function channel="4" minvalue="0" maxvalue="255" name="KANAL_5" fade="yes" type="shutter" />
		<function channel="5" minvalue="0" maxvalue="255" name="KANAL_6" fade="yes" type="special6"/>
		<function channel="6" minvalue="0" maxvalue="255" name="KANAL_7" fade="yes" type="special7"/>
		<function channel="7" minvalue="0" maxvalue="255" name="KANAL_8" fade="yes" type="special8"/>
	</channels>
	<initvalues ch0="0" ch1="0" ch2="0" ch3="0" ch4="0" ch5="0" ch6="0" ch7="0" />
	<strobe    OffValue="0" MinValue="10" MaxValue="255" ChannelName="shutter"/>
	<dimmer    OffValue="0" MaxValue="255"/>
	<gobo1rot  LeftMinValue="0" LeftMaxValue="0" OffValue="128" RightMinValue="255" RightMaxValue="255" ChannelName="gobo1rot"/>
	<gobo2rot  LeftMinValue="0" LeftMaxValue="0" OffValue="128" RightMinValue="255" RightMaxValue="255" ChannelName="gobo2rot"/>
	<prismarot LeftMinValue="0" LeftMaxValue="0" OffValue="128" RightMinValue="255" RightMaxValue="255" ChannelName="prismarot"/>
	<prisma SingleValue="0" TripleValue="0"/>
	<iris OpenValue="255" CloseValue="0" MinValue="0" MaxValue="255"/>
	<form width="410" height="400">
		<!-- TOP LEFT -->
		<deviceimage 		                                  top=  "8" left=  "8" width= "64" height= "64"/>
		<deviceadress 		                                  top=  "8" left= "80"/>
		<devicename 		                                  top= "24" left= "80"/>
		<devicedipswitch 	                                  top= "40" left= "80"/>
		                                                      
		<!-- LEFT COLUMN -->
		<label  name="Label_mode_title"                       top= "90" left= "10" width= "60" height= "10"                                caption="AKT. MODUS / PROGRAMM:"/>
		<line   name="Line_mode"                              top="105" left= "10" width="170" height= "24"/>
		<label  name="Label_mode"                             top="110" left= "15" width="160" height= "20"                                caption="RGB-Modus"/>
		                                                      
		<label  name="Label_gradual_change_dimmer"            top="160" left= "10" width="150" height= "30"                                caption="weicher Übergang: hell/dunkel"/>
		<button name="Button_program_red"                     top="180" left= "10" width= "50" height= "30" action="ProgramGradualRed"     caption="rot"/>
		<button name="Button_program_green"                   top="180" left= "70" width= "50" height= "30" action="ProgramGradualGreen"   caption="grün"/>
		<button name="Button_program_blue"                    top="180" left="130" width= "50" height= "30" action="ProgramGradualBlue"    caption="blau"/>
		
		<label  name="Label_gradual_change_colors"            top="220" left= "10" width="130" height= "20"                                caption="weicher Übergang: Farben"/>
		<button name="Button_program_gradual_change_rgb"      top="240" left= "10" width= "80" height= "30" action="ProgramGradualRGB"     caption="R -> G -> B" />
		<button name="Button_program_gradual_change_7_colors" top="240" left="100" width= "80" height= "30" action="ProgramGradual7Colors" caption="7 Farben" />
		
		<label  name="Label_hard_switch_colors"               top="280" left= "10" width="110" height= "20"                                caption="harter Wechsel: Farben"/>
		<button name="Button_program_hard_switch_rgb"         top="300" left= "10" width= "80" height= "30" action="ProgramSwitchRGB"      caption="R -> G -> B"/>
		<button name="Button_program_hard_switch_7_colors"    top="300" left="100" width= "80" height= "30" action="ProgramSwitch7Colors"  caption="7 Farben"/>
		                                                      
        <label  name="Label_random"                           top="340" left= "10" width="110" height= "20"                                caption="Zufallsprogramme"/>
		<button name="Button_program_random_1"                top="360" left= "10" width= "80" height= "30" action="ProgramRandom1"        caption="Programm 1"/>
		<button name="Button_program_random_2"                top="360" left="100" width= "80" height= "30" action="ProgramRandom2"        caption="Programm 2"/>
		                                                      
        <!-- RIGHT COLUMN -->
		<button name="Button_program_rgb_mode"                top= "10" left="210" width="190" height= "50" action="ProgramRGBMode"        caption="RGB-Modus"/>
   <!-- <options name="Radiobutton_fading_speed"              top= "70" left="210" width="190" height= "40" action="ChangeFaderRadio"      caption="Fader - Geschwindigkeit"></options> -->
		<label  name="Label_fader"                            top= "70" left="210" width= "60" height= "20"                                caption="Fader"/>
		<dropdown name="Dropdown_fader"                       top= "90" left="210" width="190" height= "20" action="FaderChange">
			<item caption="schnelle Reaktion"   value=  "0" picture="" />
			<item caption="verzögerte Reaktion" value="255" picture="" />
		</dropdown>		
		<label  name="Label_strobe"                           top="120" left="210" width= "60" height= "20"                                caption="Stroboskop"/>
		<slider name="Slider_strobe"                          top="140" left="210" width="190" height= "20" action="StrobeChange" startvalue="0" endvalue="255" default="0"/>
		                                                      
		<label  name="Label_dimmer"                           top="170" left="210" width= "43" height= "20"                                caption="Helligkeit"/>
		<button name="Button_dimmer_off"                      top="190" left="210" width= "25" height= "20" action="DimmerOff"             caption="off"/>
		<slider name="Slider_dimmer"                          top="190" left="240" width="130" height= "20" action="DimmerChange" startvalue="0" endvalue="255" default="0"/>
		<button name="Button_dimmer_max"                      top="190" left="375" width= "25" height= "20" action="DimmerMax"             caption="max"/>
		                                                      
		<colorpicker                                          top="220" left="230" />
		<button name="SwitchColorPickerBtn"                   top="360" left="230" width="150" height= "30" action="SwitchColorPicker"     caption="Andere Farbauswahl"/>
	</form>
	<code>
	unit NewDeviceUnit;

	interface

	procedure ProgramRGBMode;
	procedure ProgramGradual7Colors;
	procedure ProgramGradualRGB;
	procedure ProgramSwitch7Colors;
	procedure ProgramSwitchRGB;
	procedure ProgramRandom1;
	procedure ProgramRandom2;
	procedure ProgramGradualRed;
	procedure ProgramGradualGreen;
	procedure ProgramGradualBlue;
	
	procedure FaderChange;
	
	procedure StrobeChange;
	
	procedure DimmerOff;
	procedure DimmerChange;
	procedure DimmerMax;
	
	procedure ColorPickerChange(R, G, B: Byte);
	procedure SwitchColorPicker;
	procedure ColorBoxChange;
	
	procedure FormShow;
	procedure FormClose;
	procedure FormRefresh(channel:Integer);
	
	implementation

	var	DontRefresh:boolean;

	
	
	// ----------- PROGRAMS ----------- //
	
	procedure ProgramRGBMode;
	begin
		set_channel('KANAL_6',-1,  0,0);
	end;
	
	procedure ProgramGradual7Colors;
	begin
		set_channel('KANAL_6',-1, 25,0);
	end;
	
	procedure ProgramGradualRGB;
	begin
		set_channel('KANAL_6',-1, 50,0);
	end;
	
	procedure ProgramSwitch7Colors;
	begin
		set_channel('KANAL_6',-1, 75,0);
	end;
	
	procedure ProgramSwitchRGB;
	begin
		set_channel('KANAL_6',-1,100,0);
	end;
	
	procedure ProgramRandom1;
	begin
		set_channel('KANAL_6',-1,125,0);
	end;
	
	procedure ProgramRandom2;
	begin
		set_channel('KANAL_6',-1,150,0);
	end;
	
	procedure ProgramGradualRed;
	begin
		set_channel('KANAL_6',-1,175,0);
	end;
	
	procedure ProgramGradualGreen;
	begin
		set_channel('KANAL_6',-1,200,0);
	end;
	
	procedure ProgramGradualBlue;
	begin
		set_channel('KANAL_6',-1,225,0);
	end;
	
	
	
	// ----------- FADER ----------- //
	
	procedure FaderChange;
	begin
		case Dropdown_fader.itemindex of
			0: set_channel('KANAL_8',-1,  0,0);
			1: set_channel('KANAL_8',-1,255,0);
		end;  
	end;
	
	
	
	// ----------- STROBE ----------- //
	
	procedure StrobeChange;
	begin
		DontRefresh:=true;
		set_channel('KANAL_5',-1,Slider_strobe.position,0);
	end;
	
	
	
	// ----------- DIMMER ----------- //
	
	procedure DimmerChange;
	begin
		DontRefresh:=true;
		set_channel('KANAL_1',-1,Slider_dimmer.position,0);
	end;
	
	procedure DimmerOff;
	begin
		set_channel('KANAL_1',-1,  0,0);
	end;
	
	procedure DimmerMax;
	begin
		set_channel('KANAL_1',-1,255,0);
	end;
	
	
	
	// ----------- COLOR PICKER ----------- //
	
	procedure ColorPickerChange(R, G, B: Byte);
	begin
		// zuerst wechsel zurück in den RGB-Modus:
		set_channel('KANAL_6',-1,0,0);
		Label_mode.caption:='RGB-Modus';
		
		set_channel('r',-1,r,0);
		set_channel('g',-1,g,0);
		set_channel('b',-1,b,0);
		
		set_channel('c',-1,255-r,0); // TODO: evtl. unnötig und kann gelöscht werden
		set_channel('m',-1,255-g,0); // TODO: evtl. unnötig und kann gelöscht werden
		set_channel('y',-1,255-b,0); // TODO: evtl. unnötig und kann gelöscht werden
	end;
	
	procedure SwitchColorPicker;
	begin
		if colorpicker.visible then
		begin
			colorpicker.visible:=false;
			colorpicker2.visible:=true;
		end else
		begin
		colorpicker.visible:=true;
		colorpicker2.visible:=false;
		end;
	end;
   
	// TODO: evtl. unnötig und kann gelöscht werden
	procedure ColorBoxChange;
	begin
		// Werten Sie hier die eingestellte Farbe der Farbbox aus. z.B. wie folgt:
		case colorbox.itemindex of
			0: set_channel('COLOR1', -1, 0, 0);
		end;
	end;
	
    
	
	// ----------- DEVICE CONTROL FORM ----------- //
	
	procedure FormShow;
	begin
	end;
	   
	procedure FormClose;
	begin
	end;
	
	procedure FormRefresh(channel:Integer);
	var
		Value:integer;
		r,phi,temp:Double;
	begin
		if not DontRefresh then
		begin
			case channel of
				// IMPORTANT: channel 0 = KANAL_1, channel 1 = KANAL_2, ... channel 7 = KANAL_8
				0:
					begin
						Slider_dimmer.position:=get_channel('KANAL_1');
					end;
				1:
					begin
						// RGB-Änderungen werden derzeit nicht im DDF angezeigt
					end;
				2:
					begin
						// RGB-Änderungen werden derzeit nicht im DDF angezeigt
					end;
				3:
					begin
						// RGB-Änderungen werden derzeit nicht im DDF angezeigt
					end;
				4:
					begin
						Slider_strobe.position:=get_channel('KANAL_5');
					end;
				5:
					begin
						selected_program:=get_channel('KANAL_6');
						case selected_program of
							0:  
								begin
									Label_mode.caption:='RGB-Modus';
								end;
							1..24:  
								begin
									// Option "konstante Farbe" nicht implementiert, da die Funktion bereits durch den ColorSwitcher bereitgestellt wird.
									Label_mode.caption:='konstante Farbe';
								end;
							25..49:  
								begin
									Label_mode.caption:='weicher Übergang: 7 Farben';
								end;
							50..74:  
								begin
									Label_mode.caption:='weicher Übergang: R -> G -> B';
								end;
							75..99:  
								begin
									Label_mode.caption:='harter Wechsel: 7 Farben';
								end;
							100..124:  
								begin
									Label_mode.caption:='harter Wechsel: R -> G -> B';
								end;
							125..149:  
								begin
									Label_mode.caption:='Zufallsprogramm 1';
								end;
							150..174:  
								begin
									Label_mode.caption:='Zufallsprogramm 2';
								end;	
							175..199:  
								begin
									Label_mode.caption:='hell/dunkel: rot';
								end;
							200..224:  
								begin
									Label_mode.caption:='hell/dunkel: grün';
								end;
							225..255:  
								begin
									Label_mode.caption:='hell/dunkel: blau';
								end;
						end;
					end;
				6:
					begin
						// nothing to do
					end;
				7:
					begin
						fader_value:=get_channel('KANAL_8');
						case fader_value of
							0..250: Dropdown_fader.itemindex:=0;
							251..255: Dropdown_fader.itemindex:=1;
						end;
					end;
			end;
		end;
		DontRefresh:=false;
	end;

	
	
	// ----------- END OF SCRIPT ----------- //
	
	end.
</code>
</device>

Dateianhänge
falsches Gerätebedienfeld in Bühnenansicht.jpg
Gerätebedienfeld in Bühnenansicht (falsch)
falsches Gerätebedienfeld in Bühnenansicht.jpg (31.96 KiB) 1741 mal betrachtet
Gerätebedienfeld im Geräteeditor.jpg
Gerätebedienfeld im Geräteeditor (korrekt)
Gerätebedienfeld im Geräteeditor.jpg (89.31 KiB) 1740 mal betrachtet
Stairville_Outdoor_Stage_Par_12x3W_Tri.pcddevc
MÜSSTE funktionieren, zeigt aber ein falsches Gerätebedienfeld
(12.79 KiB) 82-mal heruntergeladen

Ingo
< PC_DIMMER >
Beiträge: 533
Registriert: 19.03.2009, 17:49
Wohnort: Bad Hersfeld bzw. Stuttgart

Re: falsches Bedienfeld bei DDF für Stairville Outdoor 12x3W Tri

Beitrag von Ingo » 29.07.2014, 10:34

Bei mir funktioniert es, bis auf den Fehler

Code: Alles auswählen

Error in unit 'NewDeviceUnit' on line 217 : Undeclared Identifier 'selected_program'
der daher kommt, dass du die genannte Variable nicht deklariert hast (einfach in der procedure oben bei var als integer hinzufügen, oder z.B. stattdessen Value nehmen).

Hast du das Gerät nochmal neu hinzugefügt, nachdem du das DDF geändert hast?

Grüße,
Ingo

freche_frau
Beiträge: 5
Registriert: 27.07.2014, 17:38

Re: falsches Bedienfeld bei DDF für Stairville Outdoor 12x3W Tri

Beitrag von freche_frau » 11.08.2014, 12:58

Vielen Dank, Ingo!

Ich habe die nicht initialisierten Variablen nachgetragen, jetzt funktioniert alles.
Das Problem, warum ich trotz allem stets ein anderes Bedienfeld angezeigt bekam, ist auch gelöst. Es lag daran, dass ich für dasselbe Gerät eine DDF für die 4-Kanal-Variante programmiert hatte und diese im selben Ordner lag. Anscheinend kann PC_DIMMER die DDFs nicht auseinanderhalten, wenn der Name (?) des Geräts derselbe ist. Lösung war, mich einfach von der 4-Kanal-DDF zu trennen (sie zu löschen) und nur noch mit der 8-Kanal-DDF zu arbeiten.

Zur Vollständigkeit und Abschluss des Threads anbei meine aktuelle DDF für Stairville Outdoor 12x3W Tri, 8 DMX Kanäle.
Dateianhänge
Stairville_Outdoor_Stage_Par_12x3W_Tri.pcddevc
DDF für Stairville Outdoor 12x3W Tri, 8 DMX Kanäle
(13.73 KiB) 97-mal heruntergeladen

Antworten