Skip to content

Commit

Permalink
Merge pull request #98 from senseshift/feature/interpolation-coverage
Browse files Browse the repository at this point in the history
feat: deduct interpolation template
  • Loading branch information
leon0399 committed Feb 22, 2024
2 parents 47ba284 + c7afbe4 commit 17a13e9
Show file tree
Hide file tree
Showing 24 changed files with 127 additions and 93 deletions.
4 changes: 2 additions & 2 deletions .github/scripts/get_firmware_name.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ getBhapticsName() {
echo "::debug::Getting bHaptics name for $target"
echo "::debug::Flags are $flags"

if [[ $flags =~ SENSESHIFT_BLE_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 =~ SENSESHIFT_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
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,27 +32,27 @@ jobs:
- bhaptics_tactal
- bhaptics_tactvisor
- bhaptics_tactglove_right
battery_flag: [ SENSESHIFT_BATTERY_ENABLED=true ]
nimble_flag: [ SENSESHIFT_BLE_USE_NIMBLE=false ]
battery_flag: [ SS_BATTERY_ENABLED=true ]
nimble_flag: [ SS_BLE_USE_NIMBLE=false ]
coverage: [ false ]

include:
# Extra tests for x40, as it uses the most features
- target: bhaptics_tactsuit_x40
os: ubuntu-latest
coverage: true
battery_flag: SENSESHIFT_BATTERY_ENABLED=true
nimble_flag: SENSESHIFT_BLE_USE_NIMBLE=true
battery_flag: SS_BATTERY_ENABLED=true
nimble_flag: SS_BLE_USE_NIMBLE=true
# - target: bhaptics_tactsuit_x40
# os: ubuntu-latest
# coverage: true
# battery_flag: SENSESHIFT_BATTERY_ENABLED=true
# nimble_flag: SENSESHIFT_BLE_USE_NIMBLE=false
# battery_flag: SS_BATTERY_ENABLED=true
# nimble_flag: SS_BLE_USE_NIMBLE=false
- target: bhaptics_tactsuit_x40
os: ubuntu-latest
coverage: false
battery_flag: SENSESHIFT_BATTERY_ENABLED=true
nimble_flag: SENSESHIFT_BLE_USE_NIMBLE=true
battery_flag: SS_BATTERY_ENABLED=true
nimble_flag: SS_BLE_USE_NIMBLE=true

steps:
- uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

# Enabling all flags to test build for every feature
battery_flag:
- SENSESHIFT_BATTERY_ENABLED=true
- SS_BATTERY_ENABLED=true

steps:
- name: Checkout repository
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ jobs:
- bhaptics_tactglove_left
- bhaptics_tactglove_right
battery_flag:
- SENSESHIFT_BATTERY_ENABLED=true
- SS_BATTERY_ENABLED=true
nimble_flag:
- SENSESHIFT_BLE_USE_NIMBLE=true
- SS_BLE_USE_NIMBLE=true

steps:
- uses: actions/checkout@v3
Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
8 changes: 4 additions & 4 deletions firmware/mode_configs/bhaptics/tactglove.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ using namespace SenseShift::Body::Haptics;
extern Application App;
Application* app = &App;

static constexpr Body::Hands::HandSide handSide = Body::Hands::HandSide::SENSESHIFT_HAND_SIDE;
static constexpr Body::Hands::HandSide handSide = Body::Hands::HandSide::SS_HAND_SIDE;
// clang-format off
static const auto& bhLayout = handSide == Body::Hands::HandSide::Left ? BH::TactGloveLeftLayout : BH::TactGloveRightLayout;
// clang-format on
Expand Down Expand Up @@ -63,16 +63,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactosy2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactosyf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactosyh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactsuit_x16.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,16 +66,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactsuit_x16_pca9685.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactsuit_x40.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,16 +80,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage

Check warning on line 87 in firmware/mode_configs/bhaptics/tactsuit_x40.cpp

View check run for this annotation

Codecov / codecov/patch

firmware/mode_configs/bhaptics/tactsuit_x40.cpp#L84-L87

Added lines #L84 - L87 were not covered by tests
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(

Check warning on line 89 in firmware/mode_configs/bhaptics/tactsuit_x40.cpp

View check run for this annotation

Codecov / codecov/patch

firmware/mode_configs/bhaptics/tactsuit_x40.cpp#L89

Added line #L89 was not covered by tests
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Check warning on line 94 in firmware/mode_configs/bhaptics/tactsuit_x40.cpp

View check run for this annotation

Codecov / codecov/patch

firmware/mode_configs/bhaptics/tactsuit_x40.cpp#L93-L94

Added lines #L93 - L94 were not covered by tests

Expand Down
6 changes: 3 additions & 3 deletions firmware/mode_configs/bhaptics/tactvisor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,16 @@ void setupMode()
);
bhBleConnection->begin();

#if defined(SENSESHIFT_BATTERY_ENABLED) && SENSESHIFT_BATTERY_ENABLED == true
#if defined(SS_BATTERY_ENABLED) && SS_BATTERY_ENABLED == true
auto* batteryVoltageSensor = new SimpleSensorDecorator(new AnalogSimpleSensor(36));
batteryVoltageSensor->addFilters({
new MultiplyFilter(3.3F), // Convert to raw pin voltage
new VoltageDividerFilter(27000.0F, 100000.0F), // Convert to voltage divider voltage
});
auto* batteryTask = new ::SenseShift::FreeRTOS::ComponentUpdateTask<SimpleSensorDecorator<float>>(
batteryVoltageSensor,
SENSESHIFT_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SENSESHIFT_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
SS_BATTERY_SAMPLE_RATE,
{ "ADC Battery", 4096, SS_BATTERY_TASK_PRIORITY, tskNO_AFFINITY }
);
batteryTask->begin();

Expand Down
16 changes: 8 additions & 8 deletions include/config/battery.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#pragma once

#ifndef SENSESHIFT_BATTERY_ENABLED
#define SENSESHIFT_BATTERY_ENABLED false
#ifndef SS_BATTERY_ENABLED
#define SS_BATTERY_ENABLED false
#endif

#ifndef SENSESHIFT_BATTERY_SAMPLE_RATE
#define SENSESHIFT_BATTERY_SAMPLE_RATE 10000
#ifndef SS_BATTERY_SAMPLE_RATE
#define SS_BATTERY_SAMPLE_RATE 10000
#endif

#ifndef SENSESHIFT_BATTERY_THRESHOLD_PERCENTAGE
#define SENSESHIFT_BATTERY_THRESHOLD_PERCENTAGE 20
#ifndef SS_BATTERY_THRESHOLD_PERCENTAGE
#define SS_BATTERY_THRESHOLD_PERCENTAGE 20
#endif

#ifndef SENSESHIFT_BATTERY_TASK_PRIORITY
#define SENSESHIFT_BATTERY_TASK_PRIORITY 1
#ifndef SS_BATTERY_TASK_PRIORITY
#define SS_BATTERY_TASK_PRIORITY 1
#endif
4 changes: 2 additions & 2 deletions include/config/bluetooth.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
}
#endif

#ifndef SENSESHIFT_BLE_USE_NIMBLE
#define SENSESHIFT_BLE_USE_NIMBLE false
#ifndef SS_BLE_USE_NIMBLE
#define SS_BLE_USE_NIMBLE false
#endif
4 changes: 2 additions & 2 deletions ini/bhaptics.ini
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ monitor_speed = ${bhaptics.monitor_speed}
build_flags =
${bhaptics.build_flags}
-D BH_DEVICE_TACTGLOVE
-D SENSESHIFT_HAND_SIDE=Left
-D SS_HAND_SIDE=Left
-D BH_BLE_APPEARANCE=508
'-D BLUETOOTH_NAME="TactGlove (L"'
'-D BH_SERIAL_NUMBER={ 0xcd, 0x0b, 0x81, 0x45, 0x85, 0xf9, 0x2b, 0x6c, 0xed, 0x5b }'
Expand All @@ -284,7 +284,7 @@ monitor_speed = ${bhaptics.monitor_speed}
build_flags =
${bhaptics.build_flags}
-D BH_DEVICE_TACTGLOVE
-D SENSESHIFT_HAND_SIDE=Right
-D SS_HAND_SIDE=Right
-D BH_BLE_APPEARANCE=508
'-D BLUETOOTH_NAME="TactGlove (R"'
'-D BH_SERIAL_NUMBER={ 0x12, 0x0b, 0xae, 0xbf, 0xbc, 0x90, 0x3b, 0x0d, 0x84, 0xdd }'
Expand Down
5 changes: 4 additions & 1 deletion lib/battery/senseshift/battery/input/battery_sensor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ namespace SenseShift::Battery::Input {
protected:
[[nodiscard]] auto lookupInterpolateLevel(VoltageType voltage) -> float
{
return ::SenseShift::lookup_table_interpolate<VoltageType, float, Container>(*this->lookup_table_, voltage);
return ::SenseShift::lookup_table_interpolate_linear<Container, VoltageType, float>(
*this->lookup_table_,
voltage
);
}

private:
Expand Down
8 changes: 4 additions & 4 deletions lib/bhaptics_ble/senseshift/bh/ble/connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#include <Arduino.h>

#if defined(SENSESHIFT_BLE_USE_NIMBLE) && SENSESHIFT_BLE_USE_NIMBLE == true
#if defined(SS_BLE_USE_NIMBLE) && SS_BLE_USE_NIMBLE == true
// BLE2902 not needed: https://github.com/h2zero/NimBLE-Arduino/blob/release/1.4/docs/Migration_guide.md#descriptors

#define PROPERTY_READ NIMBLE_PROPERTY::READ
Expand Down Expand Up @@ -77,7 +77,7 @@ namespace SenseShift::BH::BLE {
);
};

Check warning on line 78 in lib/bhaptics_ble/senseshift/bh/ble/connection.cpp

View check run for this annotation

Codecov / codecov/patch

lib/bhaptics_ble/senseshift/bh/ble/connection.cpp#L78

Added line #L78 was not covered by tests

#if defined(SENSESHIFT_BLE_USE_NIMBLE) && SENSESHIFT_BLE_USE_NIMBLE == true
#if defined(SS_BLE_USE_NIMBLE) && SS_BLE_USE_NIMBLE == true
void onStatus(BLECharacteristic* pCharacteristic, Status s, int code) override

Check warning on line 81 in lib/bhaptics_ble/senseshift/bh/ble/connection.cpp

View check run for this annotation

Codecov / codecov/patch

lib/bhaptics_ble/senseshift/bh/ble/connection.cpp#L81

Added line #L81 was not covered by tests
#else
void onStatus(BLECharacteristic* pCharacteristic, Status s, uint32_t code) override
Expand Down Expand Up @@ -182,7 +182,7 @@ namespace SenseShift::BH::BLE {
| PROPERTY_NOTIFY // for whatever reason, it have to be writable, otherwise Desktop app crashes
);

#if !defined(SENSESHIFT_BLE_USE_NIMBLE) || SENSESHIFT_BLE_USE_NIMBLE != true
#if !defined(SS_BLE_USE_NIMBLE) || SS_BLE_USE_NIMBLE != true
batteryChar->addDescriptor(new BLE2902());
#endif

Expand All @@ -209,7 +209,7 @@ namespace SenseShift::BH::BLE {
);
monitorChar->setCallbacks(new LogOutputCharCallbacks());

Check warning on line 210 in lib/bhaptics_ble/senseshift/bh/ble/connection.cpp

View check run for this annotation

Codecov / codecov/patch

lib/bhaptics_ble/senseshift/bh/ble/connection.cpp#L210

Added line #L210 was not covered by tests

#if !defined(SENSESHIFT_BLE_USE_NIMBLE) || SENSESHIFT_BLE_USE_NIMBLE != true
#if !defined(SS_BLE_USE_NIMBLE) || SS_BLE_USE_NIMBLE != true
monitorChar->addDescriptor(new BLE2902());
#endif

Expand Down
2 changes: 1 addition & 1 deletion lib/bhaptics_ble/senseshift/bh/ble/connection.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include <Arduino.h>
#include <esp_wifi.h>

#if defined(SENSESHIFT_BLE_USE_NIMBLE) && SENSESHIFT_BLE_USE_NIMBLE == true
#if defined(SS_BLE_USE_NIMBLE) && SS_BLE_USE_NIMBLE == true
#include <NimBLEDevice.h>
#else
#include <BLEDevice.h>
Expand Down

0 comments on commit 17a13e9

Please sign in to comment.