Delphi PLugin Submaster Setzen

Fragen zur Verwendung des PC_DIMMER
Antworten
Tortenotto
Beiträge: 6
Registriert: 15.10.2013, 20:18

Delphi PLugin Submaster Setzen

Beitrag von Tortenotto »

Nabend,
Bin grad dabei ein Plugin zu schreiben das über Rs232 empfangene Werte an die Submaster "sendet"
(Ich hab ein altes Lichtpult auf USB umgebaut).
Um die Submaster einzustellen nutze ich folgendes:

Code: Alles auswählen

var
  Datar: Ansichar;
  Datare:SmallInt ;
  Submasterarray:Variant;

...

   Submasterarray:=VarArrayCreate([0,6], varString);
   Submasterarray[0]:=('{4EFFB244-68E6-4B1E-AE56-2D2050BD1B22}');
   Submasterarray[1]:=('1')   ;
   Submasterarray[2]:=('0')   ;
   Submasterarray[3]:=('NULL');
   Submasterarray[4]:=('NULL');
   Submasterarray[5]:=('{00000000-0000-0000-0000-000000000000}');
   Submasterarray[6]:=('{00000000-0000-0000-0000-000000000000}');
   SendMSG(MSG_STARTCOMMAND,Submasterarray,datare)  ;
Der Plugintester und Pc Dimmer melden aber "Fehler bei Erzeugen von Variant oder sicherem Array".
Hat jemand ne Idee was ich falsch mache?(Ich habe keine Ahnung von Delphi :? )

MfG Henning
Benutzeravatar
Christian
PC_DIMMER-Entwickler
Beiträge: 1856
Registriert: 12.11.2007, 09:30
Wohnort: Knw.-Remsfeld
Kontaktdaten:

Re: Delphi PLugin Submaster Setzen

Beitrag von Christian »

Probiers mal so:

Code: Alles auswählen

var
  Data2:Byte;
  Submasterarray:array[0..6] of string[38];

...

   Submasterarray[0]:='{4EFFB244-68E6-4B1E-AE56-2D2050BD1B22}';
   Submasterarray[1]:='1';
   Submasterarray[2]:='0';
   Submasterarray[3]:='NULL';
   Submasterarray[4]:='NULL';
   Submasterarray[5]:='{00000000-0000-0000-0000-000000000000}';
   Submasterarray[6]:='{00000000-0000-0000-0000-000000000000}';

   Data2:=128;

   SendMSG(MSG_STARTCOMMAND,Submasterarray,Data2);
Dies sollte den entsprechenden Befehl auf 128 setzen.

"Submasterarray" ist kein VarArray, sondern ein einfaches String-Array. Auf der entsprechenden Wiki-Seite habe ich dies entsprechend gekennzeichnet: http://www.pcdimmer.de/wiki/index.php/Nachrichtensystem
MSG_STARTCOMMAND=42; // Data1=array[0..6] of string[38], Data2=byte (Sollwert 0..255)
{
Data[0]=ID des aufzurufenden Befehls
Data[1]=Integer-Wert 1 als String
Data[2]=Integer-Wert 2 als String
Data[3]=String-Wert 1
Data[4]=String-Wert 2
Data[5]=GUID 1 als String
Data[6]=GUID 2 als String
}
viele Grüße,
Christian
Tortenotto
Beiträge: 6
Registriert: 15.10.2013, 20:18

Re: Delphi PLugin Submaster Setzen

Beitrag von Tortenotto »

Vielen Dank erstmal,
mit der Lösung lässt es sich allerding nicht Compilieren:
[dcc32 Fehler] main.pas(311): E2010 Inkompatible Typen: 'Variant' und 'array[0..6] of ShortString'
MfG Henning
Benutzeravatar
Christian
PC_DIMMER-Entwickler
Beiträge: 1856
Registriert: 12.11.2007, 09:30
Wohnort: Knw.-Remsfeld
Kontaktdaten:

Re: Delphi PLugin Submaster Setzen

Beitrag von Christian »

Sorry, ich hab nicht nachgedacht. Natürlich ist Dein Ansatz korrekt. Allerdings solltest Du das Variant-Array nicht als Typ "varString", sondern als "varVariant" definieren:

Code: Alles auswählen

var
  Submasterarray:Variant;
  Data2:Byte;
begin
  Submasterarray:=VarArrayCreate([0,6], varVariant);
  Submasterarray[0]:='{4EFFB244-68E6-4B1E-AE56-2D2050BD1B22}';
  Submasterarray[1]:='1';
  Submasterarray[2]:='0';
  Submasterarray[3]:='NULL';
  Submasterarray[4]:='NULL';
  Submasterarray[5]:='{00000000-0000-0000-0000-000000000000}';
  Submasterarray[6]:='{00000000-0000-0000-0000-000000000000}';

  Data2:=128;

  SendMSG(MSG_STARTCOMMAND,Submasterarray, Data2);
end;
beste Grüße,
Christian
Tortenotto
Beiträge: 6
Registriert: 15.10.2013, 20:18

Re: Delphi PLugin Submaster Setzen

Beitrag von Tortenotto »

Nabend ich hätte noch eine Frage
ich möchte im Plugin die ID einer Szene aus der Szenenverwaltung aus lesen.
Weiß jemand wie das geht?

MfG Henning
Antworten