Name | Last modified | Size | Description | |
---|---|---|---|---|
Parent Directory | - | |||
makefile | 2011-07-11 12:54 | 2.6K | ||
lib/ | 2014-12-16 13:44 | - | ||
kernel/ | 2014-10-22 21:16 | - | ||
gui/ | 2014-12-16 13:44 | - | ||
cg.xml | 2014-04-12 10:20 | 1.9K | ||
cg.jar | 2014-12-16 13:45 | 1.1M | ||
adapter/ | 2014-10-22 21:16 | - | ||
See Code Generation section of the Complete Demos page for more demos.
$PTII/ptolemy/cg/adapter/generic/html/demo/HierarchicalModel/HierarchicalModel.xml
$PTII/bin/vergil /Users/cxh/ptII/ptolemy/cg/adapter/generic/html/demo/HierarchicalModel/HierarchicalModel.xml
$PTII/bin/ptcg -language java $PTII/ptolemy/cg/kernel/generic/program/procedural/java/test/auto/Display.xmlor
java -classpath $PTII ptolemy.cg.kernel.generic.GenericCodeGenerator -language java $PTII/ptolemy/cg/kernel/generic/program/procedural/java/test/auto/Display.xml
The cg subpackages are structured so that language specific code is separate from generic code.
The main entry point is
$PTII/ptolemy/cg/kernel/generic/GenericCodeGenerator.java.
This file is invoked by $PTII/bin/ptcg
. To get the complete list
of options, run $PTII/bin/ptcg -help
.
To invoke the cg code generator from the GUI, drag in a code generator attribute from More Libraries -> CodeGenerators ->CGCodegen.
The ptolemy/cg directory has these subdirectories:
.c
file that contains
C-specific blocks of code used in code generation.
For example, we have ptolemy/cg/adapter/generic/program/procedural/c/adapters/ptolemy/actor/lib/gui/Display.java
and ptolemy/cg/adapter/generic/program/procedural/c/adapters/ptolemy/actor/lib/gui/Display.c
.j
file contains the Java template blocks. The file is named .j so that it does not get compiled.
Display
use:
cd $PTII/ptolemy/cg find . -name "Display"
find . -type f | xargs grep MyString
Adding code generation support for an actor is fairly complex, but follows a pattern.
$PTII/ptolemy/cg/adapter/generic/program/procedural/adapters/ptolemy/actor/lib/
$PTII/ptolemy/cg/adapter/generic/program/procedural/c/adapters/ptolemy/actor/lib/
or
$PTII/ptolemy/cg/adapter/generic/program/procedural/java/adapters/ptolemy/actor/lib/
.c
or .j
files that define the blocks
used in the generated code.
test/auto/
directory that contains the test models.
A target is typically an architecture-specific platform. For
example, the arduino
target generates C-code meant to run
on the Arduino platform.
To generate code for a target, use the -generatorPackageList
command line argument to
$PTII/bin/cg
. The value of the -generatorPackageList
parameter i
a semicolon or * separated list of Java packages to be searched for adapters. For example
$PTII/bin/ptcg -generatorPackageList generic.program.procedural.c.arduino ptolemy/cg/adapter/generic/program/procedural/c/arduino/adapters/ptolemy/actor/lib/gui/test/auto/Display.xml