X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=src_server%2FNetworkServiceServer_W1.cc;fp=src_server%2FNetworkServiceServer_W1.cc;h=3e8802243bacebe3e8fb4cb66db65779c68b0ee3;hb=a501bc64058f88329a5770d12afe21909a7c0b0b;hp=af68ad36028f0dc3a89b65532364c986a884f6f8;hpb=097896d696bcb4c00c6b3dbf113826503bb27630;p=nws-w1.git diff --git a/src_server/NetworkServiceServer_W1.cc b/src_server/NetworkServiceServer_W1.cc index af68ad3..3e88022 100644 --- a/src_server/NetworkServiceServer_W1.cc +++ b/src_server/NetworkServiceServer_W1.cc @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -19,29 +20,10 @@ using namespace plpbus; using namespace plpdevicebus; using namespace w1; -#define DEFAULT_READ_INTERVAL_SECONDS 600 +#define DEFAULT_READ_INTERVAL_SEC 600 -bool try_parse_long(const char *str, long *result) { - int new_result; - char *endptr; - bool ret_val; - - ret_val = false; - errno = 0; - new_result = strtol(str, &endptr, 10); - if (errno != 0) { - log_error("invalid input %s, could not convert to integer.\n", str); - } - else { - if (endptr == str) { - log_error("invalid input %s, could not convert to integer.\n", str); - } - else { - *result = new_result; - ret_val = true; - } - } - return ret_val; +void printout_usage() { + log_info("usage:\n\tnws-w1 \n"); } int main(int argc, char** argv) @@ -50,28 +32,34 @@ int main(int argc, char** argv) ServerListenerImpl *listener; DeviceManagerServer *dev_man; string save_loc; - long read_interval_sec; + long interval_sec; string server_name; - list dev_lst; + list dev_lst; + bool succ; server_name = W1_SERVER_NAME; save_loc = "/tmp/w1data"; - read_interval_sec = DEFAULT_READ_INTERVAL_SECONDS; + 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(), read_interval_sec); - log_info("usage:\n\tnws-w1 \n"); + log_info("\tnws-w1 %s %ld\n\n", save_loc.c_str(), interval_sec); + printout_usage(); } if (argc > 2) { - try_parse_long(argv[2], &read_interval_sec); + 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", interval_sec); + printout_usage(); + } } - log_info("device polling interval: %ld seconds\n", read_interval_sec); + log_info("device polling interval: %ld seconds\n", interval_sec); DeviceConfig::set_base_dir_name(save_loc); - DeviceConfig::set_read_interval_seconds(read_interval_sec); + 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();