Debugging Tool V006

For general discussion related FlowStone
User avatar
trogluddite
Posts: 1730
Joined: Fri Oct 22, 2010 12:46 am
Location: Yorkshire, UK

Debugging Tool V006

Post by trogluddite »

Seasons greetings, everyone.
Couldn't let the Xmas holidays go by without posting up a little present for you all - so here's a little tool I've been working on that I hope you'll find useful.

You know that thing - you're trying to debug a schematic, so you put in a load of little boxes so that you can read some values. But they're all on different levels of the schematic, so you can't see them just at the critical moment, and miss the very event you were looking out for as you stumbled in and out of nested. sub-nested, sub-sub-nested modules.
GRrrrr....

So how about a little window that you can stick elsewhere on your desktop that can show you your 'test probe' values no matter where you are looking in the schematic....

Debug Screen.jpg
Debug Screen.jpg (137.98 KiB) Viewed 28542 times

DOWNLOAD:
Debug Window 006.fsm
(177.96 KiB) Downloaded 1260 times

NB) Before downloading, you might want to read THIS.... If you need the ability to monitor running vst or exe exports, this is still the version to use - but it is not 100% reliable. A better version, but only for monitoring schematics within the FS editor, is on its way soon.

There are five modules included...
1) Debugger Window. Export this as an .exe file, then open the .exe and stick it somewhere visible whenever you need to do some de-bugging.
2) Debug Probe (green). Stick one of these anywhere in your schematic that you want to test a 'green' value. Don't worry about the string input; most other data types will automatically convert to strings, so other types aren't really needed. Each one has a 'Tag' box where you can name it for easy identification - individual probes are always 'unique' even if the names are the same, and you can rename at any time. The probe output is usually just a copy of the input, but you can also type values in the main Debug application and have them sent as 'test signals'. You can use just the module's input or output, or use both together.
3) Debug Probe (stream). Just the same for streams, except there's a little on/off LED, and a setting for how fast you want the stream values to be sampled.
4) Debug Probe (MIDI) - sends a text description of incoming MIDI messages. Extra data (e.g. velocity, channel) can be seen if you examine a message in the 'Value' viewer window. To send midi from the main application use either a comma separated list 'status,channel,data1,data2', or enter a SysEx hex string (including the F0 and F7).
The Debug .exe application starts a network server, to which each sender connects - so that data can be sent regardless of position in the schematic.
5) Debug Probe (Ruby) - this acts as a 'gateway' for other Ruby instances to communicate with the de-bugger. It adds a new Ruby module called "Debug" with methods for outputting values to the Debug events list, and for linking a Ruby instance to the 'Ruby Console' from where you can execute commands in the context of any chosen 'linked' Ruby editor.
The main app' also has a couple of other tricks up its sleeve...

CURRENT VALUES window
- The 'Current Values' area shows the values of all currently monitored 'senders'.
- And a count of how many events have been received - clear either main view window to reset the counts to zero.
- Click the labels bar to clear the list and start afresh.
- Click tag names in the list to select them. CTRL and SHIFT can be used for regular windows style multiple selections. The Events list (see below), will now filter the incoming events to show only the selected values.
- R-click the tag names area to remove the selection, and see incoming events without filtering.
- The latest incoming value is still shown in the 'Current Values' even for filtered out data.
- Click a value in the 'Values' column to enter a new value, which will be sent to the probes output connector.

EVENTS window
- Shows incoming events, timetamped with the system time when they happened.
- Click the label bar to clear the current data.
- Some values aren't going to fit inside the little columns (e.g. arrays, long strings). No problem - click a value to highlight it, and it will appear in all its glory within the large 'Value' window.
- Max.events sets how far back you want data to be remembered.

RUBY CONSOLE
- If you have a Ruby probe module inside your schematic, you can then link any Ruby editor to the console using the method "Debug.link('TagName',@this)". A reference to this Ruby instance will then appear on the Console's drop down list of Ruby ID's. You can now enter a short chunk of Ruby code into the upper of the two Ruby console windows. The code will be executed in the context of the chosen linked Ruby instance, and any return values or error messages are directed to the lower console window.
For example - typing "output 0,'Hello'" and sending this to a linked Ruby instance will output 'Hello' on the first output of the targeted Ruby editor.

I've tested on both my machines without any problems - though bear in mind that your firewall settings etc. could disrupt the network link - and I have very little experience with these kind of connections!! If you get a pop-up box warning you about opening the connection, click to allow the connection and this should be remembered for next time.
A small file and folder is saved inside your 'Application Data' folder - this is used to store the IP address allocated to the main program, so that the senders are able to find the correct IP and port addresses.

