Cleanup and add reading JSON conf file to define
authorBuilder <devel@6b3797ab1e90>
Fri, 3 Feb 2017 08:58:52 +0000 (08:58 +0000)
committerRomain Forlot <romain.forlot@iot.bzh>
Tue, 14 Feb 2017 09:06:35 +0000 (10:06 +0100)
CanBus object before open it.

Signed-off-by: Builder <devel@6b3797ab1e90>
obsolete/ll-can-binding.cpp
obsolete/ll-can-binding.h

index 627dd3c..9c96a60 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <unistd.h>
 #include <sys/types.h>
+#include <sys/stat.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <net/if.h>
@@ -33,6 +34,7 @@
 #include <functional>
 #include <memory>
 
+
 #include <json-c/json.h>
 #include <openxc.pb.h>
 
@@ -616,7 +618,27 @@ const struct afb_binding *afbBindingV1Register (const struct afb_binding_interfa
 
 int afbBindingV1ServiceInit(struct afb_service service)
 {
+       std::ifstream fd_conf;
+       std::string fd_conf_content;
+       json_object jo_canbus;
+
        /* Open JSON conf file */
+       /* TODO: can't use this method in c++ for now. Need to reimplement it ? */
+       jo_canbus = json_object_new_object();
+       fd_conf = afb_daemon_rootdir_open_locale(interface->daemon, "canbus.json", O_RDONLY, NULL);
+       if (fd_conf)
+       {
+               fd_conf.seekg(0, std::ios::end);
+               fd_conf_content.resize(fd_conf.tellg());
+               fd_conf.seekg(0, std::ios::beg);
+               fd_conf.read(&fd_conf_content[0], fd_conf_content.size());
+               fd_conf.close();
+       }
+
+       jo_canbus = json_tokener_parse(&fd_conf_content);
+
+       CanBus CanBus_handler;
+       CanBus_handler.deviceName = json_object_get_string("deviceName")
 
        /* Open CAN socket */
        CanBus_handler.open();
index 8e0ee27..b2fec03 100644 (file)
  */
 static const struct afb_binding_interface *interface;
 
-/*
- * the type of position expected
- *
- * here, this type is the selection of protocol
- */
-enum type {
-       type_OBDII,
-       type_CAN,
-       type_DEFAULT = type_CAN,
-       type_INVALID = -1
-};
-
-#define type_size sizeof(enum type)-2
-
-/*
- * names of the types
- */
-static const char * const type_NAMES[type_size] = {
-       "OBDII",
-       "CAN"
-};
-
 /* CAN variable initialization */
 struct canfd_frame canfd_frame;
 
-class can_handle {
-       int socket;
-       char *device;
-       bool is_fdmode_on;
-       struct sockaddr_can txAddress;
-};
-
 /*
  * each generated event
  */
@@ -75,16 +46,3 @@ struct _can_event {
 };
 
 can_event *can_events_list;
-
-// Initialize default can_handler values
-static struct can_handler can_handler = {
-       .socket = -1,
-       .device = "vcan0",
-       .is_fdmode_on = false,
-};
-
-/* Redefining openxc_CanMessage_init_default for C */
-#ifdef openxc_CanMessage_init_default
-#undef openxc_CanMessage_init_default
-#endif
-openxc_CanMessage openxc_CanMessage_init_default = {.has_bus = false, .bus = 0, .has_id = false, .id = 0, .has_data = false, .data = {0, {0}}, .has_frame_format = false, .frame_format = (openxc_CanMessage_FrameFormat)0};