2. Repository Structure
The foxBMS 2 repository is structured into the following parts (see
Table 2.1). All directory names are
abbreviated (e.g., conf
for configuration
) to ensure a compact
repository structure and avoid long command lines during build steps.
directory |
long name |
content description |
---|---|---|
|
repository root |
the repository root contains the license information, a changelog and the main build script |
|
Configuration |
contains all high level configurations |
|
Documentation |
documentation source files |
|
Hardware |
hardware schematics and layouts |
|
Source |
parent directory for all source files for the BMS embedded software |
|
Tests |
tests for embedded sources, the tool chain, the conda environment and scripts |
|
Tools |
tools needed to build foxBMS 2 binaries and additional tools to work with foxBMS 2 |
2.1. Configuration directory conf
The conf
directory is structured into the following parts (see
Table 2.2).
directory |
long name |
content description |
---|---|---|
|
Battery Management System |
configuration of the BMS (e.g., which AFE is used) |
|
C compiler |
compiler configuration (e.g., compiler flags) |
|
Environment |
environment specifications configuration files (e.g., Conda package dependencies) |
|
Formatting |
formatting rules for source files |
|
Guidelines |
Guideline check configuration |
|
HALCoGen |
HALCoGen configuration files for the Hardware Abstraction Layer |
|
Static Program Analysis |
configuration and template files for static program analysis |
|
Templates |
template files for source files |
|
Unit tests |
unit test configuration files |
2.2. Documentation directory docs
This directory contains the general documentation and links the API documentation generated by Doxygen.
2.3. Hardware directory hardware
This directory contains the hardware schematics and layouts.
2.4. Source directory src
The src
directory is structured into the following parts (see
Table 2.3).
directory |
long name |
content description |
---|---|---|
|
Application |
sources files for the BMS application |
|
Hardware Abstraction Layer |
source files of the Hardware Abstraction Layer |
|
Optional |
optional source files (e.g., specific cell parameters) |
|
Operating System |
source files of the real time operating system |
2.5. Tests directory tests
The tests
directory is structured into the following parts (see
Table 2.4).
directory |
long name |
content description |
---|---|---|
|
Axivion |
configuration files to describe the architecture of foxBMS 2. Additional static program analysis configurations are stored here (e.g., MISRA-C) |
|
Hardware in the Loop |
scripts and configurations to run HIL tests |
|
scripts |
unit test of scripts (e.g., Python, shell) |
|
unit tests |
unit tests for embedded sources |
2.6. Tools directory tools
The tools
directory is structured into the following parts (see
Table 2.5).
directory |
long name |
content description |
---|---|---|
|
Cyclic redundancy check |
Jupyter notebooks to help generate CRC-functions |
|
Debugger |
Debugger setups and usage |
|
Graphical User Interface |
GUI to interact with foxBMS 2 and foxBMS 2 generated data |
|
Editor/Integrated Development Environment |
Setups for editors and IDE |
|
utils |
unspecific helper tools and scripts |
|
Waf tools |
Waf tools that are not part of vendored Waf |
|
Waf |
Waf binary |