Menu

Tree [dcb889] master /
 History

HTTPS access


File Date Author Commit
 c3 2021-06-21 Jan Schlamelcher Jan Schlamelcher [911c6c] Fixes for clang 12 API compatibility.
 docker 2021-02-15 Jan Schlamelcher Jan Schlamelcher [c7f00b] Introduced pocspec2reqif and various fixes.
 libzipformat 2021-02-02 Jan Schlamelcher Jan Schlamelcher [b7f752] Fixes for compiler and Clang version compatibil...
 pocspec 2021-06-25 Martin Kasparick Martin Kasparick [4b81d6] bugfix: opening <tr> tag were missing before (n...
 tutorial 2021-04-06 Jan Schlamelcher Jan Schlamelcher [ec4958] Introduced README.md and tutorial.
 CMakeLists.txt 2021-02-12 Jan Schlamelcher Jan Schlamelcher [87cbc2] Added requirements parser and various fixes.
 LICENSE.TXT 2021-07-14 Jan Schlamelcher Jan Schlamelcher [dcb889] Added LICENSE.TXT.
 README.md 2021-04-06 Jan Schlamelcher Jan Schlamelcher [26172d] Added missing and corrected paths in README.md.
 extra.xml 2021-02-15 Jan Schlamelcher Jan Schlamelcher [89aa09] Fixed an error in extra.xml.
 nomenclature.md.c3 2021-02-02 Jan Schlamelcher Jan Schlamelcher [925a90] Added input file debug for nomenclature generator.
 sortId.hpp 2020-12-02 Jan Schlamelcher Jan Schlamelcher [987a5e] Many new things.
 xml2parser.c3 2020-12-02 Jan Schlamelcher Jan Schlamelcher [987a5e] Many new things.

Read Me

PoCSpec Tooling

The PoCSpec tooling project provides applications for translating our custom XML specifications into
artifacts for the upcoming standard.

Examples

  • pocspec2html HF-Device.xml – will produce HF-Device.html to visualize the DevSpec.
  • pocspec2reqif -o HF-Device-filled.reqif HF-Device.reqif HF-Device.xml – will fill HF-Device-filled.reqif with information from the DevSpec.
  • pocspec2schematron HF-Device.xml – will produce a Schematron file for validating a device model against the DevSpec.

Requirements

The project requires a C++17 compliant compiler, CMake and the following libraries:

Compiling

To compile the project run the following commands (replacing the parameters in <> with appropriate values for your system):

mkdir -p pocspec-tooling/build
cd pocspec-tooling
git clone https://<username>@git.code.sf.net/p/pocspec/tooling pocspec-tooling
cd build
cmake -DPOCSPEC_NOMENCLATURE_DIR=<path/to/nomenclature> -DPOCSPEC_SPEC_DIR=<path/to/dev-and-mod-specs> ../pocspec-tooling
make -j<number-of-CPU-threads>

The resulting applications can be found in the subdirectory pocspec/apps inside the build directory.

Usage

See Examples. All applications except pocspec2schematron print generic usage options/parameters when called without any arguments.
The tool pocspec2reqif is the most complicated one, here is a more detailed tutorial to use it:

Using pocspec2reqif

Given the example files inside the tutorial directory of this project, you may run:

pocspec2reqif -o tutorial.reqif sdc-ieee-requirements-model-plain.reqif tutorial.xml

for producing a tutorial.reqif that contains some of the information from tutorial.xml in the specified place.
You may then use the external ieee-converter tool to produce a standard .docm document the following way:

java -jar /path/to/ieee-converter.jar -f ./tutorial.reqif

Choosing what information from the tutorial.xml is placed into the generated tutorial.reqif happens via
the include-spec(...) mechanism. Have a look at sdc-ieee-requirements-model-plain.reqif, you will
notice an element containing include-spec(GasSupplyVMD). This selects the information from tutorial.xml
using the string GasSupplyVMD. Open tutorial.xml, you will notice the following XML element:

<pm:Vmd Handle="vmd_gas_supply" PoCSpecCardinalityMin="0" PoCSpecCardinalityMax="INF" EntryPointId="GasSupplyVMD">

This is the way to specify an entrypoint into our Dev- or ModSpec. Entrypoints may be defined for MDS, VMD and Channel
elements and be referenced from anywhere inside a .reqif file using the include-spec(...) mechanism described above.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.