|
|
|
@ -58,8 +58,9 @@ void axis_history_add(int axis, double diff, double out) {
|
|
|
|
|
axis_history[axis][axis_history_pos[axis]].out = out;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define CALIB_DURATION_DELTA 10.0
|
|
|
|
|
#define CALIB_DURATION_AXIS 10.0
|
|
|
|
|
#define CALIB_DURATION_DELTA 120.0 // max time in sec for the detection of rotation movement
|
|
|
|
|
#define CALIB_DURATION_AXIS 120.0 // max time in sec for the detection of axis movement
|
|
|
|
|
#define CALIB_DURATION_DIST 100.0 // max distance to detect movement
|
|
|
|
|
|
|
|
|
|
void posctl_gui_update();
|
|
|
|
|
|
|
|
|
@ -679,11 +680,12 @@ void PosCtl::CalibModeDelta(int x, int y) {
|
|
|
|
|
struct timeval tv;
|
|
|
|
|
float timediff;
|
|
|
|
|
double a1min, a1max;
|
|
|
|
|
float dist = hypot ((float)(x - calib_pos.x), (float)(y - calib_pos.y));
|
|
|
|
|
|
|
|
|
|
gettimeofday (&tv, NULL);
|
|
|
|
|
timediff = (float)(tv.tv_sec - calib_timestamp.tv_sec) + ((tv.tv_usec - calib_timestamp.tv_usec) / 1000000.0);
|
|
|
|
|
|
|
|
|
|
if (timediff > CALIB_DURATION_DELTA) {
|
|
|
|
|
if (timediff > CALIB_DURATION_DELTA || dist > CALIB_DURATION_DIST) {
|
|
|
|
|
position_f_2d fp;
|
|
|
|
|
|
|
|
|
|
printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__);
|
|
|
|
@ -713,11 +715,13 @@ void PosCtl::CalibModeAxis(int x, int y) {
|
|
|
|
|
struct timeval tv;
|
|
|
|
|
float timediff;
|
|
|
|
|
position_f_2d fp;
|
|
|
|
|
float dist = hypot ((float)(x - calib_pos.x), (float)(y - calib_pos.y));
|
|
|
|
|
|
|
|
|
|
gettimeofday (&tv, NULL);
|
|
|
|
|
timediff = (float)(tv.tv_sec - calib_timestamp.tv_sec) + ((tv.tv_usec - calib_timestamp.tv_usec) / 1000000.0);
|
|
|
|
|
|
|
|
|
|
if (timediff > CALIB_DURATION_AXIS) {
|
|
|
|
|
|
|
|
|
|
if (timediff > CALIB_DURATION_AXIS || dist > CALIB_DURATION_DIST) {
|
|
|
|
|
printf ("%s:%d %s calib_mode: %d\n", __FILE__, __LINE__, __FUNCTION__, calib_mode);
|
|
|
|
|
|
|
|
|
|
fp.x = +(x - calib_pos.x) / timediff;
|
|
|
|
|