8 #include <plp/bus/BusServer.hh>
10 #include <w1/Factory.hh>
12 #include <plp/devicebus/DeviceBusMessageId.hh>
13 #include <plp/devicebus/server/ServerListenerImpl.hh>
14 #include <plp/devicebus/server/DeviceManagerServer.hh>
18 using namespace plpbus;
19 using namespace plpdevicebus;
22 #define DEFAULT_READ_INTERVAL_SECONDS 600
24 bool try_parse_long(const char *str, long *result) {
31 new_result = strtol(str, &endptr, 10);
33 log_error("invalid input %s, could not convert to integer.\n", str);
37 log_error("invalid input %s, could not convert to integer.\n", str);
47 int main(int argc, char** argv)
50 ServerListenerImpl *listener;
51 DeviceManagerServer *dev_man;
53 long read_interval_sec;
55 list<Device *> dev_lst;
57 server_name = W1_SERVER_NAME;
58 save_loc = "/tmp/w1data";
59 read_interval_sec = DEFAULT_READ_INTERVAL_SECONDS;
62 log_info("storage location: %s\n", save_loc.c_str());
65 log_info("no parameter given using default values:\n");
66 log_info("\tnws-w1 %s %ld\n\n", save_loc.c_str(), read_interval_sec);
67 log_info("usage:\n\tnws-w1 <result_save_path> <read_interval_seconds>\n");
70 try_parse_long(argv[2], &read_interval_sec);
72 log_info("device polling interval: %ld seconds\n", read_interval_sec);
73 DeviceConfig::set_base_dir_name(save_loc);
74 DeviceConfig::set_read_interval_seconds(read_interval_sec);
75 log_info("starting server: %s\n", server_name.c_str());
76 dev_lst = Factory::get_device_list();
77 server = new BusServer();
78 dev_man = new DeviceManagerServer(dev_lst);
80 listener = new ServerListenerImpl(dev_man);
81 server->add_server_listener(listener);
82 server->launch(server_name.c_str());