8 #include <plp/str_util.h>
9 #include <plp/bus/BusServer.hh>
11 #include <w1/Factory.hh>
13 #include <plp/devicebus/DeviceBusMessageId.hh>
14 #include <plp/devicebus/server/ServerListenerImpl.hh>
15 #include <plp/devicebus/server/DeviceManagerServer.hh>
19 using namespace plpbus;
20 using namespace plpdevicebus;
23 #define DEFAULT_READ_INTERVAL_SEC 600
25 void printout_usage() {
26 log_info("usage:\n\tnws-w1 <save_path for results> <read_interval_in seconds>\n");
29 int main(int argc, char** argv)
32 ServerListenerImpl *listener;
33 DeviceManagerServer *dev_man;
37 list<Device *> dev_lst;
40 server_name = W1_SERVER_NAME;
41 save_loc = "/tmp/w1data";
42 interval_sec = DEFAULT_READ_INTERVAL_SEC;
45 log_info("storage location: %s\n", save_loc.c_str());
48 log_info("no parameter given using default values:\n");
49 log_info("\tnws-w1 %s %ld\n\n", save_loc.c_str(), interval_sec);
53 succ = parse_long(argv[2], &interval_sec);
55 interval_sec = DEFAULT_READ_INTERVAL_SEC;
56 log_error("failed to parse read interval parameter, using default value: %ld\n", interval_sec);
60 log_info("device polling interval: %ld seconds\n", interval_sec);
61 DeviceConfig::set_base_dir_name(save_loc);
62 DeviceConfig::set_read_interval_seconds(interval_sec);
63 log_info("starting server: %s\n", server_name.c_str());
64 dev_lst = Factory::get_device_list();
65 server = new BusServer();
66 dev_man = new DeviceManagerServer(dev_lst);
68 listener = new ServerListenerImpl(dev_man);
69 server->add_server_listener(listener);
70 server->launch(server_name.c_str());