All bug reports and suggestions for improvements will be gratefully received - just post a reply to this thread, or PM me.

Best Wishes

Trog Luddite
Last edited by trogluddite on Fri Dec 28, 2012 5:04 pm, edited 4 times in total.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
User avatar
digitalwhitebyte
Posts: 106
Joined: Sat Jul 31, 2010 10:20 am

Re: Xmas Prezzie - Debugging Tool

Post by digitalwhitebyte »

NetXmas to you !!! :arrow: Dubug :idea:
User avatar
trogluddite
Posts: 1730
Joined: Fri Oct 22, 2010 12:46 am
Location: Yorkshire, UK

Re: Xmas Prezzie - Debugging Tool

Post by trogluddite »

Cheers DWB, whatever it was that you meant! ;) :?

Next version now available in the top post.
- Trigger counters for each variable. Clear either main window to reset the counts to zero.
- MIDI sender module that gives a text description of incoming MIDI messages. More detailed info for each message can be seen if you select an event for viewing in the 'Value' window.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
User avatar
trogluddite
Posts: 1730
Joined: Fri Oct 22, 2010 12:46 am
Location: Yorkshire, UK

Re: Xmas Prezzie - Debugging Tool

Post by trogluddite »

PS) Just tested....

If you leave the 'senders' in your schematic when you export, they continue working - so you can still use the main debug application to view your 'probe' data while you are using your design in context.
Make sure to delete them before you share your final export with the world - the unusual network activity might scare people!
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
TomC
Posts: 13
Joined: Fri Jul 16, 2010 10:38 pm

Re: Xmas Prezzie - Debugging Tool

Post by TomC »

trogluddite wrote:Seasons greetings, everyone.
Couldn't let the Xmas holidays go by without posting up a little present for you all - so here's a little tool I've been working on that I hope you'll find useful.


Hey, that's great. I started something similar, but never found the time to make it nice and sexy.
Thanks for saving my time :-)

Have a nice Christmas time.

Tom
TomC
Posts: 13
Joined: Fri Jul 16, 2010 10:38 pm

Re: Xmas Prezzie - Debugging Tool

Post by TomC »

trogluddite wrote:Make sure to delete them before you share your final export with the world - the unusual network activity might scare people!


Just add a global 'Off' switch to disable them.

Tom
Tronic
Posts: 539
Joined: Wed Dec 21, 2011 12:59 pm

Re: Xmas Prezzie - Debugging Tool

Post by Tronic »

           :mrgreen:
        :oops: :oops:
      :oops: :lol: :oops:
    :oops: :P :P :oops:
  :oops: :shock: :shock: :shock: :oops:
:oops: :roll: :roll: :roll: :roll: :oops:
User avatar
Walter Sommerfeld
Posts: 250
Joined: Wed Jul 14, 2010 6:00 pm
Location: HH - Made in Germany
Contact:

Re: Xmas Prezzie - Debugging Tool

Post by Walter Sommerfeld »

Merry XMas Trog,

awesome work - again... :ugeek:
This is the new Analysis tool 4 me/us...

Dunno where u get the time 4 this perfect tool(s).

Best wishes

Walter
User avatar
digitalwhitebyte
Posts: 106
Joined: Sat Jul 31, 2010 10:20 am

Re: Xmas Prezzie - Debugging Tool

Post by digitalwhitebyte »

@trog: :D After I recovered my mind, from a party night alcoholic.

DWB_MOD
Proposes the use of Broadcast IP and udp data type.

The broadcast ip ensure data is propagate to all local network.
The udp type is preferable for data that does not need to be verified.

This can also make the module "IP store", an extra option only for debugging,
but not necessary for the senders, to guarantee for future connections.

Happy Christmas to all !!!
Attachments
Debug Window 003_DWB_MOD_Proposing_Broadcast_IP_&_UDP.fsm
(171.79 KiB) Downloaded 1177 times
User avatar
trogluddite
Posts: 1730
Joined: Fri Oct 22, 2010 12:46 am
Location: Yorkshire, UK

Re: Xmas Prezzie - Debugging Tool

Post by trogluddite »

Thanks all!

@DWB) Aha, yes I am showing my lack of knowledge about network setup :oops:
Will look into this suggestion some more, to make the next version more simple to use; many thanks. :D
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Post Reply