- Status geschlossen
- Prozent erledigt
- Aufgabentyp Fehlerbericht
- Kategorie GUI & Server → Server
-
zuständig
Soon5 - Betriebssystem All
- Schweregrad niedrig
- betrifft Version 3.1.1
- fällig in Version unbestimmt
-
fällig am
unbestimmt
- Stimmen
- versteckt
gehört zu Projekt: DMXControl 3
angelegt von LightningBrothers - 12.06.2018
zuletzt bearbeitet von Soon5 - 26.06.2018
angelegt von LightningBrothers - 12.06.2018
zuletzt bearbeitet von Soon5 - 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.
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.
Der oben genannte DDF Code ist ungetestet, sollte aber funktionieren. Falls nicht, dann bitte nochmal melden, dann schaue ich danach.
Super! Danke dir Arne. Den Code schaue ich mir heute Abend nochmal an. An das Effektrad hatte ich jetzt gar nicht so gedacht...
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
die folgenden Einträge im Log des Kernels:
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.
Ich glaube der "Typ" ist das Problem. Nenn mal den 1. type="beamshaper1" und den 2. type="beamshaper2".
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:
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.
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.