Git Product home page Git Product logo

cpswt-cpp's Introduction

CPSWT C++ Integration

Integrates support for C++ federates into the Cyber-Physical Systems Wind Tunnel.

Any C++-based federate will use the classes in this repository in order to execute.

The primary projects relating to CPSWT functionality are as follows. Any projects not listed are under development or are not currently being used.

foundation/core

This project contains classes needed for core functionality of any C++ class that implements an HLA interaction or object class. A description of some of the more important classes follows:

  • TypeMedley

    An instance of this class can represent an HLA interaction parameter of any allowed type (boolean, byte, character, double, float, int, long, short, String).

  • Attribute

    Derived from the TypeMedley class, an instance of this class can represent an HLA object attribute of any allowed type (boolean, byte, character, double, float, int, long, short, String). It also detects when an attribute of an object has changed, so that on an object attribute update, only the values of the attributes that have changed are sent into the HLA.

  • ClassAndPropertyName

    An instance of this class names a property (parameter of attribute) of an interaction or object that is qualified with the name of the interaction or object class in which it is directly defined. This disambiguates two properties of the same name but which are defined in different classes.

  • InteractionRootInterface

    Abstract class defining the base interaction of all C++ class implementations of HLA interaction classes.

  • ObjectRootInterface

    Abstract class defining the base interaction of all C++ class implementations of HLA object classes.

foundation/CppTestHarness

This project allows rti stubs to be created for testing of C++ federates, interactions, and objects

foundation/rti-base

This project the C++ base classes for C++ classes that implement HLA interaction and object classes in CPSWT. These C++ base classes, InteractionRoot and ObjectRoot, actually contain all of the functionality needed to implement any HLA interaction or object class. As such, they allow C++-based federates to use dynamic messaging: this enables the federates to manipulate any HLA interaction or object class instance using only the InteractionRoot or ObjectRoot C++ class, respectively. That is, an HLA interaction or object instance can be manipulated without an explicit corresponding C++ class.

As well, rti-base contains the explicit corresponding Java class implementations for the a set of built-in HLA interaction and object classes that are built-in to CPSWT. This classes are derived from InteractionRoot and ObjectRoot, and are listed below (indentation shows inheritance):

HLA Interactions:

InteractionRoot
  C2WInteractionRoot
    ActionBase
    EmbeddedMessaging
    FederateJoinInteraction
    FederateResignInteraction
    OutcomeBase
    SimLog
      VeryLowPrio
      LowPrio
      MediumPrio
      HighPrio
    SimulationControl
      SimPause
      SimResume
      SimEnd

HLA Objects:

ObjectRoot
  FederateObject

foundation/config

This project contains Java classes that read federate configuration files.

foundation/SyncronizedFederate

This project contains the SynchronizedFederate class, which is the base class of all C++-based federates.

cpswt-cpp's People

Contributors

hneema08 avatar hnine999 avatar justinyeh1995 avatar martyburns avatar nadand avatar sperka avatar tpr1 avatar yogeshvu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.