|
From: <sk...@us...> - 2010-09-23 11:44:12
|
Revision: 2386
http://linuxconsole.svn.sourceforge.net/linuxconsole/?rev=2386&view=rev
Author: skitt
Date: 2010-09-23 11:44:06 +0000 (Thu, 23 Sep 2010)
Log Message:
-----------
Improve jitter tolerance; patch provided by Johann Walles, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=144768
Modified Paths:
--------------
trunk/utils/jscal.c
Modified: trunk/utils/jscal.c
===================================================================
--- trunk/utils/jscal.c 2010-09-23 11:41:12 UTC (rev 2385)
+++ trunk/utils/jscal.c 2010-09-23 11:44:06 UTC (rev 2386)
@@ -202,6 +202,7 @@
void calibrate()
{
int i, j, t, b;
+ int axis, pos;
for (i=0; i<MAX_AXES; i++) {
corr[i].type = JS_CORR_NONE;
@@ -232,13 +233,19 @@
do {
wait_for_event(fd, &js);
for(i=0; i < axes; i++) {
- if (amin[i] > js.axis[i]) amin[i] = js.axis[i];
- if (amax[i] < js.axis[i]) amax[i] = js.axis[i];
+ if (amin[i] > js.axis[i]) {
+ amin[i] = js.axis[i];
+ t = get_time();
+ }
+ if (amax[i] < js.axis[i]) {
+ amax[i] = js.axis[i];
+ t = get_time();
+ }
printf("Axis %d:%5d,%5d ", i, amin[i], amax[i]);
}
printf("\r");
fflush(stdout);
- } while (get_time() < t+2000);
+ } while (get_time() < t+4000);
printf("Done. Precision is: \n");
@@ -254,30 +261,36 @@
b = js.buttons;
- for (j = 0; j < axes; j++)
- for (i = 0; i < NUM_POS; i++) {
- while(b ^ js.buttons) wait_for_event(fd, &js);
- printf("Move axis %d to %s position and push any button.\n", j, pos_name[i]);
+ for (axis = 0; axis < axes; axis++)
+ for (pos = 0; pos < NUM_POS; pos++) {
+ while(b ^ js.buttons) wait_for_event(fd, &js);
+ printf("Move axis %d to %s position and push any button.\n", axis, pos_name[pos]);
- while (!(b ^ js.buttons)) {
- print_position(j, js.axis[j]);
- wait_for_event(fd, &js);
- }
+ while (!(b ^ js.buttons)) {
+ print_position(axis, js.axis[axis]);
+ wait_for_event(fd, &js);
+ }
- putcs("Hold ... ");
+ putcs("Hold ... ");
- corda[j].cmin[i] = js.axis[j];
- corda[j].cmax[i] = js.axis[j];
+ corda[axis].cmin[pos] = js.axis[axis];
+ corda[axis].cmax[pos] = js.axis[axis];
- t = get_time();
+ t = get_time();
- while (get_time() < t + 2000 && (b ^ js.buttons)) {
- if (js.axis[j] < corda[j].cmin[i]) corda[j].cmin[i] = js.axis[j];
- if (js.axis[j] > corda[j].cmax[i]) corda[j].cmax[i] = js.axis[j];
- wait_for_event(fd, &js);
+ while (get_time() < t + 2000 && (b ^ js.buttons)) {
+ if (js.axis[axis] < corda[axis].cmin[pos]) {
+ corda[axis].cmin[pos] = js.axis[axis];
+ t = get_time();
+ }
+ if (js.axis[axis] > corda[axis].cmax[pos]) {
+ corda[axis].cmax[pos] = js.axis[axis];
+ t = get_time();
+ }
+ wait_for_event(fd, &js);
+ }
+ puts("OK.");
}
- puts("OK.");
- }
puts("");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|