return ret_val;
}
-Device *Factory::create_w1_device(int family_code_param,
+Device *Factory::create_device(int family_code_param,
string device_id_param,
dirent *direntry_param) {
Device *ret_val;
ret_val = NULL;
type = get_device_type_by_family_code(family_code_param);
if (type.empty() == false) {
- ret_val = create_w1_device(family_code_param,
+ ret_val = create_device(family_code_param,
type,
device_id_param,
direntry_param);
return ret_val;
}
-Device *Factory::create_w1_device(int device_w1_family_code_param,
+Device *Factory::create_device(int device_w1_family_code_param,
string device_type_param,
string device_id_param,
dirent *direntry_param) {
Device *ret_val;
DeviceConfig *config;
+ bool succ;
ret_val = NULL;
if (device_type_param.empty() == false) {
config = DeviceConfig::get_device_config(device_id_param);
if (config != NULL) {
// if not, create default device config
- device_type_param = config->get_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE);
- if (device_type_param.empty() == true) {
+ succ = config->get_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, device_type_param);
+ if (succ == false) {
device_type_param = ret_val->get_type();
- config->set_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, device_type_param);
- config->set_config_value(DEVICE_CONFIG_VALUE_KEY__ID, ret_val->get_id());
+ config->set_config_value(DEVICE_CONFIG_VALUE_KEY__TYPE, device_type_param, false);
+ config->set_config_value(DEVICE_CONFIG_VALUE_KEY__ID, ret_val->get_id(), true);
}
delete(config);
}
return ret_val;
}
-Device *Factory::create_w1_device(string device_type_param,
+Device *Factory::create_device(string device_type_param,
string device_id_param) {
int family_code;
Device *ret_val;
if (device_type_param.empty() == false) {
family_code = get_family_code_by_device_type(device_type_param);
if (family_code != -1) {
- ret_val = create_w1_device(family_code, device_type_param, device_id_param, NULL);
+ ret_val = create_device(family_code, device_type_param, device_id_param, NULL);
}
}
return ret_val;
}
-Device *Factory::create_w1_device(dirent *direntry_param,
+Device *Factory::create_device(dirent *direntry_param,
int *err_code_param) {
string folder_name;
string tmp_str;
if (suc_flg == true) {
log_debug("1-wire device family code: %#x\n", family_code);
device_id = folder_name.substr(pos + 1, folder_name.length() - pos);
- ret_val = Factory::create_w1_device(family_code,
+ ret_val = Factory::create_device(family_code,
device_id,
direntry_param);
if ((ret_val == NULL) &&
is_subdir = FileUtil::is_subdirectory(W1_SCAN_ROOTDIR, direntry);
if (is_subdir == true) {
err_flg = 0;
- device = create_w1_device(direntry, &err_flg);
+ device = create_device(direntry, &err_flg);
if (device != NULL) {
ret_val.push_back(device);
}
}
if (found == false) {
// reader device is not in the list of active devices. create and add it to list as in-active one...
- type = reader->get_device_type();
- if (type.empty() == false) {
- device = create_w1_device(type, id1);
+ found = reader->get_device_type(type);
+ if (found == true) {
+ device = create_device(type, id1);
if (device != NULL) {
ret_val.push_back(device);
}