aboutsummaryrefslogtreecommitdiffstats
path: root/src/app.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/app.cpp')
-rw-r--r--src/app.cpp42
1 files changed, 39 insertions, 3 deletions
diff --git a/src/app.cpp b/src/app.cpp
index 20f5b56..afd690f 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -351,14 +351,40 @@ void App::allocateWindowResource(char const *event, char const *drawing_name,
// Release json_object
json_object_put(json_in);
- // Cat state
+ // Check parking brake state
+ json_object* json_parking_brake;
+ if (!json_object_object_get_ex(json_out, "parking_brake", &json_parking_brake)) {
+ reply("Not found key \"parking_brake\"");
+ return;
+ }
+
+ json_bool is_changed;
+ is_changed = jh::getBoolFromJson(json_parking_brake, "is_changed");
+ if (is_changed) {
+ // Update parking brake state
+ std::string parking_brake_state = jh::getStringFromJson(json_parking_brake, "state");
+ HMI_DEBUG("wm", "parking_brake_state: %s", parking_brake_state.c_str());
+
+ // Emit parking brake event
+ if ("parking_brake_off" == parking_brake_state) {
+ this->emitParkingBrakeOff();
+ }
+ else if ("parking_brake_on" == parking_brake_state) {
+ this->emitParkingBrakeOn();
+ }
+ else {
+ reply("Unknown parking brake state");
+ return;
+ }
+ }
+
+ // Check car state
json_object* json_car;
if (!json_object_object_get_ex(json_out, "car", &json_car)) {
reply("Not found key \"car\"");
return;
}
- json_bool is_changed;
is_changed = jh::getBoolFromJson(json_car, "is_changed");
if (is_changed) {
// Update car state
@@ -378,7 +404,7 @@ void App::allocateWindowResource(char const *event, char const *drawing_name,
}
}
- // Lamp state
+ // Check lamp state
json_object* json_lamp;
if (!json_object_object_get_ex(json_out, "lamp", &json_lamp)) {
reply("Not found key \"lamp\"");
@@ -587,6 +613,16 @@ void App::emitHeadlampOn() {
this->send_event(kListEventName[Event_HeadlampOn]);
}
+void App::emitParkingBrakeOff() {
+ // Send ParkingBrakeOff event for all application
+ this->send_event(kListEventName[Event_ParkingBrakeOff]);
+}
+
+void App::emitParkingBrakeOn() {
+ // Send ParkingBrakeOn event for all application
+ this->send_event(kListEventName[Event_ParkingBrakeOn]);
+}
+
void App::emitCarStop() {
// Send CarStop event for all application
this->send_event(kListEventName[Event_CarStop]);