aboutsummaryrefslogtreecommitdiffstats
path: root/hvac-hybrid-qml-binding.c
diff options
context:
space:
mode:
Diffstat (limited to 'hvac-hybrid-qml-binding.c')
-rw-r--r--hvac-hybrid-qml-binding.c15
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;
+}
+