*/
-#include "json_helper.hpp"
#include "low_can_client.hpp"
+#include "json_helper.hpp"
#include "hmi-debug.h"
extern "C" {
LowCanClient::LowCanClient() :
vehicle_speed_(0),
trans_gear_pos_(0),
- park_brake_status_(TRUE),
+ parking_brake_status_(TRUE),
headlamp_status_(FALSE),
+ prv_parking_brake_state_("parking_brake_on"),
+ crr_parking_brake_state_("parking_brake_on"),
prv_car_state_("car_stop"),
crr_car_state_("car_stop"),
prv_lamp_state_("lamp_off"),
crr_lamp_state_("lamp_off"),
+ is_changed_parking_brake_state_(false),
is_changed_car_state_(false),
is_changed_lamp_state_(false)
{
else if (strstr(name, "parking_brake_status")) {
HMI_DEBUG("wm:lcc", "Receive parking brake status");
// Update parking gear status
- json_bool park_brake = jh::getBoolFromJson(object, "value");
- if (this->park_brake_status_ != park_brake) {
- this->park_brake_status_ = park_brake;
- HMI_DEBUG("wm:lcc", "Update parking brake status:%d", this->park_brake_status_);
+ json_bool parking_brake = jh::getBoolFromJson(object, "value");
+ if (this->parking_brake_status_ != parking_brake) {
+ this->parking_brake_status_ = parking_brake;
+ HMI_DEBUG("wm:lcc", "Update parking brake status:%d", this->parking_brake_status_);
}
}
else if (strstr(name, "headlamp_status")) {
}
}
+ // Update parking brake state
+ if (this->parking_brake_status_) {
+ this->crr_parking_brake_state_ = "parking_brake_on";
+ }
+ else {
+ this->crr_parking_brake_state_ = "parking_brake_off";
+ }
+ HMI_DEBUG("wm:lcc", "Current parking brake state:%s", this->crr_parking_brake_state_.c_str());
+
// Update car state
- if ((0 == this->vehicle_speed_) || (true == this->park_brake_status_)) {
+ if ((0 == this->vehicle_speed_) || (true == this->parking_brake_status_)) {
this->crr_car_state_ = "car_stop";
}
else {
}
HMI_DEBUG("wm:lcc", "Current lamp state:%s", this->crr_lamp_state_.c_str());
+ // If parking brake state is changed,
+ // backup current state for previous state and set flag
+ if (this->prv_parking_brake_state_ != this->crr_parking_brake_state_) {
+ HMI_DEBUG("wm:lcc", "Parking Brake state is changed: %s -> %s",
+ this->prv_parking_brake_state_.c_str(), this->crr_parking_brake_state_.c_str());
+ this->prv_parking_brake_state_ = this->crr_parking_brake_state_;
+ this->is_changed_parking_brake_state_ = true;
+ }
+
// If car state is changed,
// backup current state for previous state and set flag
if (this->prv_car_state_ != this->crr_car_state_) {
}
}
+bool LowCanClient::isChangedParkingBrakeState() {
+ HMI_DEBUG("wm:lcc", "Call");
+
+ // Return changed flag
+ return this->is_changed_parking_brake_state_;
+}
+
bool LowCanClient::isChangedCarState() {
HMI_DEBUG("wm:lcc", "Call");
return this->is_changed_lamp_state_;
}
+const char* LowCanClient::getCurrentParkingBrakeState() {
+ HMI_DEBUG("wm:lcc", "Call");
+
+ // Clear changed flag
+ this->is_changed_parking_brake_state_ = false;
+
+ // Return current parking brake state
+ return this->crr_parking_brake_state_.c_str();
+}
+
const char* LowCanClient::getCurrentCarState() {
HMI_DEBUG("wm:lcc", "Call");