[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser

2014-10-30 Thread git repository hosting
Module: xenomai-3
Branch: master
Commit: 68033dcc5bf6c732eba6a43390aca34c9f490e98
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=68033dcc5bf6c732eba6a43390aca34c9f490e98

Author: Jorge Ramirez-Ortiz j...@xenomai.org
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;
+   int aref;
+};
 
+extern 

[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser

2014-10-27 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: 68033dcc5bf6c732eba6a43390aca34c9f490e98
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=68033dcc5bf6c732eba6a43390aca34c9f490e98

Author: Jorge Ramirez-Ortiz j...@xenomai.org
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;
+   int aref;
+};
 
+extern 

[Xenomai-git] Jorge Ramirez-Ortiz : utils/analogy: calibration - use iniparser

2014-10-25 Thread git repository hosting
Module: xenomai-3
Branch: next
Commit: df614aa783e03623da14a022cb7d43c08616eac4
URL:
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=df614aa783e03623da14a022cb7d43c08616eac4

Author: Jorge Ramirez-Ortiz j...@xenomai.org
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;
+   int aref;
+};
 
+extern