#include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace plp; using namespace plpbus; using namespace plpdevicebus; using namespace w1; #define DEFAULT_READ_INTERVAL_SEC 600 void printout_usage() { log_info("usage:\n\tnws-w1 \n"); } int main(int argc, char** argv) { BusServer *server; ServerListenerImpl *listener; DeviceManagerServer *dev_man; string save_loc; long interval_sec; string server_name; list dev_lst; bool succ; server_name = W1_SERVER_NAME; save_loc = "/tmp/w1data"; interval_sec = DEFAULT_READ_INTERVAL_SEC; if (argc > 1) { save_loc = argv[1]; log_info("storage location: %s\n", save_loc.c_str()); } else { log_info("no parameter given using default values:\n"); log_info("\tnws-w1 %s %ld\n\n", save_loc.c_str(), interval_sec); printout_usage(); } if (argc > 2) { succ = parse_long(argv[2], &interval_sec); if (succ == false) { interval_sec = DEFAULT_READ_INTERVAL_SEC; log_error("failed to parse read interval parameter, using default value: %ld\n", interval_sec); printout_usage(); } } log_info("device polling interval: %ld seconds\n", interval_sec); DeviceConfig::set_base_dir_name(save_loc); DeviceConfig::set_read_interval_seconds(interval_sec); log_info("starting server: %s\n", server_name.c_str()); dev_lst = Factory::get_device_list(); server = new BusServer(); dev_man = new DeviceManagerServer(dev_lst); server->init(); listener = new ServerListenerImpl(dev_man); server->add_server_listener(listener); server->launch(server_name.c_str()); return 0; }