E1.31 Spy - Simple multicast debug tool

BradsXmasLights

WiFi Interactive
Joined
Dec 23, 2010
Messages
601
Location
Brisbane, Australia
Hi All,
With LSP randomly deciding not to output, I wrote a simple E1.31 debug tool that listens to the multicast stream.

Output is displayed visually, as boxes, shaded as per that channels DMX intensity. The 2nd row is channels grouped as per RGB logic, and coloured accordingly.

Command line arguement can be the DMX universe number to force defaulting to a particular universe.

Note that (at this stage at least), only one universe can be monitied at a time. Starting a 2nd copy to monitor another universe will fail.
Also mouse-over the boxes and the channel number will be shown on the tooltip.


Enjoy!
 

Attachments

  • e131spy.png
    e131spy.png
    5.2 KB · Views: 62
  • e131spy.zip
    7.8 KB · Views: 67

dmoore

Senior elf
Joined
Apr 26, 2010
Messages
586
Location
Houston, TX, USA
Thanks for posting this tool. It's little tools like this and xLights and DA_E that are life savers in order to figure out what is "going on" inside all these different systems. I could have seriously used this tool last week since I could never get SACN_view working!

For the help of others... to use this tool you will need to set the output of your application (such as LSP) to the IP address listed in the tool bar. Note that when you change the universe that the last octet of the IP (x.x.x.Y) will change to match the universe.

I'll go ahead and throw my feature requests in for this tool:

* Could it display actual output for a universe in the same way that DA_E does - a grid with boxes and a value of 0-255? This would allow someone that is tracking down issues such as fades from an application not outputting correctly to confirm "is it the hardware or software?" I beta test for LSP and this would be VERY handy since I could screen record the results to prove or disprove an issue.

* Could it be setup to display multiple universes in the "compressed" view? Since most displays using E131 are multi-universe, it allows you to see if there is one that is a problem such as an output not setup correctly that you think is setup.

* Could it allow configuration of a specific IP instead of the default? This would allow someone to plug into netbook PC on the "receiving end" with the production display and confirm expected results without having to rejigger the output IP's.

* The ability to do record and review (not actual output) E131 output. You'd be able to "step through" a recording of a e131 stream where there is quick action and see EXACTLY what a sequencing application is outputting. Again this relates to applications that are not doing what you expect. For someone that is experiencing say, a display with stuck, stuttering, missed output could record a section of the data output from the application and then compare it with the actual sequence. Today there really isn't any way to see, outside of the XML side of a sequence, what is going on "inside" of the output application (LSP, xLights, Vixen, etc). Of course the ability to save and load these captures would be awesome!

Wow, I can really see this application being a "wire shark" for the E131 world. With a number of good E131 output applications, there is surely a deficit on the receiving side of the E131 equation.
 

BradsXmasLights

WiFi Interactive
Joined
Dec 23, 2010
Messages
601
Location
Brisbane, Australia
I forgot to add, you'll also need mswinsck.ocx on your system already.

As for the feature requests...
1. Grid View of values - yes should be fairly straight forward to do.
2. Multiple Universes - this is exactly what I wanted to do originally. However technically my app / winsock was locking the UDP recieve port after a single universe binding. There is an SO_REUSEADDR API to avoid this but i couldn't get it to work. (Not sure if this was a legacy Visual Basic 6 problem or a 'programming isn't my day job' problem)
3. Specific IP? As in Unicast E1.31 operation? Could be done. However the sending app willl need to duplicate it's unicasted output if you want the lights to work at the same time.
4. Recording - thats an idea. I guess a quick and dirty way would be to dump to a CSV file, a line for every E1.31 packet, columns being a timestamp, followed by the DMX values. Then just open it up in Excel to view.
 

Timon

Apprentice elf
Joined
May 9, 2011
Messages
88
Location
Tustin, Ca
I'm going to look at some of the network monitoring tools, preferably free or almost free, for one that you can either write protocol plugins for or that output to a file. The advantage to this is that the capture and logging routines, which can be the hardest parts to write, are fully complete and tested leaving one to only write the display section.

Update.

There are some good programs out there.

WireShark: It's free and runs on both windows and macs. Don't know if it had built in support for E1.31 yet.
nChronos: there is a free version. This is a program that monitors 24x7 and allows you to go back in time. Great front end for WireShark.

I'll post more once I can check on E1.31 support.
 

kane

Dedicated elf
Joined
Dec 23, 2010
Messages
1,033
Location
Trigg (Northern suburbs of Perth)
Timon said:
WireShark: It's free and runs on both windows and macs. Don't know if it had built in support for E1.31 yet.
WireShark does support e1.31 - you need to go in to the settings and enable "Streaming ACN" from memory.. It then decodes the data into a relatively readable format.

It was very useful for me to work out some issues I had with a couple display elements flickering.. I was able to pinpoint that it wasn't the hardware, as the e1.31 data was dodgy... Was able to then focus on looking at LSP to see what it was doing (in the end, just needed to stick in an extra "off" command before a certain point on those elements)
 

Timon

Apprentice elf
Joined
May 9, 2011
Messages
88
Location
Tustin, Ca
Looks to with the three we have the tools needed and at least one runs on the Mac, Yea.
 
Top