APIC – DBSimGenerator

Convert ICD CSV documents to simulation-ready code blocks.

DBSimGenerator

DBSimGenerator generates simulation and interface code automatically from ICD (Interface Control Document) CSV files. Each CSV defines one or more blocks, containing fields and metadata that describe how data is structured, scaled, and interpreted.

DBSimGenerator automatically generates high-performance C++ code for simulation and interface directly from ICD (Interface Control Document) CSV files. Each CSV defines one block with fields and metadata describing how data is structured, scaled, and interpreted.

Terminology: LRU, Block, Element

ICDs are organized in a three-level hierarchy:

CSV Directory Structure

project_name/
├── LRU_name/
│   ├── Block_name.csv
│   └── Enums.csv
  

Key Features

Workflow

  1. Prepare ICD CSV files and Enums for your blocks.
  2. Organize CSVs in the project → LRU → block structure.
  3. DBSimGenerator reads the CSVs and generates high-performance code.
  4. Generated code integrates with simulation frameworks and hardware drivers.

With DBSimGenerator, you can focus on building your technology while the platform handles 80% of the integration and boilerplate code automatically.

Example ICD CSV snippet

BlockName, FieldName, Type, Size, Description
Telemetry, Altitude, float, 4, Aircraft altitude (m)
Telemetry, Speed, float, 4, Airspeed (m/s)

1. ICD Blocks and Elements

# Bytes Name Data Type Array Size Bits Bits Size Enum Value / Units Eng Type Scale Default Description
4 Altitude R4 1 - - - m float 1.0 0 Aircraft altitude
4 Speed R4 1 - - - m/s float 1.0 0 Aircraft speed

2. Data Type Specification

Short Type Size (Bytes) Min Max Resolution
U1Unsigned Char102551
I1Signed Char1-1281271
X1Bitfield1n/an/an/a
U2Unsigned Short20655351
I2Signed Short2-32768327671
X2Bitfield2n/an/an/a
U4Unsigned Long404,294,967,2951
I4Signed Long4-2,147,483,6482,147,483,6471
X4Bitfield4n/an/an/a
R4IEEE 754 Single Precision4-1×21272127≈2⁻²⁴
R8IEEE 754 Double Precision8-1×2102321023≈2⁻⁵³
X8Bitfield8

3. Enums

NameValue
Mode_Manual0
Mode_Auto1
Error_None0x00
Error_Sensor0x01