mcallegari / qlcplus

Q Light Controller Plus (QLC+) is a free and cross-platform software to control DMX or analog lighting systems like moving heads, dimmers, scanners etc. This project is a fork of the great QLC project written by Heikki Junnila that aims to continue the QLC development and to introduce new features.
Apache License 2.0
1.02k stars 360 forks source link

Input for Enttec Playback Wing broken #25

Closed offtools closed 11 years ago

offtools commented 11 years ago

Hi,

I tested a Enttec Playback Wing today (tested on Archlinux). The Wing input seems broken.

The Device is listed in the Input/Output Tab, but mapping buttons or faders of the Wing to QLC controls in the virtual console have no effect.

I was searching a bit for the problem. The plugin seems to work well and the data is parsed correct. a debug statement in enttecwing.cpp:293, EnttecWing::slotValueChanged(...) shows the correct channels and values The problem seems to be, that the controls in the virtual console are not notified by the changes.

offtools.

mcallegari commented 11 years ago

If you go to the Input / Output panel and move a fader on the Enttec Wing, you should see a joystick appearing beside the associated universe. This is the very basic test to do. Do you see anything moving ?

I don't know much of your Wing but I guess it's an ethernet device, right ? Can you double check if the UDP port is set correctly ? An even better test is to use Wireshark and see if the UDP packets are sent from the Wing and on which port exactly.

offtools commented 11 years ago

Hi,

I added a statement which prints the wing data to stdout:

diff --git a/plugins/enttecwing/src/enttecwing.cpp b/plugins/enttecwing/src/enttecwing.cpp index c0bf798..2b72b04 100644 --- a/plugins/enttecwing/src/enttecwing.cpp +++ b/plugins/enttecwing/src/enttecwing.cpp @@ -293,6 +293,8 @@ void EnttecWing::slotReadSocket() void EnttecWing::slotValueChanged(quint32 channel, uchar value) { Wing* wing = qobject_cast<Wing*> (QObject::sender());

The output shows, that data from the wing is received correct, but this has no effect to any configured sliders or the fixture monitor:

here's the input/output I used. btw: the little joystick you spoke about is not shown, also when I press the config button nothing happens (but maybe there's nothing to configure)

Bildschirmfoto vom 2013-01-08 19:33:01

Anyway: the plugin itself receives data but the rest of QLC+ doesnt seem to receive signals from the plugin. I only checked it at home not on a real dmx circut, but there should be some output in the fixture monitor, I guess.

I will check Inputmap code and widget code, but any pointers are welcome.

offtools.

mcallegari commented 11 years ago

Can you try to cast "m_devices.indexOf(wing)" to quint32 ? This way:

emit valueChanged((quint32)m_devices.indexOf(wing), channel, value);

QT is very picky about signals argument types

offtools commented 11 years ago

tried, sry no difference.

mcallegari commented 11 years ago

Another try. Please remove the following lines from enttecwing.h:

signals: /* @reimp / void valueChanged(quint32 input, quint32 channel, uchar value);

offtools commented 11 years ago

thank you ... that worked

Wrong signal definition I guess. The signal of the parent class qlcioplugin.h has the form:

qlcioplugin:220: void valueChanged(quint32 input, quint32 channel, uchar value, const QString& key = 0);

offtools.

mcallegari commented 11 years ago

Great ! Gonna commit this. Thanks for this precious report

mcallegari commented 11 years ago

Fixed on version 4.1.2