diff --git a/apps/ec/ServoService/servoController/servo_controller.cpp b/apps/ec/ServoService/servoController/servo_controller.cpp index 9406471e..90245608 100644 --- a/apps/ec/ServoService/servoController/servo_controller.cpp +++ b/apps/ec/ServoService/servoController/servo_controller.cpp @@ -43,6 +43,7 @@ void ServoController::closingThreadLoop(const std::stop_token& token) { } if (cfg.value().open_time_end <= now) { servo_ctr_.SetServoPosition(cfg.value(), 0); + servo_cfg_mng.SetServoPosition(id, kCloseState); } else { auto time_until_end = std::chrono::duration_cast< std::chrono::milliseconds>(cfg.value().open_time_end - now); diff --git a/apps/ec/ServoService/servoController/servo_driver.hpp b/apps/ec/ServoService/servoController/servo_driver.hpp index b95c96e6..94e94fe1 100644 --- a/apps/ec/ServoService/servoController/servo_driver.hpp +++ b/apps/ec/ServoService/servoController/servo_driver.hpp @@ -66,8 +66,9 @@ class ServoDriver { } } - const uint16_t target_position = ((state == kOpenState) ? cfg.on_pos : cfg.off_pos) - * config.pca9685_XO_corelation; + const float corelation = (config.pca9685_XO_corelation > 0.0f && config.pca9685_XO_corelation < 1.2f ) ? config.pca9685_XO_corelation : 1.0f; + const uint16_t target_position = static_cast( + ((state == kOpenState) ? cfg.on_pos : cfg.off_pos) * corelation); logger_.LogDebug() << "ServoController.ExecuteServoMovement: setting actuator " << "to PWM " << target_position; diff --git a/apps/ec/engine_service/engine_app.cpp b/apps/ec/engine_service/engine_app.cpp index deaf6b0d..c3440521 100644 --- a/apps/ec/engine_service/engine_app.cpp +++ b/apps/ec/engine_service/engine_app.cpp @@ -229,6 +229,7 @@ void EngineApp::OnDisarm() { ara::log::LogError() << "cant disarm pin: " << pin.name; } } + servo_handler_->SetMainServoValue(0); servo_handler_->SetVentServoValue(0); servo_handler_->SetDumpValue(0); } diff --git a/deployment/tools/ecu/BUILD b/deployment/tools/ecu/BUILD index 23002375..dddb1984 100644 --- a/deployment/tools/ecu/BUILD +++ b/deployment/tools/ecu/BUILD @@ -3,7 +3,7 @@ load("@srp_platform//tools/common:flash_ecu.bzl", "flash_ecu") flash_ecu( name = "flash_ec", file = ["//deployment/cpu/ec:pkg"], - ip = "192.168.10.101", + ip = "192.168.10.51", tool = select({ "//:sim": "//deployment/bazel:docker_flash_sh", "//conditions:default": "//deployment/bazel:flash_sh", @@ -14,7 +14,7 @@ flash_ecu( flash_ecu( name = "flash_fc", file = ["//deployment/cpu/fc:pkg"], - ip = "192.168.10.101", + ip = "192.168.10.52", tool = select({ "//:sim": "//deployment/bazel:docker_flash_sh", "//conditions:default": "//deployment/bazel:flash_sh", diff --git a/mw/gpio_server/gpio_mw.cpp b/mw/gpio_server/gpio_mw.cpp index 34a84b93..0284ac00 100644 --- a/mw/gpio_server/gpio_mw.cpp +++ b/mw/gpio_server/gpio_mw.cpp @@ -94,11 +94,14 @@ std::vector GPIOMWService::RxCallback(const std::string& ip, const std: } auto new_time = std::chrono::high_resolution_clock::now() + std::chrono::milliseconds(hdr.value().time_period); - expire_it->second.disable_tp = std::max(expire_it->second.disable_tp, new_time); - if (hdr.value().time_period == 0) { - expire_it->second.infinite_active = true; - } else if (hdr.value().force_time_period) { - expire_it->second.infinite_active = false; + if (hdr.value().force_time_period) { + expire_it->second.disable_tp = new_time; + expire_it->second.infinite_active = (hdr.value().time_period == 0); + } else { + expire_it->second.disable_tp = std::max(expire_it->second.disable_tp, new_time); + if (hdr.value().time_period == 0) { + expire_it->second.infinite_active = true; + } } } return {core::ErrorCode::kOk};