OSC Input - Via UDP

Archive of the non-categorized posts related to the QLC+ technical support.
Please do not create new threads here, instead, use the categories above !
Post Reply
budblinkin
Posts: 12
Joined: Fri Dec 18, 2015 9:43 am
Real Name: George Pierson

Hi all,

I am (still) attempting to control my Raspberry Pi Qlight system from our in house RTI automation panel. I've tried the websocket system, it didn't work as I would have hoped. I think it is a driver issue with the RTI panel.

Anyhow on Plugz advice, I have been trying to work the OSC input commands. I can succesfully operate the interface via TouchOSC and the commands that come with it, however, when I try and emulate this via a UDP connection (opened over netcat), it doesn't work.

I am sending the exact string that I receive from the TouchOSC interface (I checked it via an netcat listen session). Anyone have any ideas?

I am sending /multi/0, and /multi/0,i (which is what TouchOSC sends) i've tried adding '127' to the end. The button is definitely mapped to that input (I used the wizard).

Apologies if I am asking a question that has already been answered, I've been looking through the forums for an answer and couldn't find anything.

Best wishes.
plugz
Posts: 637
Joined: Sun Apr 12, 2015 6:30 pm
Real Name: David

I think you don't see everything with a netcat listener because OSC data is an ACSII/Binary mix.

Listen with

Code: Select all

netcat | xxd
, you will see the whole data.
budblinkin
Posts: 12
Joined: Fri Dec 18, 2015 9:43 am
Real Name: George Pierson

Hi Plugz,

Thank you for the advice! I will certainly look into this tomorrow and report back. I was starting to get quite frustrated!

Best wishes,
plugz
Posts: 637
Joined: Sun Apr 12, 2015 6:30 pm
Real Name: David

Hints:

This works for me to send a zero value:

Code: Select all

printf '/blip/blop/0,i\x00\x00\x00\x00\x00\x00' | nc -u localhost 7701
And this sends a 255 value:

Code: Select all

printf '/blip/blop/0,i\x00\x00\x00\x00\x00\xff' | nc -u localhost 7701
budblinkin
Posts: 12
Joined: Fri Dec 18, 2015 9:43 am
Real Name: George Pierson

Ok I am still struggling, (thanks for you advice again),


So I have ran so many tests, using OSC tester etc, it seems that when I send a ',' (comma) via Netcat, it doesn't actually see the packet.

So I should be able to send exactly what the OSC tester sends, i've checked it in Cocoa packet analyser,

/multi/0....,i......

They both come up as the same HEX code on the packet analysis, but for some reason when sent from Netcat, OSC on QLC+ doesn't receive the packet.

Any clues?
plugz
Posts: 637
Joined: Sun Apr 12, 2015 6:30 pm
Real Name: David

budblinkin wrote:So I have ran so many tests, using OSC tester etc, it seems that when I send a ',' (comma) via Netcat, it doesn't actually see the packet.
How do you send a ',' via netcat ?
What does not see the packet ? What makes you think "it" does not see the packet ?
budblinkin wrote:So I should be able to send exactly what the OSC tester sends, i've checked it in Cocoa packet analyser,

/multi/0....,i......
Could I see the hex values please ?
budblinkin wrote:They both come up as the same HEX code on the packet analysis, but for some reason when sent from Netcat, OSC on QLC+ doesn't receive the packet.
Can you please tell the EXACT shell command you wrote that does not work ?
budblinkin
Posts: 12
Joined: Fri Dec 18, 2015 9:43 am
Real Name: George Pierson

Hi Plugz, sorry for the delayed response, I have been away the last couple of days so unable to check my notes. I will get this information to you asap.

Thanks for all your help.
joky
Posts: 18
Joined: Tue Jul 07, 2015 5:18 pm
Real Name:

Hi,

I use this command:
echo -e "/1/push1\0,i\0\0\0\x00\x00\xFF" | nc -u 192.168.0.4 7700

7700 is the default port where QLC+ is listening for messages for universe 1 (7701 = Universe 2, ..).

regards
budblinkin
Posts: 12
Joined: Fri Dec 18, 2015 9:43 am
Real Name: George Pierson

Ok ,

So through netcat I was initially sending

/multi/0,i

this didn't work obviously.

when Capturing the packets, it was apparent there was a lot more data going,

(I think) /multi/0/,i was actually /multi/0....,i.....

Which again, didn't work.

I realise from plugz and joky's posts above that I am supposed to send (from netcat) the data as a hex numbers with \ separating the values. However, I was also sending the data direct from netcat, without the echo command, why do I need to use the 'echo' command? So essentially I was sending my two strings above, directly over netcat. But it didn't work. The command would look like

nc -u 192.xxx.xxx.xxx 7700

(enter to open connection)

/multi/0,i

or

/multi/0....,i.....



What I should have sent (not tested yet) was

/multi/0\0,i\0\0\0\x00\x00\x7F ?


When connecting to my RTI control panel, I encoded my second stream above as 'URL' and this has since worked succesfully, I know have control from the wall panel, but not yet from netcat.

Best wishes,
joky
Posts: 18
Joined: Tue Jul 07, 2015 5:18 pm
Real Name:

Hi,

you have to send some 0x00 (NULL), without "echo -e" (or printf) you can't send this char.

regards
Post Reply