Skip to content

Commit

Permalink
Merge pull request #78 from OpenShock/develop
Browse files Browse the repository at this point in the history
Firmware 1.0.0

- We now support **six different boards** (though maintenance levels may vary):
  - Pishock (2023)
  - Pishock Lite (2021)
  - Seeed Xiao ESP32S3
  - Wemos D1 Mini ESP32
  - Wemos Lolin S2 Mini
  - Wemos Lolin S3
- All communication is now **websocket based** and using flatbuffers, allowing for even lower latency between the server and the ESP, with lower resource consumption.
- The **Captive Portal** got a MASSIVE overhaul;
- Serial commands have gotten alot better.
- Improved board stability and configurability.
- Added support for having a E-Stop (emergency stop) connected to ESP as a panic button. Thanks to @nullstalgia  ❤️ 
- And _much, much_ more behind the scenes, including bugfixes and code cleanup.
  • Loading branch information
hhvrc authored Nov 12, 2023
2 parents 9bd9fe2 + 934d72b commit 93920ad
Show file tree
Hide file tree
Showing 275 changed files with 25,873 additions and 1,493 deletions.
222 changes: 222 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
---
# Default style for all languages
IndentWidth: 2
---
Language: Cpp
Standard: c++20
DisableFormat: false

TabWidth: 2
UseTab: Never
IndentWidth: 2
ColumnLimit: 256
ShortNamespaceLines: 2
AccessModifierOffset: -2
ContinuationIndentWidth: 2
ConstructorInitializerIndentWidth: 2
BracedInitializerIndentWidth: 2
CommentPragmas: '^ IWYU pragma:'
LineEnding: LF

IncludeBlocks: Preserve
SortIncludes: CaseInsensitive
# IncludeCategories:
# - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
# Priority: 2
# SortPriority: 2
# CaseSensitive: true
# - Regex: '^((<|")(gtest|gmock|isl|json)/)'
# Priority: 3
# - Regex: "<[[:alnum:].]+>"
# Priority: 4
# - Regex: ".*"
# Priority: 1
# SortPriority: 0
# IncludeIsMainRegex: "([-_](test|unittest))?$"
# IncludeIsMainSourceRegex: ""

AlignAfterOpenBracket: BlockIndent
AlignArrayOfStructures: Right
AlignConsecutiveAssignments:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: true
PadOperators: true
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: true
PadOperators: true
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: true
PadOperators: true
AlignEscapedNewlines: Left
AlignOperands: AlignAfterOperator
AlignTrailingComments:
Kind: Always
OverEmptyLines: 1
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLambdasOnASingleLine: Inline
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BitFieldColonSpacing: Both
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: true
AfterClass: false
AfterControlStatement: MultiLine
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: true
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAfterAttributes: Never
BreakBeforeBinaryOperators: All
BreakBeforeConceptDeclarations: Allowed
BreakBeforeInlineASMColon: Always
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
CompactNamespaces: false
Cpp11BracedListStyle: true
DerivePointerAlignment: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
FixNamespaceComments: true
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: true
IndentExternBlock: NoIndent
IndentGotoLabels: false
IndentPPDirectives: None
IndentRequiresClause: true
IndentWrappedFunctionNames: true
InsertNewlineAtEOF: true
InsertTrailingCommas: Wrapped
IntegerLiteralSeparator:
Binary: 4
BinaryMinDigits: 9
Decimal: 3
DecimalMinDigits: 5
Hex: 2
HexMinDigits: 9
KeepEmptyLinesAtEOF: false
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: OuterScope
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
PPIndentWidth: -1
PackConstructorInitializers: NextLine

PointerAlignment: Left
ReferenceAlignment: Left

RawStringFormats:
- Language: Cpp
Delimiters:
- 'cc'
- 'cpp'
BasedOnStyle: google
CanonicalDelimiter: 'cc'
ReflowComments: true
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: Custom
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: false
AfterIfMacros: false
AfterOverloadedOperator: false
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: true
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInContainerLiterals: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParens: Custom
SpacesInParensOptions:
InConditionalStatements: false
InCStyleCasts: false
InEmptyParentheses: false
Other: false
SpacesInSquareBrackets: false
VerilogBreakBetweenInstancePorts: true

# JSON stuff
BreakArrays: false
SpaceBeforeJsonColon: false

