Bugtracker DMXControl 3

  • Status geschlossen
  • Prozent erledigt
    100%
  • Aufgabentyp Fehlerbericht
  • Kategorie Server
  • zuständig
    Arne Lüdtke
  • Betriebssystem All
  • Schweregrad niedrig
  • Dringlichkeit normal
  • betrifft Version 3.1.1
  • fällig in Version unbestimmt
  • fällig am unbestimmt
  • Stimmen
  • versteckt
gehört zu Projekt: DMXControl 3
angelegt von Stefan Kistner - 12.06.2018
zuletzt bearbeitet von Arne Lüdtke - 26.06.2018

FS#3089 - TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.

Weil ich auf die lustige Idee kam, im DDF für den Martin MAC 600 ein zweites Prisma definieren, habe ich im Kernel folgende Fehlermeldung produziert:

2018-06-12 22:51:23,407 [20] ERROR org.dmxc.lumos.Kernel.Command.ReflectionCommandFactory - TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.
System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.InvalidOperationException: There are two Handlers for the same Property: Prism
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.BuildRegistry() in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 196.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.parseXmlFile(DDFParseContext context) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 65.
   bei org.dmxc.lumos.Kernel.Devices.DeviceBeam..ctor(IDevice parentDevice, UInt32 beamNumber, DDFParseContext context) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\DeviceBeam.cs:Zeile 82.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.parseDDF(XmlDocument ddf, String filename) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 336.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.set_DDFSourceFile(String value) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 118.
   bei org.dmxc.lumos.Kernel.Devices.Factory.DMXDeviceFactory.createNewInstance(DeviceMetadata m, IDevice parent) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\Factory\DMXDeviceFactory.cs:Zeile 40.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.createNewDevice(DeviceMetadata data, IDevice parentDevice) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 431.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.createNewDevice(DeviceMetadata data) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 418.
   bei org.dmxc.lumos.Kernel.Command.KernelCommandFactory.createDevice(DeviceMetadata m) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Command\KernelCommandFactory.cs:Zeile 1049.
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   bei org.dmxc.lumos.Kernel.Command.ReflectionCommandFactory.CommandPropertyBag.Invoke(CommandParameterList list) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Command\ReflectionCommandFactory.cs:Zeile 59.

Das DDF mit dem auskommentierten zweiten Prisma und die kompletten Logs der Sitzung sind beigefügt.

geschlossen von  Arne Lüdtke
26.06.2018 05:06
Grund für das Schließen:  Kein Fehler
Kommentar zum Schließen:  

Problem im DDF behoben. Folgefeature Ticket FS#3096 aufgemacht.

Project Manager
Arne Lüdtke schrieb am 14.06.2018 05:31

Ein DDF kann nur 1 Prisma haben. ein Gerät mit mehr als 1 Prisma habe ich noch nie gesehen. Wenn ich die Bedienungsanleitung gelesen habe, sind das Beam Shaper. Das sind keine Prismas oder?

Du kannst das aber als Effektrad modellieren.

	<effectwheel dmxchannel="6">
	  <effectindex />
	  <step type="open" mindmx="0" maxdmx="0" caption="Open" />
	  <step type="beamshaper" mindmx="1" maxdmx="255" caption="Beam shaper 1" >
	 	<range range="180" handler="prismindex" mindmx="1" maxdmx="255" />
	  </step>
	</effectwheel>
	<effectwheel dmxchannel="7">
	  <effectindex />
	  <step type="open" mindmx="0" maxdmx="0" caption="Open" />
	  <step type="beamshaper" mindmx="3" maxdmx="170" caption="Beam shaper 2" >
	 	<range range="90" handler="effectindex" mindmx="3" maxdmx="170" />
	  </step>
          <step type="frost" mindmx="171" maxdmx="255" " val="100" />
	</effectwheel >
Project Manager
Arne Lüdtke schrieb am 14.06.2018 05:31

Der oben genannte DDF Code ist ungetestet, sollte aber funktionieren. Falls nicht, dann bitte nochmal melden, dann schaue ich danach.

Stefan Kistner schrieb am 14.06.2018 06:28

Super! Danke dir Arne. Den Code schaue ich mir heute Abend nochmal an. An das Effektrad hatte ich jetzt gar nicht so gedacht...

Stefan Kistner schrieb am 15.06.2018 15:08

So... Nachdem ich nun ein paar kleine Flüchtigkeitsfehler bei dir im Code korrigiert und DMXControl 3 erst einmal grundsätzlich dazu gebracht habe, die DDF-Prüfung ohne Beanstandung zu durchlaufen, kommen aber nun bei folgendem Code im DDF

<effectwheel dmxchannel="6">
  <effectindex />
  <step type="open" mindmx="0" maxdmx="0" caption="Open" />
  <step type="beamshaper" mindmx="1" maxdmx="255" caption="Beam shaper 1" >
    <range range="180" handler="effectindex" mindmx="1" maxdmx="255" />
  </step>
</effectwheel>
<effectwheel dmxchannel="7">
  <effectindex />
  <step type="open" mindmx="0" maxdmx="0" caption="Open" />
  <step type="beamshaper" mindmx="3" maxdmx="170" caption="Beam shaper 2" >
    <range range="90" handler="effectindex" mindmx="3" maxdmx="170" />
  </step>
  <step type="frost" mindmx="171" maxdmx="255" val="100" caption="Frost" />
