gui.txt 97-2-16 Mark Sibenac 412.268.7033 Atacama Desert Trek Robot Files associated with this GUI: gui.x NDDS structure declaration gui_mess.h Message numbers and other definitions gui.txt This file; description of GUI This lists the messages and commands for an interface between a GUI and the real-time computer. Also included are rough guidelines for the GUI. I would like the GUI to run on a Solaris 2.5 box with a Sparc 5 processor. It might be nice if it could work from Linux on a Pentium computer, but not necessary. Below, LED stands for Light Emitting Diode and represents a binary value. It does not have to be a color or b/w changing light or anything, as long as it shows a binary value. The GUI can be a layered system of modules. The two top modules are the drive-system and the pointing-system. The drive-system has some buttons and fields to it, but the pointing-system does not. Each has sub-windows for AMP, PID, and TRAJECTORY. There are also sub-windows for DRIVE under the DRIVE-SYSTEM which is applicable to the 6 driving motors, and GPS under the POINTING-SYSTEM which is to simulate GPS readings and also display live readings if it is hooked up. Since there are 8 motors total on the robot, there will be 8 AMP windows, 8 PID windows, and 8 Trajectory windows. The fields should be able to be updated if asynchronus messages come in from the real-time computer. The GUI should send out asynchronus NDDS messages whenever a field or button is updated by the user. When sending a command, the GUI fills the command_pkt structure. command_num is a number that can be found in gui_mess.h. motor_num is a number from 0-7 that can also be found in gui_mess.h. The three other values in the structure may or may not be filled. For the radio buttons, send the setting thru the nValue member. For the slider bars in the GUI, I would like to be able to change the limits easily, since I have not defined them yet. Please use some type of const definition for those. DRIVE-SYSTEM: Speed (cm/s) (float slider) Reset (button) State (radio buttons) GO (servos on and moving at speed above) STOP (servos on) LIMP (servos off) Turning Angle (rads) (float slider) AMPx6: 0,1,2,3-Drive; 4,5-Steering Reset (button) Status (radio buttons) Enable Disable Fault (LED) Enabled (LED) Temperature (LED) Max Command (amperes) (float box) Position (long integer box) Angle (rads) (float box) PIDx6: 0,1,2,3-Drive; 4,5-Steering Kp (float box) Ki (float box) Kd (float box) Integral Limit (int box) Max Position Error (int box) TRAJECTORYx6: 0,1,2,3-Drive; 4,5-Steering Reset (button) Target Position (long int box) Jog (button) Jog amount (ticks) (int box) Acceleration (ticks/s^2) (int slider) Max Velocity (ticks/s) (int slider) Status (radio buttons) Enable Disable DRIVEx6: 0,1,2,3-Drive; 4,5-Steering State (Radio buttons) Inhibited Servoing OverCurrent OverTemp Servo_Error Velocity (rads/sec) (float slider) POINTING-SYSTEM: AMPx2: 6-Azimuth, 7-Elevation Reset (button) Status (radio buttons) Enable Disable Fault (LED) Enabled (LED) Temperature (LED) Max Command (amperes) (float box) Position (long integer box) Angle (rads) (float box) PIDx2: 6-Azimuth, 7-Elevation Kp (float box) Ki (float box) Kd (float box) Integral Limit (int box) Max Position Error (int box) TRAJECTORYx2: 6-Azimuth, 7-Elevation Reset (button) Target Position (long int box) Jog (button) Jog amount (ticks) (int box) Acceleration (ticks/s^2) (int slider) Max Velocity (ticks/s) (int slider) Status (radio buttons) Enable Disable GPS: Hilltop Location Lat (float box) Hilltop Location Long (float box) Hilltop Location Altitude (float box) Rover Location Lat (float box) Rover Location Long (float box) Rover Location Altitude (float box)