Added JSON conf file read and initialize CanBus
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 14 Feb 2017 10:18:58 +0000 (11:18 +0100)
committerRomain Forlot <romain.forlot@iot.bzh>
Tue, 14 Feb 2017 10:18:58 +0000 (11:18 +0100)
object with device name retrieve from conf file.

Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
can-utils.cpp
low-can-binding.cpp

index abfe0a0..6721410 100644 (file)
 *
 *********************************************************************************/
 
-CanBus_c::CanBus_c(afb_binding_interface *itf)
+CanBus_c::CanBus_c(afb_binding_interface *itf, const std:string& dev_name)
 {
        interface = itf;
+       deviceName = dev_name;
 }
 
 int CanBus_c::open()
index bb219be..b609890 100644 (file)
@@ -48,7 +48,6 @@
  */
 static const struct afb_binding_interface *interface;
 
-
 /********************************************************************************
 *
 *              Event management
@@ -229,10 +228,26 @@ 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 */
+       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);
 
        /* Open CAN socket */
-       CanBus_c CanBus_handler(interface);
+       CanBus_c CanBus_handler(interface, json_object_get_string(json_object_object_get(jo_canbus, "deviceName"));
        CanBus_handler.open();
        CanBus_handler.start_threads();
 }