usnistgov / ucef-meta

WebGME Federate and Experiment Designer
MIT License
3 stars 3 forks source link

Update for new SCU build #30

Closed tpr1 closed 5 years ago

tpr1 commented 5 years ago

Changes to Seeds: 1) Moved all existing seeds to the _archive directory 2) Created a new seed called hla-federation a) New TRNSYS federate type (unused) b) New CodeGeneratedName field for interactions (unused) c) New CodeGeneratedName field for objects (unused) d) New EnableCodeGeneration field for federates (unused) e) Restructured the FOMSheet hierarchy

Changes to Federates Exporter: 1) Collapsed the project-java-federates directory into the top level directory 2) Generated a build.sh script for Java + LabVIEW + GridLAB-D federates 3) Generated a build-all.sh script at the top level directory 4) Generated a run.sh script for Java federates 5) Updated run.sh script to accept a path to a configuration file 6) Renamed Java configuration files from ClassNameConfig.json to ClassName.json 7) (C++) Removed reference to non-existent parent pom.xml 8) (C++) Renamed project-cpp-federates directory to cpp-federates 9) (C++) Generated a build.script for C++ federates

Changes to Deployment Exporter 1) Changed the Java federate dependencies to match reality 2) Updated the ExecJava profile to actually execute the Java 3) Renamed the FederationManagerExecJava profile to FederationManager 4) Generated a run-default.sh script to run 1 of each federate 5) Generated a run-manager.sh script to run and start the federation manager 6) (C++) Generated a build-cpp.sh script to run the confusing Maven NAR process

tpr1 commented 5 years ago

The run-default.sh script is pretty kludgy. It must be run with the command bash run-default.sh dir/to/generated/code and will explode if run with sh.

It only supports Java, LabVIEW, GridLAB-D, and C++ federate types; using another federate type will create a script that hangs forever.

It's behavior is inconsistent: Java and C++ federates will execute from _deployment using the _deployment configuration files, while LabVIEW and GridLAB-D will execute from _generated using the _generated configuration files. This is because LabVIEW and GridLAB-D cannot be run from a remote directory (they need to be next to their model files), and C++ cannot be run from its generated directory (the NAR stuff is only done by the deployment pom).

It is, however, nicer than having nothing. I recommend you just use it as a template and customize it for your federation.