diff --git a/.github/workflows/test_code.yml b/.github/workflows/test_code.yml index 75539b2c..5b0b23d3 100644 --- a/.github/workflows/test_code.yml +++ b/.github/workflows/test_code.yml @@ -12,13 +12,13 @@ jobs: steps: - uses: actions/checkout@v2 - name: Cache pip - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} restore-keys: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} diff --git a/src/Faults.cpp b/src/Faults.cpp index 65a42717..10a920ea 100644 --- a/src/Faults.cpp +++ b/src/Faults.cpp @@ -14,6 +14,7 @@ namespace fault_groups { Fault *gyro_y_average = new Fault(0x6009); Fault *gyro_z_value = new Fault(0x6010); Fault *gyro_z_average = new Fault(0x6011); + Fault *imu_disable = new Fault(0x6012); } // namespace imu_faults namespace power_faults { Fault *temp_c_value = new Fault(0x6020); diff --git a/src/Faults.hpp b/src/Faults.hpp index 8bb275f6..00e912c8 100644 --- a/src/Faults.hpp +++ b/src/Faults.hpp @@ -17,6 +17,7 @@ namespace fault_groups { extern Fault *gyro_y_average; extern Fault *gyro_z_value; extern Fault *gyro_z_average; + extern Fault *imu_disable; } // namespace imu_faults namespace power_faults { extern Fault *temp_c_value; diff --git a/src/Monitors/IMUMonitor.cpp b/src/Monitors/IMUMonitor.cpp index 8ec480a1..2555bdde 100644 --- a/src/Monitors/IMUMonitor.cpp +++ b/src/Monitors/IMUMonitor.cpp @@ -36,7 +36,7 @@ void IMUMonitor::execute() sfr::imu::power_setting = (uint8_t)sensor_power_mode_type::do_nothing; } - if (sfr::imu::power_setting == (uint8_t)sensor_power_mode_type::on && sfr::imu::powered == false) { + if (sfr::imu::power_setting == (uint8_t)sensor_power_mode_type::on && sfr::imu::powered == false && !fault_groups::imu_faults::imu_disable->get_base()) { #ifdef VERBOSE Serial.println("Turned on IMU"); #endif