</effectwheel>

die folgenden Einträge im Log des Kernels:

2018-06-15 16:53:39,152 [42] ERROR org.dmxc.lumos.Kernel.HAL.Handler.Effect.AbstractEffectHandlerNode - The Icon 100 defined in the "val" Attribute in Node effectwheel doesn't exist!
2018-06-15 16:53:39,156 [42] ERROR org.dmxc.lumos.Kernel.Command.ReflectionCommandFactory - TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.
System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.InvalidOperationException: There are two Handlers for the same Property: Beamshaper
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.BuildRegistry() in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 196.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.parseXmlFile(DDFParseContext context) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 65.
   bei org.dmxc.lumos.Kernel.Devices.DeviceBeam..ctor(IDevice parentDevice, UInt32 beamNumber, DDFParseContext context) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\DeviceBeam.cs:Zeile 82.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.parseDDF(XmlDocument ddf, String filename) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 336.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.set_DDFSourceFile(String value) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 118.
   bei org.dmxc.lumos.Kernel.Devices.Factory.DMXDeviceFactory.createNewInstance(DeviceMetadata m, IDevice parent) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Devices\Factory\DMXDeviceFactory.cs:Zeile 40.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.createNewDevice(DeviceMetadata data, IDevice parentDevice) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 431.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.createNewDevice(DeviceMetadata data) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 418.
   bei org.dmxc.lumos.Kernel.Command.KernelCommandFactory.createDevice(DeviceMetadata m) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Command\KernelCommandFactory.cs:Zeile 1049.
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   bei org.dmxc.lumos.Kernel.Command.ReflectionCommandFactory.CommandPropertyBag.Invoke(CommandParameterList list) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Command\ReflectionCommandFactory.cs:Zeile 59.
2018-06-15 16:53:39,205 [42] ERROR org.dmxc.lumos.Kernel.Command.Command - Error while invoking Command: createDevice, Paras: 
System.InvalidOperationException: There are two Handlers for the same Property: Beamshaper
   bei org.dmxc.lumos.Kernel.Command.ReflectionCommandFactory.CommandPropertyBag.Invoke(CommandParameterList list) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Command\ReflectionCommandFactory.cs:Zeile 67.
   bei org.dmxc.lumos.Kernel.Command.Command.execute(Object[] paras) in D:\Jenkins\workspace\Lumos_Stable_Release\Lumos\Lumos\src\Kernel\Command\Command.cs:Zeile 130.

Was du noch zu diesem DDF wissen solltest: beide Beamshaper können gleichzeitig genutzt werden.

Bezüglich des Eintrags in der ersten Zeile des Logauszugs: ich glaube hier liegt eine doppelte Definition vor, wenn du zum einen Icons über das Attribut val einbinden möchtest, man val aber im anderen Kontext auch als festen Zahlenwert nutzen kann anstelle für minval und maxval die gleichen Werte zu verwenden.

Project Manager
Arne Lüdtke schrieb am 17.06.2018 19:28

Ich glaube der "Typ" ist das Problem. Nenn mal den 1. type="beamshaper1" und den 2. type="beamshaper2".

Stefan Kistner schrieb am 24.06.2018 13:28

Ich habe mir das mal angeschaut und ausprobiert. Grundsätzlich kann ich das DDF mit der letzten Korrektur dem Projekt hinzufügen, allerdings bin ich mit der daraus resultierenden Darstellung und Sortierung im Device Control nicht glücklich. Da macht es auch keinen Unterschied, wenn ich den type mit "beamshaper 1" benenne.

Ich persönlich fände es gut, wenn die GUI hier:

  • Die Einträge wie bei Goboshake zusammenfasst, die sich dann für den Beamshaper und die Indizierung aufklappen lassen.
  • Die Sortierung von Beamershaper und Beamshaperindex nicht durch den Frostfilter "gestört" wird, sondern eine gewisse Gruppierung der Einträge aufweist. Bei einem anderen Gerät mit einem Farbrad steht die Colorwheelrotation und auch die Color Temperature im Device Control leider auch viel weiter unten als der Eintrag für Color, während alle Einträge rund um die Goboräder kompakt direkt untereinander aufgelistet sind.

Natürlich soll der Vorschlag allgemeingültig und nicht nur auf den Beamshaper des aktuellen Falls bezogen sein - deswegen der Verweis auf die Einsortierung der Colorwheelrotation und Color Temperature.

Project Manager
Arne Lüdtke schrieb am 26.06.2018 05:05

Ja, ich will das in Zukunft umbauen, sodass gleiche Typen von unterschiedlichen Rädern ähnlich wie bei Gobo / Farbrad dargestellt werden, also mit Aufklappen, wie du geschrieben hast. Das ist aber was größeres, daher nix mehr für die 3.1.2. Ich hab ein separetes Feature Ticket dafür angelegt, mit Verweis auf diesen Fehler.

Lade...

Verfügbare Tastenkürzel

Aufgabenliste

Aufgabendetails

Aufgabenbearbeitung