diff options
Diffstat (limited to 'src/app.cpp')
-rw-r--r-- | src/app.cpp | 42 |
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]); |