[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser
Module: xenomai-3 Branch: master Commit: 68033dcc5bf6c732eba6a43390aca34c9f490e98 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=68033dcc5bf6c732eba6a43390aca34c9f490e98 Author: Jorge Ramirez-Ortiz Date: Fri Sep 12 11:55:40 2014 -0400 utils/analogy: calibration - use iniparser --- utils/analogy/Makefile.am |4 ++- utils/analogy/analogy_calibrate.c | 57 - utils/analogy/analogy_calibrate.h | 11 ++- utils/analogy/calibration_ni_m.c | 40 ++ 4 files changed, 103 insertions(+), 9 deletions(-) diff --git a/utils/analogy/Makefile.am b/utils/analogy/Makefile.am index fe2f317..40c09f3 100644 --- a/utils/analogy/Makefile.am +++ b/utils/analogy/Makefile.am @@ -12,7 +12,9 @@ bin_PROGRAMS = \ CPPFLAGS = \ @XENO_USER_CFLAGS@ \ -ggdb \ - -I$(top_srcdir)/include + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib/boilerplate + LDFLAGS = diff --git a/utils/analogy/analogy_calibrate.c b/utils/analogy/analogy_calibrate.c index 586a38a..b2ac286 100644 --- a/utils/analogy/analogy_calibrate.c +++ b/utils/analogy/analogy_calibrate.c @@ -31,7 +31,7 @@ #include "analogy_calibrate.h" #include "calibration_ni_m.h" - +struct apply_calibration_params params = {.name = NULL,} ; struct timespec calibration_start_time; static const char *revision = "0.0.1"; a4l_desc_t descriptor; @@ -57,28 +57,65 @@ static const struct option options[] = { .flag = NULL, }, { +#define apply_opt 3 + .name = "apply", + .has_arg = 1, + .flag = NULL, + }, + { .name = NULL, } }; -static void print_usage(void) +static void +print_usage(void) { fprintf(stderr, "Usage: analogy_calibrate \n" - " --help: this menu \n" - " --device /dev/analogyX: analogy device to calibrate \n" - " --output filename : calibration results \n" + " --help: this menu \n" + " --device /dev/analogyX: analogy device to calibrate \n" + " --output filename : calibration results \n" + " --apply filename:subd,channel,range,aref : apply the calibration file \n" + " ex: /home/foo/calib.rc:0,1,255,255 - use 255 for dont care \n" ); } +static int +apply_calibration_set_globals(char *info) +{ + char *p; + + params.name = strtok(info, ":"); + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.subd = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.channel = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.range = strtol(p, NULL, 0); + + p = strtok(NULL, ""); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.aref = strtol(p, NULL, 0); + + return 0; +} + static void __attribute__ ((constructor)) __analogy_calibrate_init(void) { clock_gettime(CLOCK_MONOTONIC, &calibration_start_time); } - int main(int argc, char *argv[]) { struct sched_param param = {.sched_priority = 99}; - char *device = NULL, *file = NULL; + char *device = NULL, *file = NULL, *apply_info = NULL; int v, i, fd, err = 0; struct rlimit rl; @@ -103,12 +140,18 @@ int main(int argc, char *argv[]) error(EXIT, errno, "calibration file"); __debug("calibration output: %s \n", file); break; + case apply_opt: + apply_info = optarg; + break; default: print_usage(); exit(EXIT_FAILURE); } } + if (apply_info) + apply_calibration_set_globals(apply_info); + err = getrlimit(RLIMIT_STACK, &rl); if (!err) { if (rl.rlim_cur < rl.rlim_max) { diff --git a/utils/analogy/analogy_calibrate.h b/utils/analogy/analogy_calibrate.h index 1fb548e..c2b539a 100644 --- a/utils/analogy/analogy_calibrate.h +++ b/utils/analogy/analogy_calibrate.h @@ -38,8 +38,17 @@ extern struct timespec calibration_start_time; extern a4l_desc_t descriptor; extern FILE *cal; -#define ARRAY_LEN(a) (sizeof(a) / sizeof((a)[0])) +struct apply_calibration_params { + int channel; + char *name; + int range; + int subd;
[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser
Module: xenomai-3 Branch: next Commit: 68033dcc5bf6c732eba6a43390aca34c9f490e98 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=68033dcc5bf6c732eba6a43390aca34c9f490e98 Author: Jorge Ramirez-Ortiz Date: Fri Sep 12 11:55:40 2014 -0400 utils/analogy: calibration - use iniparser --- utils/analogy/Makefile.am |4 ++- utils/analogy/analogy_calibrate.c | 57 - utils/analogy/analogy_calibrate.h | 11 ++- utils/analogy/calibration_ni_m.c | 40 ++ 4 files changed, 103 insertions(+), 9 deletions(-) diff --git a/utils/analogy/Makefile.am b/utils/analogy/Makefile.am index fe2f317..40c09f3 100644 --- a/utils/analogy/Makefile.am +++ b/utils/analogy/Makefile.am @@ -12,7 +12,9 @@ bin_PROGRAMS = \ CPPFLAGS = \ @XENO_USER_CFLAGS@ \ -ggdb \ - -I$(top_srcdir)/include + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib/boilerplate + LDFLAGS = diff --git a/utils/analogy/analogy_calibrate.c b/utils/analogy/analogy_calibrate.c index 586a38a..b2ac286 100644 --- a/utils/analogy/analogy_calibrate.c +++ b/utils/analogy/analogy_calibrate.c @@ -31,7 +31,7 @@ #include "analogy_calibrate.h" #include "calibration_ni_m.h" - +struct apply_calibration_params params = {.name = NULL,} ; struct timespec calibration_start_time; static const char *revision = "0.0.1"; a4l_desc_t descriptor; @@ -57,28 +57,65 @@ static const struct option options[] = { .flag = NULL, }, { +#define apply_opt 3 + .name = "apply", + .has_arg = 1, + .flag = NULL, + }, + { .name = NULL, } }; -static void print_usage(void) +static void +print_usage(void) { fprintf(stderr, "Usage: analogy_calibrate \n" - " --help: this menu \n" - " --device /dev/analogyX: analogy device to calibrate \n" - " --output filename : calibration results \n" + " --help: this menu \n" + " --device /dev/analogyX: analogy device to calibrate \n" + " --output filename : calibration results \n" + " --apply filename:subd,channel,range,aref : apply the calibration file \n" + " ex: /home/foo/calib.rc:0,1,255,255 - use 255 for dont care \n" ); } +static int +apply_calibration_set_globals(char *info) +{ + char *p; + + params.name = strtok(info, ":"); + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.subd = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.channel = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.range = strtol(p, NULL, 0); + + p = strtok(NULL, ""); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.aref = strtol(p, NULL, 0); + + return 0; +} + static void __attribute__ ((constructor)) __analogy_calibrate_init(void) { clock_gettime(CLOCK_MONOTONIC, &calibration_start_time); } - int main(int argc, char *argv[]) { struct sched_param param = {.sched_priority = 99}; - char *device = NULL, *file = NULL; + char *device = NULL, *file = NULL, *apply_info = NULL; int v, i, fd, err = 0; struct rlimit rl; @@ -103,12 +140,18 @@ int main(int argc, char *argv[]) error(EXIT, errno, "calibration file"); __debug("calibration output: %s \n", file); break; + case apply_opt: + apply_info = optarg; + break; default: print_usage(); exit(EXIT_FAILURE); } } + if (apply_info) + apply_calibration_set_globals(apply_info); + err = getrlimit(RLIMIT_STACK, &rl); if (!err) { if (rl.rlim_cur < rl.rlim_max) { diff --git a/utils/analogy/analogy_calibrate.h b/utils/analogy/analogy_calibrate.h index 1fb548e..c2b539a 100644 --- a/utils/analogy/analogy_calibrate.h +++ b/utils/analogy/analogy_calibrate.h @@ -38,8 +38,17 @@ extern struct timespec calibration_start_time; extern a4l_desc_t descriptor; extern FILE *cal; -#define ARRAY_LEN(a) (sizeof(a) / sizeof((a)[0])) +struct apply_calibration_params { + int channel; + char *name; + int range; + int subd; +
[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser
Module: xenomai-3 Branch: next Commit: df614aa783e03623da14a022cb7d43c08616eac4 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=df614aa783e03623da14a022cb7d43c08616eac4 Author: Jorge Ramirez-Ortiz Date: Fri Sep 12 11:55:40 2014 -0400 utils/analogy: calibration - use iniparser --- utils/analogy/Makefile.am |4 ++- utils/analogy/analogy_calibrate.c | 57 - utils/analogy/analogy_calibrate.h | 11 ++- utils/analogy/calibration_ni_m.c | 40 ++ 4 files changed, 103 insertions(+), 9 deletions(-) diff --git a/utils/analogy/Makefile.am b/utils/analogy/Makefile.am index fe2f317..40c09f3 100644 --- a/utils/analogy/Makefile.am +++ b/utils/analogy/Makefile.am @@ -12,7 +12,9 @@ bin_PROGRAMS = \ CPPFLAGS = \ @XENO_USER_CFLAGS@ \ -ggdb \ - -I$(top_srcdir)/include + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib/boilerplate + LDFLAGS = diff --git a/utils/analogy/analogy_calibrate.c b/utils/analogy/analogy_calibrate.c index 586a38a..b2ac286 100644 --- a/utils/analogy/analogy_calibrate.c +++ b/utils/analogy/analogy_calibrate.c @@ -31,7 +31,7 @@ #include "analogy_calibrate.h" #include "calibration_ni_m.h" - +struct apply_calibration_params params = {.name = NULL,} ; struct timespec calibration_start_time; static const char *revision = "0.0.1"; a4l_desc_t descriptor; @@ -57,28 +57,65 @@ static const struct option options[] = { .flag = NULL, }, { +#define apply_opt 3 + .name = "apply", + .has_arg = 1, + .flag = NULL, + }, + { .name = NULL, } }; -static void print_usage(void) +static void +print_usage(void) { fprintf(stderr, "Usage: analogy_calibrate \n" - " --help: this menu \n" - " --device /dev/analogyX: analogy device to calibrate \n" - " --output filename : calibration results \n" + " --help: this menu \n" + " --device /dev/analogyX: analogy device to calibrate \n" + " --output filename : calibration results \n" + " --apply filename:subd,channel,range,aref : apply the calibration file \n" + " ex: /home/foo/calib.rc:0,1,255,255 - use 255 for dont care \n" ); } +static int +apply_calibration_set_globals(char *info) +{ + char *p; + + params.name = strtok(info, ":"); + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.subd = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.channel = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.range = strtol(p, NULL, 0); + + p = strtok(NULL, ""); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.aref = strtol(p, NULL, 0); + + return 0; +} + static void __attribute__ ((constructor)) __analogy_calibrate_init(void) { clock_gettime(CLOCK_MONOTONIC, &calibration_start_time); } - int main(int argc, char *argv[]) { struct sched_param param = {.sched_priority = 99}; - char *device = NULL, *file = NULL; + char *device = NULL, *file = NULL, *apply_info = NULL; int v, i, fd, err = 0; struct rlimit rl; @@ -103,12 +140,18 @@ int main(int argc, char *argv[]) error(EXIT, errno, "calibration file"); __debug("calibration output: %s \n", file); break; + case apply_opt: + apply_info = optarg; + break; default: print_usage(); exit(EXIT_FAILURE); } } + if (apply_info) + apply_calibration_set_globals(apply_info); + err = getrlimit(RLIMIT_STACK, &rl); if (!err) { if (rl.rlim_cur < rl.rlim_max) { diff --git a/utils/analogy/analogy_calibrate.h b/utils/analogy/analogy_calibrate.h index 1fb548e..c2b539a 100644 --- a/utils/analogy/analogy_calibrate.h +++ b/utils/analogy/analogy_calibrate.h @@ -38,8 +38,17 @@ extern struct timespec calibration_start_time; extern a4l_desc_t descriptor; extern FILE *cal; -#define ARRAY_LEN(a) (sizeof(a) / sizeof((a)[0])) +struct apply_calibration_params { + int channel; + char *name; + int range; + int subd; +
[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser
Module: xenomai-3 Branch: next Commit: 124416fcc00b9d78591ce99ce6fbe2aa3d38176c URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=124416fcc00b9d78591ce99ce6fbe2aa3d38176c Author: Jorge Ramirez-Ortiz Date: Fri Sep 12 11:55:40 2014 -0400 utils/analogy: calibration - use iniparser --- utils/analogy/Makefile.am |4 ++- utils/analogy/analogy_calibrate.c | 57 - utils/analogy/analogy_calibrate.h | 11 ++- utils/analogy/calibration_ni_m.c | 40 ++ 4 files changed, 103 insertions(+), 9 deletions(-) diff --git a/utils/analogy/Makefile.am b/utils/analogy/Makefile.am index fe2f317..40c09f3 100644 --- a/utils/analogy/Makefile.am +++ b/utils/analogy/Makefile.am @@ -12,7 +12,9 @@ bin_PROGRAMS = \ CPPFLAGS = \ @XENO_USER_CFLAGS@ \ -ggdb \ - -I$(top_srcdir)/include + -I$(top_srcdir)/include \ + -I$(top_srcdir)/lib/boilerplate + LDFLAGS = diff --git a/utils/analogy/analogy_calibrate.c b/utils/analogy/analogy_calibrate.c index 586a38a..b2ac286 100644 --- a/utils/analogy/analogy_calibrate.c +++ b/utils/analogy/analogy_calibrate.c @@ -31,7 +31,7 @@ #include "analogy_calibrate.h" #include "calibration_ni_m.h" - +struct apply_calibration_params params = {.name = NULL,} ; struct timespec calibration_start_time; static const char *revision = "0.0.1"; a4l_desc_t descriptor; @@ -57,28 +57,65 @@ static const struct option options[] = { .flag = NULL, }, { +#define apply_opt 3 + .name = "apply", + .has_arg = 1, + .flag = NULL, + }, + { .name = NULL, } }; -static void print_usage(void) +static void +print_usage(void) { fprintf(stderr, "Usage: analogy_calibrate \n" - " --help: this menu \n" - " --device /dev/analogyX: analogy device to calibrate \n" - " --output filename : calibration results \n" + " --help: this menu \n" + " --device /dev/analogyX: analogy device to calibrate \n" + " --output filename : calibration results \n" + " --apply filename:subd,channel,range,aref : apply the calibration file \n" + " ex: /home/foo/calib.rc:0,1,255,255 - use 255 for dont care \n" ); } +static int +apply_calibration_set_globals(char *info) +{ + char *p; + + params.name = strtok(info, ":"); + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.subd = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.channel = strtol(p, NULL, 0); + + p = strtok(NULL, ","); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.range = strtol(p, NULL, 0); + + p = strtok(NULL, ""); + if (!p) + error(EXIT, 0, "missing --apply parameter \n"); + params.aref = strtol(p, NULL, 0); + + return 0; +} + static void __attribute__ ((constructor)) __analogy_calibrate_init(void) { clock_gettime(CLOCK_MONOTONIC, &calibration_start_time); } - int main(int argc, char *argv[]) { struct sched_param param = {.sched_priority = 99}; - char *device = NULL, *file = NULL; + char *device = NULL, *file = NULL, *apply_info = NULL; int v, i, fd, err = 0; struct rlimit rl; @@ -103,12 +140,18 @@ int main(int argc, char *argv[]) error(EXIT, errno, "calibration file"); __debug("calibration output: %s \n", file); break; + case apply_opt: + apply_info = optarg; + break; default: print_usage(); exit(EXIT_FAILURE); } } + if (apply_info) + apply_calibration_set_globals(apply_info); + err = getrlimit(RLIMIT_STACK, &rl); if (!err) { if (rl.rlim_cur < rl.rlim_max) { diff --git a/utils/analogy/analogy_calibrate.h b/utils/analogy/analogy_calibrate.h index 1fb548e..c2b539a 100644 --- a/utils/analogy/analogy_calibrate.h +++ b/utils/analogy/analogy_calibrate.h @@ -38,8 +38,17 @@ extern struct timespec calibration_start_time; extern a4l_desc_t descriptor; extern FILE *cal; -#define ARRAY_LEN(a) (sizeof(a) / sizeof((a)[0])) +struct apply_calibration_params { + int channel; + char *name; + int range; + int subd; +