# Macro stuff, don't need to touch this (yet?)
# MacroBlockBegin: ""
# MacroBlockEnd: ""
# Macros: []
# IfMacros: []
# ForEachMacros: []
# TypenameMacros: []
# AttributeMacros: []
# NamespaceMacros: []
# StatementMacros: [] # Could be useful for Qt (Q_OBJECT, Q_PROPERTY, Q_UNUSED, etc.)
# StatementAttributeLikeMacros: [] # Could be useful for Qt (emit, slots, signals, etc.)
# WhitespaceSensitiveMacros: []

# Penalty stuff, not sure how to use this yet
# PenaltyBreakAssignment: 0
# PenaltyBreakBeforeFirstCallParameter: 0
# PenaltyBreakComment: 0
# PenaltyBreakFirstLessLess: 0
# PenaltyBreakOpenParenthesis: 0
# PenaltyBreakString: 0
# PenaltyVreakTemplateDeclaration: 0
# PenaltyExcessCharacter: 0
# PenaltyIndentedWhitespace: 0
# PenaltyReturnTypeOnItsOwnLine: 0
---

15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Editor config

[*]

# Indentation
indent_style = space
indent_size = 2

# Line endings
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.py]
indent_size = 4
4 changes: 4 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
OPENSHOCK_API_DOMAIN=api.shocklink.net
OPENSHOCK_FW_VERSION=0.0.0-unknown
OPENSHOCK_FW_HOSTNAME=OpenShock
OPENSHOCK_FW_AP_PREFIX=OpenShock-
4 changes: 4 additions & 0 deletions .env.development
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Included by WebUI/ (DO NOT RENAME THIS FILE!)
# Intended for development builds (locally).
LOG_LEVEL=VERBOSE
OPENSHOCK_FW_VERSION=0.0.0-local
3 changes: 3 additions & 0 deletions .env.production
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Included by WebUI/ (DO NOT RENAME THIS FILE!)
# Intended for all CI firmware builds.
LOG_LEVEL=INFO
123 changes: 123 additions & 0 deletions .github/ISSUE_TEMPLATE/10-bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: 'Bug Report'
description: "Something isn't working as expected."
title: '[Bug] '
labels: ['type: bug', 'status: triage']
projects: ['OpenShock/3']

body:

- type: markdown
attributes:
value: |
# Checklist
- type: checkboxes
id: checklist
attributes:
label: Pre-submission checklist
description: |
To prevent wasting your or our time, please fill out the below checklist before continuing.
Thanks for understanding!
options:
- label: 'I checked that no other Bug Report describing my problem exists.'
required: true
- label: 'I am running the latest stable or prerelease firmware.'
required: true
- label: 'My board is on the [list of maintained boards](https://wiki.openshock.org/hardware/boards/#fully-maintained).'
required: true
- label: 'I accept that this issue may be closed if any of the above are found to be untrue.'
required: true

- type: markdown
attributes:
value: |
# Board & Firmware
- type: input
id: board
attributes:
label: Board
description: What board are you using?
placeholder: 'E.g.: Wemos Lolin S3, Pishock 2023, ..'
validations:
required: True

- type: input
id: firmware-version
attributes:
label: 'Firmware version'
description: Which firmware version did you flash?
placeholder: 'E.g.: 1.2.4, 1.0.0-rc.4, 0.0.0-develop, ..'
validations:
required: true

- type: textarea
id: flashing-method
attributes:
label: 'Flashing method'
description: Briefly describe how you flashed your firmware.
placeholder: |
Examples:
- I used the web flash tool.
- I used the downloaded flash tool.
- I used a different tool, namely: ...
- I ran this command: ...
validations:
required: true

- type: markdown
attributes:
value: |
# What happened?
- type: textarea
id: what-happened
attributes:
label: 'Describe what happened as precisely as possible.'
validations:
required: true

- type: markdown
attributes:
value: |
# What did you expect to happen?
- type: textarea
id: what-did-you-expect
attributes:
label: 'Describe what you expected to happen instead.'
validations:
required: true

- type: markdown
attributes:
value: |
# Steps to reproduce
- type: textarea
id: how-to-reproduce
attributes:
label: 'In as much detail as possible, describe the exact steps you took to make the problem appear.'
description: |
If we can't reproduce the problem, we won't be able to figure out how to fix it either!
Make sure to be as precise as you can.
placeholder: |
For example:
1. Connect to the OpenShock wifi network
2. Visit `http://10.10.10.10/`
3. Click a WiFi network
4. Everything explodes!
validations:
required: true

- type: markdown
attributes:
value: |
# Anything else?
- type: textarea
id: anything-else
attributes:
label: 'Other remarks'
validations:
required: false
Loading

0 comments on commit 93920ad

Please sign in to comment.