summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBuilder <devel@6b3797ab1e90>2017-02-03 08:58:52 +0000
committerRomain Forlot <romain.forlot@iot.bzh>2017-02-14 10:06:35 +0100
commit91aab46150dacda677c8751942abc452998cdf8d (patch)
tree57b212aa2425237228cc6b53ab96736729850096
parent90e20942222d7b6142dbdaa05ab7e81bc0f79904 (diff)
Cleanup and add reading JSON conf file to define
CanBus object before open it. Signed-off-by: Builder <devel@6b3797ab1e90>
-rw-r--r--obsolete/ll-can-binding.cpp22
-rw-r--r--obsolete/ll-can-binding.h42
2 files changed, 22 insertions, 42 deletions
diff --git a/obsolete/ll-can-binding.cpp b/obsolete/ll-can-binding.cpp
index 627dd3c..9c96a60 100644
--- a/obsolete/ll-can-binding.cpp
+++ b/obsolete/ll-can-binding.cpp
@@ -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();
diff --git a/obsolete/ll-can-binding.h b/obsolete/ll-can-binding.h
index 8e0ee27..b2fec03 100644
--- a/obsolete/ll-can-binding.h
+++ b/obsolete/ll-can-binding.h
@@ -20,38 +20,9 @@
*/
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};