]> pilppa.org Git - lib1wire.git/blobdiff - src/Factory.cc
Refactoring and fixes.
[lib1wire.git] / src / Factory.cc
index 8a09eaa9d0b22bd0f7a4e2fbb6c26505aca058ef..1ce585b003c23b8e42093696ae46ca4f4c6918f0 100644 (file)
@@ -44,26 +44,24 @@ W1Device *Factory::get_device(int family_code,
        DeviceConfig    *config;
 
        ret_val = NULL;
-       log_debug("family_code: %d\n", family_code);
        switch(family_code) {
                case    0x10:
                case    0x28:
                        ret_val = new W1TemperatureSensor(family_code, device_id, direntry_param);
-                       log_debug("temperature sensor: %d\n", ret_val->get_family_code());
                        break;
                case    0x1d:
                        ret_val = new W1CounterDevice(family_code, device_id, direntry_param);
-                       log_debug("counter device: %d\n", family_code);
                        break;
                default:
-                       log_debug("device not created, unsupported device type: %d\n", family_code);
+                       log_debug("Unsupported 1-wire-family code: %#x, device not created: %s\n", family_code, device_id.c_str());
                        break;
        }
        if (ret_val != NULL) {
+               log_debug("%s: %#x\n", ret_val->get_device_type().c_str(), ret_val->get_w1_family_code());
                // check that device config exist
-               // if not, create default...
                config  = get_device_config(device_id);
                if (config != NULL) {
+                       // if not, create default device config
                        string  type;
                        type    = config->get_cfg_value(DEVICE_CONFIG_VALUE_KEY__TYPE);
                        if (type.empty() == true) {
@@ -71,6 +69,7 @@ W1Device *Factory::get_device(int family_code,
                                config->set_cfg_value(DEVICE_CONFIG_VALUE_KEY__TYPE, type);
                                config->set_cfg_value(DEVICE_CONFIG_VALUE_KEY__ID, ret_val->get_id());
                        }
+                       delete(config);
                }
        }
        return ret_val;
@@ -93,7 +92,7 @@ W1Device *Factory::create_device(dirent *direntry_param) {
                // number in string is in hex format, convert to int
                suc_flg = string_to_number<int>(family_code, tmp_str, hex);
                if (suc_flg == true) {
-                       log_debug("family_code: %d\n", family_code);
+                       log_debug("1-wire device family code: %#x\n", family_code);
                        device_name     = folder_name.substr(pos + 1, folder_name.length() - pos);
                        ret_val         = Factory::get_device(family_code,
                                                        device_name,
@@ -111,28 +110,25 @@ list<W1Device *> Factory::get_device_list() {
        bool                    is_subdir;
        list<W1Device *>        ret_val;
 
-       printf("get_device_list() started\n");
        dir     = opendir(W1_SCAN_ROOTDIR);
        if (dir != NULL) {
                direntry        = readdir(dir);
                while(direntry != NULL) {
                        is_subdir       = W1Util::is_subdirectory(W1_SCAN_ROOTDIR, direntry);
                        if (is_subdir == true) {
-                               log_info("dir_name: %s\n", direntry->d_name);
                                device  = create_device(direntry);
                                if (device != NULL) {
-                                       log_info("device: %d\n", device->get_family_code());
                                        ret_val.push_back(device);
                                }
                                else {
-                                       log_info("unsupported device-directory: %s\n", direntry->d_name);
+                                       log_info("Unsupported 1-wire device detected: %s\n", direntry->d_name);
                                }
                        }
                        direntry        = readdir(dir);
                }
                err_flg = closedir(dir);
                if (err_flg < 0) {
-                       log_error("failed to close 1-wire device directory: %s\n", W1_SCAN_ROOTDIR);
+                       log_error("Failed to close 1-wire device directory: %s\n", W1_SCAN_ROOTDIR);
                }
        }
        return ret_val;
@@ -147,7 +143,6 @@ list<DeviceData *> Factory::get_device_data_list() {
        bool                    is_subdir;
        list<DeviceData *>      ret_val;
 
-       printf("get_device_list() started\n");
        dr_name = DeviceConfig::get_base_dir_name();
        dir     = opendir(dr_name.c_str());
        if (dir != NULL) {
@@ -157,7 +152,6 @@ list<DeviceData *> Factory::get_device_data_list() {
                                is_subdir       = W1Util::is_subdirectory(dr_name.c_str(), direntry);
                                if (is_subdir == true) {
                                        dev_dta = new DeviceData(direntry->d_name);
-                                       log_info("dir_name: %s\n", direntry->d_name);
                                        ret_val.push_back(dev_dta);
                                }
                        }
@@ -165,7 +159,7 @@ list<DeviceData *> Factory::get_device_data_list() {
                }
                err_flg = closedir(dir);
                if (err_flg < 0) {
-                       log_error("failed to close 1-wire device data directory: %s\n", dr_name.c_str());
+                       log_error("Failed to close 1-wire device data directory: %s\n", dr_name.c_str());
                }
        }
        return ret_val;