diff options
Diffstat (limited to 'hvac-hybrid-qml-binding.c')
-rw-r--r-- | hvac-hybrid-qml-binding.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/hvac-hybrid-qml-binding.c b/hvac-hybrid-qml-binding.c index 0ff7c22..e31af1c 100644 --- a/hvac-hybrid-qml-binding.c +++ b/hvac-hybrid-qml-binding.c @@ -27,6 +27,7 @@ #include <json-c/json.h> #include <afb/afb-binding.h> +#include <afb/afb-service-itf.h> #define CAN_DEV "can0" @@ -61,6 +62,8 @@ struct can_handler { struct sockaddr_can txAddress; }; +static struct can_handler can_handler; + /*****************************************************************************************/ /*****************************************************************************************/ /** **/ @@ -288,7 +291,6 @@ static void get_all(struct afb_req request) */ static void set(struct afb_req request) { - struct can_handler ch; const char *val; struct json_object *query; struct json_object_iterator iter; @@ -319,9 +321,7 @@ static void set(struct afb_req request) json_object_iter_next(&iter); } - ch = open_can_dev(); - write_can(ch); - close_can_dev(ch); + write_can(can_handler); afb_req_success(request, query, "HVAC settings updated"); } @@ -352,3 +352,10 @@ const struct afb_binding *afbBindingV1Register (const struct afb_binding_interfa return &binding_desc; } + +int afbBindingV1ServiceInit(struct afb_service service) +{ + can_handler = open_can_dev(); + return can_handler.socket >= 0 ? 0 : -1; +} + |