Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.7.0-rc.1 #91

Merged
merged 100 commits into from
Feb 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
fbbf901
Merge branch 'master' into develop
leon0399 Aug 7, 2023
18ad21b
refactor(Haptics): new effects interface
leon0399 Aug 11, 2023
2394497
refactor(bHaptics): use new Haptics interfafce
leon0399 Aug 11, 2023
164f0ed
refactor(bHaptics): update firmwares after refactoring
leon0399 Aug 12, 2023
6f3b63f
refactor(bHaptics): add Decoder class
leon0399 Aug 16, 2023
4a6c2a9
refactor(bHaptics): advanced TactGlove layout
leon0399 Aug 16, 2023
27c6650
refactor(bHaptics): restructure lib
leon0399 Aug 21, 2023
445efe7
refactor(bHaptics): use updated haptics core
leon0399 Aug 21, 2023
992ad11
Merge pull request #77 from senseshift/feature/haptics-refactoring
leon0399 Aug 21, 2023
0b7a1ec
refactor(Output): generic actuators
leon0399 Aug 21, 2023
2598d7e
Merge pull request #78 from senseshift/feature/generic_actuators
leon0399 Aug 21, 2023
4977fd0
refactor(Core): move to `SenseShift` namespace and directory
leon0399 Aug 21, 2023
169f50e
refactor(Input): move to `SenseShift` namespace and directory
leon0399 Aug 21, 2023
b9c791e
refactor(Battery): use `SenseShift` lib namespace and dir
leon0399 Aug 21, 2023
bfb53df
refactor(Core): use `SenseShift` namespace and dir for math
leon0399 Aug 21, 2023
ccf35e7
refactor(Core): use `SenseShift` namespace and dir for calibration
leon0399 Aug 21, 2023
87e8a2b
refactor: move serial plotter to `SenseShift` namespace/dir
leon0399 Aug 21, 2023
4f81890
refactor(BLE): rename global NimBLE flag
leon0399 Aug 22, 2023
1e635bc
format(clang): inline short functions
leon0399 Aug 22, 2023
e3c1639
fix(BLE): non-NimBLE S/N char
leon0399 Aug 22, 2023
8a1e2b5
refactor(FreeRTOS): move to `SenseShift` namespace/dir
leon0399 Aug 22, 2023
46743e9
refactor(Battery): decouple battery API and impl
leon0399 Aug 24, 2023
bb73823
ci(GitHub): easier build flag handling
leon0399 Aug 24, 2023
6ae3811
Merge pull request #79 from senseshift/refactor/namespace
leon0399 Aug 24, 2023
854f5c5
refactor(Input): use memoized sensor by default
leon0399 Aug 28, 2023
2f105aa
Merge pull request #81 from senseshift/feature/refactor-sensors
leon0399 Aug 28, 2023
985e4c0
refactor: use advanced PlatformIO LDF
leon0399 Aug 30, 2023
f1dd8cc
refactor(Haptics): move into `SenseShift` dir/namespace
leon0399 Aug 24, 2023
ae5355e
feat(OpenGloves): use Frozen for command mapping
leon0399 Aug 27, 2023
4317abf
Merge pull request #82 from senseshift/feature/libs-refactor
leon0399 Sep 1, 2023
6629ccd
chore: add devcontainer codespace
leon0399 Sep 5, 2023
7046ec8
Merge pull request #84 from senseshift/feature/codespaces
leon0399 Sep 5, 2023
ba92af5
ci(GitHub): add Wokwi testing
leon0399 Sep 6, 2023
cde4b29
Merge pull request #85 from senseshift/feature/wokwi-actions
leon0399 Sep 6, 2023
e7db5fb
refactor(OpenGloves): decouple transport and serialization
leon0399 Sep 3, 2023
efae0e0
feat(Input): add averaged sensor
leon0399 Sep 3, 2023
e28d5df
refactor(OpenGloves): auto-configure transport
leon0399 Sep 3, 2023
83e95fe
feat(OpenGloves): debug performance
leon0399 Sep 3, 2023
1f21404
feat(OpenGloves): add BLE stream
leon0399 Sep 3, 2023
f8a9deb
style(clang-format): fix formatting
leon0399 Sep 3, 2023
b3ef92a
ci(GitHub): cover BLE transport
leon0399 Sep 3, 2023
1b91c22
feat(IO): add Median Filter sensor
leon0399 Sep 4, 2023
3161613
refactor: decouple buffer from BLE Serial
leon0399 Sep 4, 2023
295ecc5
refactor(BLE): optimize Serial lib
leon0399 Sep 6, 2023
82d996c
docs: add Wokwi debug guide
leon0399 Sep 6, 2023
d8e45a0
refactor(OpenGloves): optimize encoding
leon0399 Sep 6, 2023
9acd9a3
test(Calibration): cover center point deviation
leon0399 Sep 8, 2023
14a2b5b
ci(GitHub): add Wokwi for lucidglove proto 4
leon0399 Sep 8, 2023
a770fce
Merge pull request #86 from senseshift/feature/wokwi-lucidglove-proto4
leon0399 Sep 10, 2023
20c06e0
Merge branch 'feature/opengloves-transport' into develop
leon0399 Sep 10, 2023
3a2b887
fix(Wokwi): test scenario indentation
leon0399 Sep 10, 2023
a373ccd
chore: add Wakatime to devcontainer
leon0399 Sep 28, 2023
af9df06
refactor: remove C-styled `_t` typedefs
leon0399 Sep 29, 2023
abf6424
Merge pull request #87 from senseshift/feature/remove-c-typedefs
leon0399 Sep 29, 2023
fc0fc55
chore: add VSCode extensions recommends
leon0399 Oct 13, 2023
2d125a4
ci: change lcov reporter
leon0399 Oct 23, 2023
25356a4
ci: configure codecov
leon0399 Oct 24, 2023
a783e4f
Merge pull request #90 from senseshift/feature/better-lcov-report
leon0399 Oct 24, 2023
452ac00
Merge branch 'master' into develop
leon0399 Nov 4, 2023
99d96f0
feat(deps): update frozen submodule
leon0399 Nov 5, 2023
92c5d13
chore(PlatformIO): separate configs
leon0399 Dec 30, 2023
5ff08c3
Merge branch 'master' into develop
leon0399 Jan 20, 2024
9e33f0b
refactor: simplyfy overall setup and structure
leon0399 Jan 26, 2024
176f5e5
refactor(Battery): use analog float sensor
leon0399 Jan 27, 2024
2d163b6
refactor(Sensor): new sensor stack with filters
leon0399 Jan 29, 2024
fa661e7
refactor: improve overall code readability
leon0399 Feb 1, 2024
0be58cc
refactor(Calibration): apply SFINAE
leon0399 Feb 6, 2024
2f6cfe1
refactor(OpenGloves): universal encoder
leon0399 Feb 7, 2024
d105900
refactor(OpenGloves): reuse same structure for data and source sensors
leon0399 Feb 8, 2024
3b8a90e
refactor(FreeRTOS): make SensorUpdateTask universal for components
leon0399 Feb 8, 2024
13f3b54
test(Gestures): refactor old OG tests
leon0399 Feb 8, 2024
809f14e
fix: sensor template deduction
leon0399 Feb 8, 2024
f43319a
test(OpenGloves): update old alpha-encoding unit test
leon0399 Feb 8, 2024
48d8277
test: cover edge-cases
leon0399 Feb 9, 2024
01c9a06
feat(OpenGloves) re-introduce simple data sending
leon0399 Feb 9, 2024
825e6f0
test(Input): cover filters
leon0399 Feb 10, 2024
728bd79
fix(OpenGloves): tick input sensors
leon0399 Feb 10, 2024
54212c0
fix(OpenGloves): incorrect gesture alpha char
leon0399 Feb 10, 2024
637f561
test(OpenGloves): update Wokwi test
leon0399 Feb 11, 2024
a2fd378
perf(OpenGloves): fix slow tick rate
leon0399 Feb 11, 2024
9b493d2
feat(OpenGloves): add decoder for FFB
leon0399 Feb 11, 2024
529a0cc
feat(OpenGloves): bring back FFB
leon0399 Feb 18, 2024
dbf35e2
fix(BLE Serial): fix sending duplicate strings
leon0399 Feb 18, 2024
74cd0aa
fix(bHaptics): removed file being included
leon0399 Feb 18, 2024
ddff5a4
style(clang-format): lint-fix
leon0399 Feb 18, 2024
c2d34c6
ci(Wokwi): execute calibration
leon0399 Feb 18, 2024
6c1bcc2
feat(deps): remove Frozen lib from submodules
leon0399 Feb 18, 2024
c37b633
Merge pull request #95 from senseshift/feature/frozen-lib-link
leon0399 Feb 18, 2024
2f0b216
refactor(OpenGloves): separate autoconfig for tracking/ffb
leon0399 Feb 19, 2024
0628ff6
style: format INI files
leon0399 Feb 19, 2024
581ef29
Merge remote-tracking branch 'origin/develop' into feature/simplify
leon0399 Feb 19, 2024
1d42b34
fix(OpenGloves): manually initialize sensor pointers
leon0399 Feb 19, 2024
dc59f87
feat(Arduino): bring back INA219 Current Sensor
leon0399 Feb 19, 2024
78431bb
chore: remove references of output serial plotter
leon0399 Feb 19, 2024
049a942
Merge pull request #93 from senseshift/feature/simplify
leon0399 Feb 20, 2024
bf53c10
perf(OpenGloves): remove unoptimized float casting (#96)
leon0399 Feb 22, 2024
47ba284
chore(IDE): stage CLion workspace config (#97)
leon0399 Feb 22, 2024
433793b
feat: deduct interpolation template
leon0399 Feb 22, 2024
c7afbe4
chore: shorten project defines prefix
leon0399 Feb 22, 2024
17a13e9
Merge pull request #98 from senseshift/feature/interpolation-coverage
leon0399 Feb 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ AllowAllConstructorInitializersOnNextLine: 'true'
AllowAllParametersOfDeclarationOnNextLine: 'true'
AllowShortBlocksOnASingleLine: 'false'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortFunctionsOnASingleLine: Empty
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Empty
AllowShortLoopsOnASingleLine: 'false'
Expand Down
52 changes: 52 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu

ARG CLANG_VERSION=16

RUN apt-get update \
&& apt-get -qqy install \
lsb-release \
wget \
software-properties-common \
gnupg \
bc \
sudo \
build-essential \
ca-certificates \
clang \
curl \
gcc \
git \
python3 \
python3-dev \
python3-pip \
python3-venv \
python3-distutils \
python3-setuptools \
libpython2.7-dev \
srecord \
udev \
xz-utils \
&& wget --quiet https://apt.llvm.org/llvm.sh \
&& chmod +x llvm.sh \
&& ./llvm.sh $CLANG_VERSION && rm -rf llvm.sh \
&& apt-get --no-install-recommends -y install clang-format-$CLANG_VERSION clang-tidy-$CLANG_VERSION \
&& ln -s /usr/bin/clang-format-$CLANG_VERSION /usr/bin/clang-format \
&& ln -s /usr/bin/clang-tidy-$CLANG_VERSION /usr/bin/clang-tidy \
&& ln -s /usr/bin/python3 /usr/bin/python \
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*

RUN curl -fLo /etc/udev/rules.d/99-platformio-udev.rules --create-dirs https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules

USER $USERNAME

# RUN wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py \
# && python3 get-platformio.py \
# && rm -rf get-platformio.py

RUN python -m pip install --upgrade pip \
&& pip install --upgrade platformio

RUN sudo wget -O /usr/local/bin/wokwi-cli https://github.com/wokwi/wokwi-cli/releases/latest/download/wokwi-cli-linuxstatic-x64 \
&& sudo chmod +x /usr/local/bin/wokwi-cli
60 changes: 60 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
// "name": "SenseShift",
"build": {
"dockerfile": "Dockerfile"
},
"runArgs": [
"--privileged"
],
"forwardPorts": [
8008
],
"mounts": [
"source=/dev/,target=/dev/,type=bind,consistency=consistent"
],
"updateContentCommand": {
"submodule": "git submodule update --init --recursive",
"pio": "pio pkg install"
},
"postAttachCommand": [
"sudo",
"service",
"udev",
"restart"
],
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"platformio-ide.useBuiltinPIOCore": false,
"platformio-ide.useBuiltinPython": false,
"platformio-ide.disablePIOHomeStartup": true,
"platformio-ide.pioHomeServerHttpPort": 8008,
"platformio-ide.autoOpenPlatformIOIniFile": false,
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true
},
"files.associations": {
"**/.vscode/*.json": "jsonc"
},
"C_Cpp.clang_format_path": "clang-format"
},
"extensions": [
"ms-vscode.cpptools",
"redhat.vscode-yaml",
"platformio.platformio-ide",
"Wokwi.wokwi-vscode",
"xaver.clang-format",
"editorconfig.editorconfig",
"GitHub.copilot",
"GitHub.copilot-labs",
"GitHub.copilot-chat",
"wakatime.vscode-wakatime"
]
}
}
}
57 changes: 32 additions & 25 deletions .github/scripts/get_firmware_name.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,16 @@ getBhapticsName() {
echo "::debug::Getting bHaptics name for $target"
echo "::debug::Flags are $flags"

if [[ $flags =~ BLUETOOTH_USE_NIMBLE=true ]]; then
if [[ $flags =~ SS_BLE_USE_NIMBLE=true ]]; then
echo "::debug::Nimble is enabled, appending +nimble to the target"
target="$target+nimble"
fi

if [[ $flags =~ BATTERY_ENABLED=true ]]; then
if [[ $flags =~ SS_BATTERY_ENABLED=true ]]; then
echo "::debug::Battery is enabled, appending +battery to the target"
target="$target+battery"
fi

if [[ $flags =~ SERIAL_PLOTTER=true ]]; then
echo "::debug::Serial Plotter is enabled, appending +serialplotter to the target"
target="$target+serialplotter"
fi

echo "firmware=$target"
if [[ -n "$GITHUB_ACTIONS" ]]; then
echo "firmware=$target" >> "$GITHUB_OUTPUT"
Expand All @@ -32,6 +27,22 @@ getBhapticsName() {
fi
}

handleCalibrationFlag() {
local target=$1
local flag=$2
local prefix=$3

if [[ $flag =~ MinMaxCalibrator ]]; then
target="$target+${prefix}_minmax"
elif [[ $flag =~ FixedCenterPointDeviationCalibrator ]]; then
target="$target+${prefix}_fcpd"
elif [[ $flag =~ CenterPointDeviationCalibrator ]]; then
target="$target+${prefix}_cpd"
fi

echo "$target"
}

getOpenGlovesName() {
local target=$1
# rest of params
Expand All @@ -43,27 +54,23 @@ getOpenGlovesName() {
if [[ $flags =~ OPENGLOVES_COMM_SERIAL ]]; then
echo "::debug::Serial is enabled, appending +serial to the target"
target="$target+serial"
fi

if [[ $flags =~ OPENGLOVES_COMM_BTSERIAL ]]; then
elif [[ $flags =~ OPENGLOVES_COMM_BTSERIAL ]]; then
echo "::debug::Bluetooth Serial is enabled, appending +bluetooth to the target"
target="$target+bluetooth"
elif [[ $flags =~ OPENGLOVES_COMM_BLESERIAL ]]; then
echo "::debug::BLE Serial is enabled, appending +ble to the target"
target="$target+ble"
fi

if [[ $flags =~ CALIBRATION_CURL=OH::MinMaxCalibrator ]]; then
echo "::debug::MinMaxCalibrator is enabled, appending +curl_minmax to the target"
target="$target+curl_minmaxcalib"
fi
for flag in "${@:2}"; do
if [[ $flag =~ CALIBRATION_CURL ]]; then
target=$(handleCalibrationFlag "$target" "$flag" "curl_calib")
fi

if [[ $flags =~ CALIBRATION_CURL=OH::CenterPointDeviationCalibrator ]]; then
echo "::debug::CenterPointDeviationCalibrator is enabled, appending +curl_cpcalib to the target"
target="$target+curl_cpcalib"
fi

if [[ $flags =~ CALIBRATION_CURL=OH::FixedCenterPointDeviationCalibrator ]]; then
echo "::debug::FixedCenterPointDeviationCalibrator is enabled, appending +curl_fcpcalib to the target"
target="$target+curl_fcpcalib"
fi
if [[ $flag =~ CALIBRATION_SPLAY ]]; then
target=$(handleCalibrationFlag "$target" "$flag" "splay_calib")
fi
done

echo "firmware=$target"
if [[ -n "$GITHUB_ACTIONS" ]]; then
Expand All @@ -77,9 +84,9 @@ getOpenGlovesName() {
target=$1
echo "::debug::Target is $target"
if [[ $target =~ ^(bhaptics) ]]; then
getBhapticsName $@
getBhapticsName "${@}"
elif [[ $target =~ ^(opengloves|lucidgloves|indexer) ]]; then
getOpenGlovesName $@
getOpenGlovesName "${@}"
else
echo "::error::Unknown target $target"
exit 1
Expand Down
Loading
Loading