/* ************************************************************** */ /* * Module MOVEMAGUI * This module contains functions for the MOVEMAG * user interface. * * Zachary Wolf * 9/7/05 */ /* ************************************************************** */ /* INCLUDES */ #include #include #include /* Needed if linking in external compiler; harmless otherwise */ #include #include "movemaguir.h" #include "movemagui.h" #include "movemag.h" /* ************************************************************** */ /* PRIVATE VARIABLES */ static int movemag_panel; /* ************************************************************** */ /* PRIVATE FUNCTION DECLARATIONSS */ void movemagui_error(char* msg); /* ************************************************************** */ /* PUBLIC FUNCTIONS */ /* ************************************************************** */ /* * movemagui_init * This function initializes the user interface for MOVEMAG. * * Zachary Wolf * 9/7/05 */ void movemagui_init(int top_pos, int left_pos) { /* Open the MOVEMAG panel */ movemag_panel = LoadPanel(0, "movemaguir.uir", MOVEMAGPAN); if (movemag_panel < 0) { movemagui_error("Could not open user interface panel"); return; } /* Set the panel position */ SetPanelPos(movemag_panel, top_pos, left_pos); /* Display the panel when the user interface runs */ DisplayPanel(movemag_panel); /* Done */ return; } /* ************************************************************** */ /* PRIVATE FUNCTIONS */ /* ************************************************************** */ /* * movemagui_error * This function handles error messages for the MOVEMAG user interface. * * Input: * message, string to display in standard I/O * * Zachary Wolf * 8/26/98 */ void movemagui_error(char* message) { /* Declare variables */ char buf[80]; /* Notify the operator of the error */ printf("\nMOVEMAGUI ERROR: %s\n", message); Beep(); Delay(.5); Beep(); /* Terminate the program if the operator desires */ printf("Press ENTER to continue.\nPress any key then ENTER to terminate program.\n"); fgets(buf, 80, stdin); if (buf[0] == '\n') return; else exit(0); } /* ************************************************************** */ /* PRIVATE USER INTERFACE FUNCTIONS */ /* ************************************************************** */ int CVICALLBACK movemagui_rel_move_x(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_X, &pos); movemag_rel_move_x(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_abs_move_x(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_X, &pos); movemag_abs_move_x(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_rel_move_yaw(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_YAW, &pos); movemag_rel_move_yaw(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_abs_move_yaw(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_YAW, &pos); movemag_abs_move_yaw(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_rel_move_y(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_Y, &pos); movemag_rel_move_y(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_abs_move_y(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_Y, &pos); movemag_abs_move_y(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_rel_move_pitch(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_PITCH, &pos); movemag_rel_move_pitch(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_abs_move_pitch(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_PITCH, &pos); movemag_abs_move_pitch(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_rel_move_roll(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_ROLL, &pos); movemag_rel_move_roll(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_abs_move_roll(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { double pos; switch (event) { case EVENT_COMMIT: GetCtrlVal(panel, MOVEMAGPAN_NUM_ROLL, &pos); movemag_abs_move_roll(pos); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_get_pos(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { struct mag_pos_struct pos; switch (event) { case EVENT_COMMIT: movemag_get_pos(&pos); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_X, pos.x); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_YAW, pos.yaw); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_Y, pos.y); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_PITCH, pos.pitch); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_ROLL, pos.roll); break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_zero(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { struct mag_pos_struct pos; switch (event) { case EVENT_COMMIT: movemag_zero(); movemag_get_pos(&pos); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_X, pos.x); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_YAW, pos.yaw); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_Y, pos.y); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_PITCH, pos.pitch); SetCtrlVal(panel, MOVEMAGPAN_NUM_GET_ROLL, pos.roll); break; case EVENT_RIGHT_CLICK: break; } return 0; } /* ************************************************************** */ int CVICALLBACK movemagui_quit(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: movemag_exit(); QuitUserInterface(0); break; } return 0; }