Version 6 now available in the
top post.. Note that you will need to replace any modules from previous versions with these new ones, as the communication protocol has been extended.
New Stuff...
- Trigger order slightly changed to make logged events appear in the correct order.
- You can now reset just the trigger counts by clicking in the 'Counts' column of the 'Current Value' display.
- Selections in the Current Value and Events windows are now remembered until explicitly cleared by clicking the title bars.
- Ruby Probe and Console.
The new Ruby parts are still a bit experimental - but they add a couple of interesting ways to tap into the heart of any chosen Ruby module inside the schematic.
First, place a single instance of the "Ruby Probe" module inside the schematic. This creates a new Ruby module that allows the interfacing, using three simple commands...
Debug.watch ("Tag Name",value)Works just like the regular FS 'watch' method, except that the output is directed to the debuggers 'Events' list. The 'TagName' string is optional - items will just get a generic "<Ruby>" label if it is omitted.
Debug.link("Tag Name",@this)Creates a link between the Ruby Console and this Ruby instance. Note, you must pass both a Tag (string), and the instance variable '@this' (@this is a default instance variable that acts as a pointer to the current Ruby). The current Ruby is then added to the 'Ruby ID' drop-down of the Ruby Console. Select a linked instance using the drop down, then type some Ruby code into the upper Ruby Console window. When you press 'Send', that code gets executed within the targeted Ruby instance, and any return values or error messages appear in the lower console window..
Using this, you can view or set variable values within the targeted Ruby, or send values to its inputs and outputs, or even redefine methods (careful now!)
Debug.unlink(@this)Removes the any links between the Console and the current Ruby primitive. Again, the argument must always be the instance variable '@this'.
NB) 'Debug; must always begin with an upper-case 'D', as it is a module name, not a variable.
Also, take care if you are using synchronised modules - if you use one of the Debug methods, the code will be copied into all of the sync'ed modules, creating lots of extra links that all have the same name!