Skip to content

Commit

Permalink
Initial commit of foxBMS 2 (v1.0.0)
Browse files Browse the repository at this point in the history
  • Loading branch information
foxBMS committed Apr 1, 2021
0 parents commit 62288b3
Show file tree
Hide file tree
Showing 1,493 changed files with 289,953 additions and 0 deletions.
154 changes: 154 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
Language: Cpp
AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: true
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: "^ IWYU pragma:"
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^"(general\.h)"$'
Priority: -1
SortPriority: -1
- Regex: '^"ltc_defs.h"$'
Priority: 5
SortPriority: 5
- Regex: '^"(Mock).*'
Priority: 0
SortPriority: 4
- Regex: '^"(.*)_cfg.h"$'
Priority: 5
SortPriority: 7
- Regex: '^"(unity)'
Priority: 0
SortPriority: 2
- Regex: '^"HL_.*'
Priority: 10
SortPriority: 10
- Regex: '^"ti_.*'
Priority: 10
SortPriority: 12
- Regex: '^"(FreeRTOS)'
Priority: 15
SortPriority: 15
- Regex: '^"(atomic|croutine|event_groups|message_buffer|queue|semphr|stream_buffer|task|timers)\.h'
Priority: 15
SortPriority: 17
- Regex: '".*"'
Priority: 20
SortPriority: 20
IncludeIsMainRegex: "(_cfg)?$"
IncludeIsMainSourceRegex: ""
IndentCaseLabels: true
IndentGotoLabels: true
IndentPPDirectives: None
IndentWidth: 4
IndentWrappedFunctionNames: true
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ""
MacroBlockEnd: ""
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 20
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 100000
PointerAlignment: Right
ReflowComments: false
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Latest
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 4
UseCRLF: true
UseTab: Never
14 changes: 14 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Prevent project from being labeled as C++ project
*.h linguist-language=C

# Microsoft Office documents
*.pptx diff=pptx

# vendored files
src/os/freertos/* linguist-vendored
tests/scripts/waf-core/* linguist-vendored
tools/vendor/* linguist-vendored
tools/waf linguist-vendored

# files tracked with Git LFS
*.zip filter=lfs diff=lfs merge=lfs -text
31 changes: 31 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Please read this before creating a Pull Request

The foxBMS project is an open source project to empower everybody to build
beyond state of the art battery management systems (BMS) based on software and
hardware that:

- **does not** compromise their outcomes with restricted licenses and
- **does not** create a vendor lock-in.

We therefore release foxBMS with permissive licenses:

- Hardware (layout, schematics) and documentation:
**Creative Commons Attribution 4.0 International License**
- Software: **BSD 3-Clause License**

For details see the [LICENSE](../LICENSE) file and the
[license documentation](https://iisb-foxbms.iisb.fraunhofer.de/foxbms/gen2/docs/html/latest/general/licenses.html).

However foxBMS is not openly developed on GitHub (or any other platform). The
main development on this project is done by members of the Fraunhofer IISB and
organized in a non-public repository at the Fraunhofer IISB. This repository is
the output of the release branch of this internal repository.

This workflow allows us to release these development outputs under these
permissive licenses. We do not have a Contributors License Agreement (CLA)
system or similar that would allow us to integrate input from GitHub Pull
Requests, therefore GitHub Pull Requests are currently not accepted.

We would be very pleased if you intend to contribute to this project. Please
contact us first at [email protected] in order to discuss your contribution and
how it can be applied to the project.
42 changes: 42 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/.vscode/
/build/
/*build/
*/_build/*
/conf/hcg/include/*
/conf/hcg/source/*
/conf/hcg/*_bak.dil
/conf/hcg/*_bak.hcg

*c4che*
/foxbms*/
tools/waf3-*/
.lock-waf*
*.bz2
*.gz
*.zip
# do not ignore zip in hardware
!/hardware/*.zip
*.7z

__pycache__
.mypy_cache/
/qa-chain/*

*.log

*.patch
*.diff

*.jdebug.user

# gcc coverage testing tool files
*.gcno
*.gcda
*.gcov

# ignore temp files
*~

# ignore JabRef - https://www.jabref.org/
*.bak
*.sav
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Changelog

The project changelog is found in
[docs/general/changelog.rst](./docs/general/changelog.rst).
72 changes: 72 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
foxBMS Hardware and Documentation License

Copyright (c) 2010 - 2021, Fraunhofer-Gesellschaft zur Foerderung der
angewandten Forschung e.V.
All rights reserved.

This work is licensed under the Creative Commons Attribution 4.0 International
License. To view a copy of this license, visit
https://creativecommons.org/licenses/by/4.0/.

We kindly request you to use one or more of the following phrases to refer to
foxBMS in your hardware, software, documentation or advertising materials:

* "This product uses parts of foxBMS"
* "This product includes parts of foxBMS"
* "This product is derived from foxBMS"

If you use foxBMS in your products, we encourage you to contact us at:

CONTACT INFORMATION
Fraunhofer IISB
Schottkystrasse 10
91058 Erlangen, Germany
[email protected]
www.foxbms.org

foxBMS Software License

Copyright (c) 2010 - 2021, Fraunhofer-Gesellschaft zur Foerderung der
angewandten Forschung e.V.
All rights reserved.

**BSD 3-Clause License**

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

We kindly request you to use one or more of the following phrases to refer to
foxBMS in your hardware, software, documentation or advertising materials:

* "This product uses parts of foxBMS"
* "This product includes parts of foxBMS"
* "This product is derived from foxBMS"

If you use foxBMS in your products, we encourage you to contact us at:

CONTACT INFORMATION
Fraunhofer IISB
Schottkystrasse 10
91058 Erlangen, Germany
[email protected]
www.foxbms.org
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# foxBMS 2

foxBMS is a free, open and flexible development environment to design battery
management systems. It is the first modular open source BMS development
platform.

## Changelog

The project changelog is found in
[docs/general/changelog.rst](./docs/general/changelog.rst).

## License

The project license is found in [LICENSE](./LICENSE). Basically the software
is covered by the **BSD 3-Clause License** and the hardware and documentation
by the **Creative Commons Attribution 4.0 International License**.
30 changes: 30 additions & 0 deletions conf/bms/bms.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"slave-unit": {
"measurement-ic": {
"manufacturer": "ltc",
"chip": "6813-1"
},
"balancing-strategy": "none",
"temperature-sensor": {
"manufacturer": "epcos",
"model": "b57251v5103j060",
"method": "polynomial"
}
},
"application": {
"algorithm": {
"state-estimation": {
"soc": "counting",
"soe": "counting",
"soh": "none"
}
},
"insulation-monitoring-device": {
"manufacturer": "bender",
"model": "iso165c"
}
},
"operating-system": {
"name": "freertos"
}
}
Loading

0 comments on commit 62288b3

Please sign in to comment.