Infopipe Stub Generator (ISG) Demo



The ISG demo creates a front-end to show how the Infopipe Stub Generator (ISG) works. ISG can be used as a tool to generate code based on a high level domain specification (SIP). It has been used to the re-cast several other projects, including the GaTech Multi-UAV demo, into infopipe based versions. This ISG demo harness is fully implemented in GTK+ (thus GLib and GDK). The following is a walk-through of the ISG demo.


1. Start up screen.





The default demonstration after starting the ISG demo is the GaTech Multi-UAV demo. The main window is divided into 4 parts: the largest sub-window is on the right which displays the various specification(s) or their related source code file(s). The image shown is the SIP file for the Multi-UAV demo. Here is the full SIP specification for the Multi-UAV demo.

2. From SIP to XIP



The SIP window has a button "=>XIP", which can be used to generate the corresponding XIP. Click on that button, 2 popup windows show both SIP and XIP.



Click on any place in either the SIP or XIP window, the corresponding code segment of SIP and XIP will be highlighted in red.

Here's an example displaying corresponding datatype blocks.



Here's an example displaying the composedPipe.



The complete source of XIP can be found here.

3. From XIP to Generated code



The XIP window has a button "Gen Code" that can be used to invoke the ISG code generator to create source code derived from the matching SIP and XIP.



The ISG code generator will be invoked from the ISG demo:



Let's see one example of how XIP spec is transformed into the generated code. The `uavReceiverNormal' pipe in XIP actually matches the 2 generated C source files about the receiver side in the Multi-UAV demo:



The generated code is built into object files and then can be linked into the Multi-UAV demo source and sink applications:



Here's the list of the generated files: allNodes.h, sender.h, sender.c, receiver.h, receiver.c.


Wenchang
Nov., 2002