for carriage return, [image_count] for variables, etc.)
and click on Send Now. The text will be parsed and sent to the program and the response will then
appear in the console log. Note that this is different from the send sequence which will be sent each time
the module is encountered in the processing pipeline. The Send Now button is a manual testing
mechanism meant for debugging purposes. Also note that the returned text will be parsed by the
Receive Sequence so that you can test your parsing code and see if the variables have been created.
Use the Watch Variables module to see those variables being created.
6. Refresh Rate - to slow the scrolling of output select a different refresh rate for the console. This will just slow down
how quickly RoboRealm reads information from the application.
7. Initialization Sequence - The initialization data sequence sends the provided string to the program
on initialization of communication. You may want to use
this to command the custom application into a specific mode ready for communication with RoboRealm. This initialization
sequence is sent each time the communication is reset. This happens when you click on the "Stop" button in
this interface, change one of the above parameters (Baud, Port, etc) or when the RoboRealm starts running for the
first time. It is NOT sent when the Run button in the main RoboRealm interface is toggled.
8. Send sequence - Used to enter commands sent per pipeline loop (i.e. image processed) by RoboRealm. You can
use this sequence to transmit variables created by other RoboRealm modules to the
program. Each time an image is captured and processed the Execute Program module will
interpret the Send Sequence text and send the result to the program.
9. Enable - Allows you to temporarily disable sending text to the program while performing
edits. Note that the Send Sequence textarea will turn red to indicate this setting.
10. Send Rate - Some applications cannot handle data rapid streams. Use this
dropdown to select how quickly you want the data to be sent. At AFAP (As Fast As Possible) the data
will be sent out about 30 times a second (this assumes a camera running at 30 fps).
11. Send only on change - If your data does need to be sent out to your program every iteration
through the processing pipeline loop this selection will prevent the same data from being sent to the
program that was last sent. This is also an elegant way to reduce the data bandwidth to the
program if your sequence does not change rapidly.
12. Receive sequence - used to receive and parse text send from the program. The
text string is matched against the incoming bytes. When a match is found
variables are added into RoboRealm for use in other modules. Reading into variables just
requires adding in a variable at the appropriate spot within the receive string similar to the
scanf routine in C/C++. The Receive sequence works similar to an expect string, i.e. you need to
specify patterns that match the incoming text and substitute the areas that need to be
fed into variables with the [ variable_nane ] format. Note that even if you are missing
one space or newline the patter will not match and the variable will be zero or blank. See the Serial
module for more examples on what can be specified in the Receive sequence.
Notes
For an example of how to write a program using the Execute Program module you can download the
Extensions.zip file.
You will find a Console folder in there with an example program on how to write an Execute
Program. The example program will receive input from RoboRealm and write whatever it receives
(terminated by a newline) to the file "c:\temp\log.txt".
The "Stdin Send" text would then be
[COG_X]
[COG_Y]
to cause that program to write the COG variables to disk (this assumes you have inserted the
COG module somewhere in the pipeline. Note that the "Program File" would need to be something like
C:\RoboRealm\Extensions\Console\Debug\Console.exe
See Also
Pipe Program
VBScript Program