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 measurement IC 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 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) |
|
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 |