#include "W1Scanner.hh"
#include "W1TemperatureSensor.hh"
#include "W1CounterDevice.hh"
+#include "Factory.hh"
using namespace w1;
using namespace std;
W1Scanner::~W1Scanner() {
}
-W1Device *W1Scanner::create_device(dirent *direntry) {
+W1Device *W1Scanner::create_device(dirent *direntry_param) {
string folder_name;
string tmp_str;
string device_name;
W1Device *ret_val;
ret_val = NULL;
- folder_name = direntry->d_name;
+ folder_name = direntry_param->d_name;
pos = folder_name.find("-");
if (pos > 0) {
tmp_str = folder_name.substr(0, pos);
if (suc_flg == true) {
log_debug("family_code: %d\n", family_code);
device_name = folder_name.substr(pos + 1, folder_name.length() - pos);
- switch(family_code) {
- case 0x10:
- case 0x28:
- ret_val = new W1TemperatureSensor(direntry, family_code, device_name);
- log_debug("temperature sensor: %d\n", ret_val->get_family_code());
- break;
- case 0x1d:
- log_debug("counter device: %d\n", family_code);
- ret_val = new W1CounterDevice(direntry, family_code, device_name);
- break;
- default:
- log_debug("device not created the device, unsupported device type: %d\n", family_code);
- break;
- }
+ ret_val = Factory::get_device(family_code,
+ device_name,
+ direntry_param);
}
}
return ret_val;