aboutsummaryrefslogtreecommitdiffstats
path: root/src/app.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/app.cpp')
-rw-r--r--src/app.cpp37
1 files changed, 32 insertions, 5 deletions
diff --git a/src/app.cpp b/src/app.cpp
index ac789ad..eaebd59 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -807,11 +807,6 @@ result<json_object *> App::api_get_area_info(char const *drawing_name) {
return Err<json_object *>("Could not find layer for surface");
}
- struct LayoutState &state = *o_state;
- if ((state.main != *surface_id) && (state.sub != *surface_id)) {
- return Err<json_object *>("Surface is inactive");
- }
-
// Set area rectangle
compositor::rect area_info = this->area_info[*surface_id];
json_object *object = json_object_new_object();
@@ -823,6 +818,38 @@ result<json_object *> App::api_get_area_info(char const *drawing_name) {
return Ok<json_object *>(object);
}
+result<json_object *> App::api_get_car_info(char const *label) {
+ HMI_DEBUG("wm", "called");
+
+ json_object *j_in = nullptr;
+ json_object *j_out = nullptr;
+
+ if (0 == strcmp("parking_brake_status", label)) {
+ // Get parking brake status
+ json_bool val = this->crr_car_info_.parking_brake_stt;
+ j_in = json_object_new_boolean(val);
+ }
+ else if (0 == strcmp("accelerator.pedal.position", label)) {
+ // Get accelerator pedal position
+ double val = this->crr_car_info_.accel_pedal_pos;
+ j_in = json_object_new_double(val);
+ }
+ else if (0 == strcmp("car_state", label)) {
+ // Get car state
+ const char* val = this->crr_car_info_.car_stt;
+ j_in = json_object_new_string(val);
+ }
+ else {
+ return Err<json_object *>("Car info does not exist");
+ }
+
+ // Create output object
+ j_out = json_object_new_object();
+ json_object_object_add(j_out, "value", j_in);
+
+ return Ok<json_object *>(j_out);
+}
+
void App::activate(int id) {
auto ip = this->controller->sprops.find(id);
if (ip != this->controller->sprops.end()) {