Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

Configured C modules



C modules can be specified with an XML file specifying how they are interfaces with the framework. Contrary to basic C modules, they must have: You need both the library and the configuration, but contrary to basic C modules, its much more simpler to connect the C library to the framework.

Declaration

These modules are declared by the top-level cModule element. For example:
      <cModule name="FlightManagementSystem">

The declaration of a configured C module is exactly the same as for basic C modules. The difference is in the cImplementation child element.

C implementation

The cImplementation element declares the C dll which implements the module. For example:

      <cModule name="FlightManagementSystem">
         <cImplementation path="myCLib" nativeConfig="nativeConf.xml"/>
      </cModule>
The path attribute refer to the name of the dll (without the ".dll" extension) which implements the module. The path of this file is by default relative to the application.xml file which declares the module.

The nativeConfig attribute specifies the interfacing configuration.

The declaration of the cImplementation has one difference from a basic C module: the nativeConfig attribute specifies the interfacing configuration. This is the only thing which separate a basic C module from a configured C module.

Native configuration specification


Configured C modules are specified with an XML file specifying how they are interfaces with the framework. Contrary to basic C modules, they must have:
  • A native configuration specification, which specifies the bridge between the services and the native C function declarations. The interfacing configuration has the following grammar: nativeConfig.xsd
  • A Java interfacing library which models the native C functions with a JNA Java interfaces

See also


Categories: concepts | development

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence