summaryrefslogtreecommitdiffstats
path: root/low-can-binding/utils/config-parser.cpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-04-14 13:24:07 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-04-14 13:24:07 +0200
commit49fe0eec8f17698fc5f86d0abe01777af1fb2b23 (patch)
tree356cd3e3261934a3fb90786e1789ee4ad001cbe5 /low-can-binding/utils/config-parser.cpp
parent044ef27d3667a114964549f89c63ab1ea6655877 (diff)
Change directory architecture to use 2 separated projects.
Each projects, binder and generator, has to be compiled separatly. CAN-binder will host high and low level binding CAN-config-generator only the generator used for low level binding. build.sh script just launch both build in their respective dir. Change-Id: Ic77932660fcca507b23a631d4e4e790f608880ae Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'low-can-binding/utils/config-parser.cpp')
-rw-r--r--low-can-binding/utils/config-parser.cpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/low-can-binding/utils/config-parser.cpp b/low-can-binding/utils/config-parser.cpp
deleted file mode 100644
index e73b0f94..00000000
--- a/low-can-binding/utils/config-parser.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2015, 2016 ,2017 "IoT.bzh"
- * Author "Romain Forlot" <romain.forlot@iot.bzh>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace utils
-{
- config_parser_t::config_parser_t(int conf_file)
- : conf_file_{conf_file}, devices_name{}
- {}
-
- /// @brief read the conf_file_ and will parse json objects
- /// in it searching for canbus objects devices name.
- ///
- /// @return Vector of can bus device name string.
- void can_bus_t::read_conf()
- {
- FILE *fd = fdopen(conf_file_, "r");
- if (fd)
- {
- std::fseek(fd, 0, SEEK_END);
- config_content_.resize(std::ftell(fd));
- std::rewind(fd);
- std::fread(&config_content_[0], 1, config_content_.size(), fd);
- std::fclose(fd);
-
- DEBUG(binder_interface, "Configuration file content : %s", config_content_.c_str());
- }
- ERROR(binder_interface, "Problem at reading the conf file");
- }
-
- void parse_devices_name()
- {
- json_object *jo, *canbus;
- const char* taxi;
-
- jo = json_tokener_parse(config_content_.c_str());
-
- if (jo == NULL || !json_object_object_get_ex(jo, "canbus", &canbus))
- {
- ERROR(binder_interface, "Can't find canbus node in the configuration file. Please review it.");
- devices_name_.clear();
- }
- else if (json_object_get_type(canbus) != json_type_array)
- {
- taxi = json_object_get_string(canbus);
- DEBUG(binder_interface, "Can bus found: %s", taxi);
- devices_name_.push_back(std::string(taxi));
- }
- else
- {
- int n, i;
- n = json_object_array_length(canbus);
- for (i = 0 ; i < n ; i++)
- devices_name_.push_back(json_object_get_string(json_object_array_get_idx(canbus, i)));
- }
- }
-
- /// @brief Public method to access devices_name_ vector. If vector size equal 0
- /// then it will parses the configuration file content to fill it. It could be empty even
- /// after parsing if content file just don't have a correct "canbus" directive so you
- /// have to test the returned value.
- ///
- /// @return A const vector with string of linux CAN devices.
- const std::vector<std::string>& get_devices_name()
- {
- if(devices_name_.empty())
- parse_devices_name();
-
- return devices_name_;
- }
-} \ No newline at end of file