From 496e53b848aa4d08fed29a2d9646cc529feef7c2 Mon Sep 17 00:00:00 2001 From: Dawid Wojtas Date: Wed, 31 Aug 2022 15:29:31 +0200 Subject: [PATCH] [MOS-692] Update slider after tethering is off When tethering is on we can change the slider position, however we can't change the slider mode. If we change the slider position after tethering is off we need to update the slider mode. Fix typo in Y register. --- .../rt1051/bsp/magnetometer/magnetometer.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/module-bsp/board/rt1051/bsp/magnetometer/magnetometer.cpp b/module-bsp/board/rt1051/bsp/magnetometer/magnetometer.cpp index b1a8a5d9a2471210a8ec8136982ca52b88b3a013..66f7fd2ffa7cf42b66637f4fff05d27ce5fcf673 100644 --- a/module-bsp/board/rt1051/bsp/magnetometer/magnetometer.cpp +++ b/module-bsp/board/rt1051/bsp/magnetometer/magnetometer.cpp @@ -35,8 +35,8 @@ namespace bsp xQueueHandle qHandleIrq = nullptr; - bsp::KeyCodes current_parsed = bsp::KeyCodes::Undefined; - + bsp::KeyCodes current_parsed = bsp::KeyCodes::Undefined; + bsp::KeyCodes last_slider_position = bsp::KeyCodes::Undefined; Measurements last{}; enum class LPDCM_INACTIVE_TIME @@ -265,8 +265,7 @@ namespace bsp als31300::measurements_LSB_reg reg_lsb = read_reg; meas.X = als31300::measurement_sign_convert(reg_msb.X_MSB << 4 | reg_lsb.X_LSB); - meas.Y = als31300::measurement_sign_convert( - reg_msb.Y_MSB << 4 | reg_lsb.Z_LSB); // TODO here we merge wrong registers - Y with Z + meas.Y = als31300::measurement_sign_convert(reg_msb.Y_MSB << 4 | reg_lsb.Y_LSB); meas.Z = als31300::measurement_sign_convert(reg_msb.Z_MSB << 4 | reg_lsb.Z_LSB); return meas; @@ -307,24 +306,25 @@ namespace bsp // Y is used only for proofing X, so no strict thresholds // Z is useless - auto code = bsp::KeyCodes::Undefined; + auto position = last_slider_position; if (sliderChangedPosition(measurements)) { if (measurements.X < X_lower_threshold) { if (measurements.Y > Y_threshold) { - code = bsp::KeyCodes::SSwitchDown; + position = bsp::KeyCodes::SSwitchDown; } } if (measurements.X > X_upper_threshold) { if (measurements.Y > Y_threshold) { - code = bsp::KeyCodes::SSwitchUp; + position = bsp::KeyCodes::SSwitchUp; } } if (measurements.Y < Y_threshold) { - code = bsp::KeyCodes::SSwitchMid; + position = bsp::KeyCodes::SSwitchMid; } + last_slider_position = position; } - return code; + return position; } void resetCurrentParsedValue()