#include <string>
+extern "C" {
+#include <uci.h>
+#include <plp/config.h>
+}
+
+#include "W1Configure.hh"
+
+#define DEVICE_CONFIG__FILE_NAME "dev_cfg.txt"
+#define DEVICE_CONFIG__SECTION_TYPE "device"
+#define DEVICE_CONFIG__SECTION_NAME "base_data"
+#define DEVICE_CONFIG_VALUE_KEY__TYPE "type"
+#define DEVICE_CONFIG_VALUE_KEY__ID "id"
+#define DEVICE_CONFIG_VALUE_KEY__NAME "name"
+
namespace w1 {
- enum enum_summary_calculation {SUM, DELTA, MEAN, MAX, MIN};
+ struct ConfigHandle {
+ public:
+ ConfigHandle(uci_context *ctx_param, uci_package *pkg_param);
+ ~ConfigHandle();
+ struct uci_context *_ctx;
+ struct uci_package *_pkg;
+ };
class DeviceConfig {
public:
DeviceConfig(std::string device_id_param);
virtual ~DeviceConfig();
- std::string get_config_value(std::string key);
- enum_summary_calculation get_summary_calculation_type();
+ static std::string get_base_dir_name();
+ static void set_base_dir_name(std::string store_param);
+ std::string get_cfg_value(std::string key);
+ void set_cfg_value(std::string key, std::string value);
+ EnumSummaryCalculationType get_summary_calculation_type();
private:
- std::string device_id;
+ static std::string store_base_dir;
+ std::string device_id;
+ std::string device_type;
+ ConfigHandle *uci_handle;
+ ConfigHandle *load_device_config(std::string device_id_param);
+ std::string get_dir_name(std::string device_id);
+ std::string get_file_name(std::string device_id_param);
};
}