diff --git a/posctl.cc b/posctl.cc index b994fff..08414ff 100644 --- a/posctl.cc +++ b/posctl.cc @@ -133,12 +133,12 @@ void cb_posctl_btn_axismove (GtkWidget *widget, gpointer data) { posctl.GetAxisParam(0, &ramin, &ramax, NULL, NULL, NULL); posctl.GetAxisParam(1, &decmin, &decmax, NULL, NULL, NULL); - if (widget == btn_ramin) posctl.OutputWriteValue(AXIS_DEC, ramin); - else if (widget == btn_racenter) posctl.OutputWriteValue(AXIS_DEC, (ramax-ramin)/2.0+ramin); - else if (widget == btn_ramax) posctl.OutputWriteValue(AXIS_DEC, ramax); - else if (widget == btn_decmin) posctl.OutputWriteValue(AXIS_RA, decmin); - else if (widget == btn_deccenter) posctl.OutputWriteValue(AXIS_RA, (decmax-decmin)/2.0+decmin); - else if (widget == btn_decmax) posctl.OutputWriteValue(AXIS_RA, decmax); + if (widget == btn_ramin) posctl.OutputWriteValue(AXIS_RA, ramin); + else if (widget == btn_racenter) posctl.OutputWriteValue(AXIS_RA, (ramax-ramin)/2.0+ramin); + else if (widget == btn_ramax) posctl.OutputWriteValue(AXIS_RA, ramax); + else if (widget == btn_decmin) posctl.OutputWriteValue(AXIS_DEC, decmin); + else if (widget == btn_deccenter) posctl.OutputWriteValue(AXIS_DEC, (decmax-decmin)/2.0+decmin); + else if (widget == btn_decmax) posctl.OutputWriteValue(AXIS_DEC, decmax); posctl_gui_update(); } @@ -336,8 +336,8 @@ void cb_posctl_entryanglelen (GtkWidget *widget, gpointer data) { #define AXIS_DIFF_MAX 20.0 void cb_posctl_axis_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data) { - GtkWidget *da1 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_ra")); - GtkWidget *da2 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_dec")); + GtkWidget *dra = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_ra")); + GtkWidget *ddec = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_dec")); position_2d center; int axis = 0 , i, cnt; @@ -365,8 +365,8 @@ void cb_posctl_axis_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer da cairo_stroke(cr); cairo_set_dash(cr, NULL, 0, 0); - if (da1 == area) axis = 0; - else if (da2 == area) axis = 1; + if (dra == area) axis = 0; + else if (ddec == area) axis = 1; else { cairo_move_to(cr, 30, 0); cairo_show_text(cr, (char *)"unknown"); @@ -581,14 +581,14 @@ void posctl_gui_update() { * the gtk/gui updates must and will be processed in a separate gui thread */ gboolean cb_thread_posctl (gpointer data) { - GtkWidget *da1 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_ra")); - GtkWidget *da2 = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_dec")); + GtkWidget *dra = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_ra")); + GtkWidget *ddec = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_dec")); GtkWidget *tg = NULL; posctl_gui_update(); - gtk_widget_queue_draw(da1); - gtk_widget_queue_draw(da2); + gtk_widget_queue_draw(dra); + gtk_widget_queue_draw(ddec); if (posctl_rot_da == NULL) // should only be called once posctl_rot_da = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "posctl_da_rotation")); @@ -798,7 +798,6 @@ void PosCtl::CalibModeWait(int x, int y) { void PosCtl::CalibModeDelta(int x, int y) { struct timeval tv; float timediff; - double ramin, ramax; float dist = hypot ((float)(x - calib_pos.x), (float)(y - calib_pos.y)); gettimeofday (&tv, NULL); @@ -808,7 +807,6 @@ void PosCtl::CalibModeDelta(int x, int y) { position_f_2d fp; printf ("%s:%d %s\n", __FILE__, __LINE__, __FUNCTION__); - pid_axis[0].GetParam(&ramin, &ramax, NULL, NULL, NULL); fp.x = (x - calib_pos.x) / (float)timediff; fp.y = (y - calib_pos.y) / (float)timediff; @@ -822,7 +820,7 @@ void PosCtl::CalibModeDelta(int x, int y) { calib_mode = POSCTL_CALIB_MODE_AXIS1START; if (OutputWriteStop()) mode = POSCTL_MODE_OFF; - if (OutputWriteValue(0, pid_axis[0].GetMax())) mode = POSCTL_MODE_OFF; + if (OutputWriteValue(AXIS_RA, pid_axis[AXIS_RA].GetMax())) mode = POSCTL_MODE_OFF; gettimeofday (&calib_timestamp, NULL); calib_pos.x = x; @@ -853,7 +851,7 @@ void PosCtl::CalibModeAxis(int x, int y) { calib_axis1_v = fp - calib_rot_v; calc_vec2anglelen(&calib_axis1_v, &calib_axis1); if (OutputWriteStop()) mode = POSCTL_MODE_OFF; - else if (OutputWriteValue(1, pid_axis[1].GetMax())) mode = POSCTL_MODE_OFF; + else if (OutputWriteValue(AXIS_DEC, pid_axis[AXIS_DEC].GetMax())) mode = POSCTL_MODE_OFF; } else if (calib_mode == POSCTL_CALIB_MODE_AXIS2M) { calib_axis2_v = fp - calib_rot_v; @@ -876,8 +874,8 @@ void PosCtl::CalibModeFinish() { mode = POSCTL_MODE_OFF; calib_mode = POSCTL_CALIB_MODE_OFF; if (OutputWriteStop()) mode = POSCTL_MODE_OFF; - if (OutputWriteValue(0, 0.5 * (pid_axis[0].GetMin() + pid_axis[0].GetMax()))) mode = POSCTL_MODE_OFF; - if (OutputWriteValue(1, 0.5 * (pid_axis[1].GetMin() + pid_axis[1].GetMax()))) mode = POSCTL_MODE_OFF; + if (OutputWriteValue(AXIS_RA, 0.5 * (pid_axis[AXIS_RA].GetMin() + pid_axis[AXIS_RA].GetMax()))) mode = POSCTL_MODE_OFF; + if (OutputWriteValue(AXIS_DEC, 0.5 * (pid_axis[AXIS_DEC].GetMin() + pid_axis[AXIS_DEC].GetMax()))) mode = POSCTL_MODE_OFF; gettimeofday (&calib_timestamp, NULL); NotifyGtk(); }; @@ -942,14 +940,14 @@ void PosCtl::Loop (int posx, int posy) { // > 0.0 pid should decrease the output target_p.x = target_pos.x; target_p.y = target_pos.y; p.x = posx; p.y = posy; - axis_pv[0] = calib_axis2_v.perpendicular(p, target_pos); - axis_pv[1] = calib_axis1_v.perpendicular(p, target_pos); - axis_op[0] = pid_axis[0].Update(0.0, axis_pv[0]); - axis_op[1] = pid_axis[1].Update(0.0, axis_pv[1]); + axis_pv[AXIS_RA] = calib_axis2_v.perpendicular(p, target_pos); + axis_pv[AXIS_DEC] = calib_axis1_v.perpendicular(p, target_pos); + axis_op[AXIS_RA] = pid_axis[AXIS_RA].Update(0.0, axis_pv[AXIS_RA]); + axis_op[AXIS_DEC] = pid_axis[AXIS_DEC].Update(0.0, axis_pv[AXIS_DEC]); #ifdef DEBUG_POSCTL - pid_axis[0].GetParam(NULL, NULL, &kp0, &ki0, &kd0); - pid_axis[1].GetParam(NULL, NULL, &kp1, &ki1, &kd1); + pid_axis[AXIS_RA].GetParam(NULL, NULL, &kp0, &ki0, &kd0); + pid_axis[AXIS_DEC].GetParam(NULL, NULL, &kp1, &ki1, &kd1); debug_tofile((char*)"posctl.log", 0, (char*)"%d , %g,%g , %d,%d,%g,%g,%g,%g , %g,%g , %g,%g,%g,%g,%g , %g,%g , %g,%g,%g,%g,%g\n", mode, calib_rot.a, calib_rot.l, posx, posy, target_pos.x, target_pos.y, posx - target_pos.x, posy - target_pos.y, @@ -957,7 +955,7 @@ void PosCtl::Loop (int posx, int posy) { calib_axis2.a, calib_axis2.l, axis_pv[1], axis_op[1],kp1,ki1,kd1); #endif - if (OutputWriteValue(0, axis_op[0]) || OutputWriteValue(1, axis_op[1])) + if (OutputWriteValue(AXIS_RA, axis_op[AXIS_RA]) || OutputWriteValue(AXIS_DEC, axis_op[AXIS_DEC])) mode = POSCTL_MODE_OFF; axis_history_add(0, axis_pv[0], axis_op[0]);