As used for BB testing April / May 2016 (with the odd mod to the scope outputs)
Dependencies: iC_MU mbed-rtos mbed
Fork of SweptSine by
ServiceKeyboard.cpp@3:4deb86f4ccfe, 2016-06-08 (annotated)
- Committer:
- acodd
- Date:
- Wed Jun 08 13:53:50 2016 +0000
- Revision:
- 3:4deb86f4ccfe
As used for much of head tuning process documented in "T3 head Tuning" document.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
acodd | 3:4deb86f4ccfe | 1 | #include "mbed.h" |
acodd | 3:4deb86f4ccfe | 2 | #include "rtos.h" |
acodd | 3:4deb86f4ccfe | 3 | #include "MyAxis.h" |
acodd | 3:4deb86f4ccfe | 4 | |
acodd | 3:4deb86f4ccfe | 5 | |
acodd | 3:4deb86f4ccfe | 6 | extern Serial pc; |
acodd | 3:4deb86f4ccfe | 7 | extern float DeadBand; |
acodd | 3:4deb86f4ccfe | 8 | extern bool scoping; |
acodd | 3:4deb86f4ccfe | 9 | extern int scope_duration; |
acodd | 3:4deb86f4ccfe | 10 | extern int scope_time; |
acodd | 3:4deb86f4ccfe | 11 | extern bool sinusoid; |
acodd | 3:4deb86f4ccfe | 12 | extern bool ratiocalc; |
acodd | 3:4deb86f4ccfe | 13 | extern float jogaccel_time; |
acodd | 3:4deb86f4ccfe | 14 | extern float jogaccel; |
acodd | 3:4deb86f4ccfe | 15 | extern int pos_enc_start; |
acodd | 3:4deb86f4ccfe | 16 | extern int run_count_jog; |
acodd | 3:4deb86f4ccfe | 17 | extern int primed; |
acodd | 3:4deb86f4ccfe | 18 | float temp; |
acodd | 3:4deb86f4ccfe | 19 | |
acodd | 3:4deb86f4ccfe | 20 | |
acodd | 3:4deb86f4ccfe | 21 | // Returns the new set point entered via the keyboard |
acodd | 3:4deb86f4ccfe | 22 | int ServiceKeyboard () |
acodd | 3:4deb86f4ccfe | 23 | { |
acodd | 3:4deb86f4ccfe | 24 | int key; // The keypress by the user |
acodd | 3:4deb86f4ccfe | 25 | int value = 0; // The variable to return |
acodd | 3:4deb86f4ccfe | 26 | |
acodd | 3:4deb86f4ccfe | 27 | key = pc.getc(); // Read the intial keypress |
acodd | 3:4deb86f4ccfe | 28 | |
acodd | 3:4deb86f4ccfe | 29 | switch (key) { |
acodd | 3:4deb86f4ccfe | 30 | // List keypresses used: |
acodd | 3:4deb86f4ccfe | 31 | case 'q': |
acodd | 3:4deb86f4ccfe | 32 | // To move up and down: 8, 2: To move left and right 4,6. To start stop both: 5: |
acodd | 3:4deb86f4ccfe | 33 | pc.printf("\n\r Left, Right, Up Down: 4,6,8,2. \n\r Start & Stop both: 5 \n\r Toggle all directions = d \n\r"); |
acodd | 3:4deb86f4ccfe | 34 | pc.printf("\n\r Scope = s \n\r Run Test sinusoid = t \n\r Run Ratio Calculator = r \n\r Set Motor Kp = g \n\r Set Sys Kp_Sys = h \n\r Fetch Gain = f \n\r Set Kff_Sys = k \n\r Prime Start Scope = p \n\r Set Kff = 2 \n\r Set Gearbox Ratio = 1 \n\r"); |
acodd | 3:4deb86f4ccfe | 35 | pc.printf(" Set Stationary c value = c \n\r Set Moving c value = b \n\r Set Jog_2 value = 3 \n\r \n\r \n\r Jog Speed PAN,TILT = j,m \n\r Set Jog Acceleration = a \n\r Cycle to hard Stop = z \n\r Fade = x \n\r"); |
acodd | 3:4deb86f4ccfe | 36 | break; |
acodd | 3:4deb86f4ccfe | 37 | |
acodd | 3:4deb86f4ccfe | 38 | // Turn on Scope Tool: |
acodd | 3:4deb86f4ccfe | 39 | case 's': |
acodd | 3:4deb86f4ccfe | 40 | if (!scoping) { |
acodd | 3:4deb86f4ccfe | 41 | scope_time = 0; |
acodd | 3:4deb86f4ccfe | 42 | scoping = true; |
acodd | 3:4deb86f4ccfe | 43 | } else { |
acodd | 3:4deb86f4ccfe | 44 | scoping = false; |
acodd | 3:4deb86f4ccfe | 45 | } |
acodd | 3:4deb86f4ccfe | 46 | break; |
acodd | 3:4deb86f4ccfe | 47 | // Turn on Ratio Calculator: |
acodd | 3:4deb86f4ccfe | 48 | case 'r': |
acodd | 3:4deb86f4ccfe | 49 | if (!ratiocalc) { |
acodd | 3:4deb86f4ccfe | 50 | ratiocalc = true; |
acodd | 3:4deb86f4ccfe | 51 | pc.printf("\n\r Running Ratio Calculator"); |
acodd | 3:4deb86f4ccfe | 52 | } else { |
acodd | 3:4deb86f4ccfe | 53 | Tilt.calcmyratio = false; |
acodd | 3:4deb86f4ccfe | 54 | Pan.calcmyratio = false; |
acodd | 3:4deb86f4ccfe | 55 | } |
acodd | 3:4deb86f4ccfe | 56 | break; |
acodd | 3:4deb86f4ccfe | 57 | // We are going to jog Tilt up |
acodd | 3:4deb86f4ccfe | 58 | case '8': |
acodd | 3:4deb86f4ccfe | 59 | Tilt.sysjogdir = -1; |
acodd | 3:4deb86f4ccfe | 60 | if (Tilt.moveme) { |
acodd | 3:4deb86f4ccfe | 61 | //pc.printf("\n\r Moving stop"); |
acodd | 3:4deb86f4ccfe | 62 | Tilt.moveme = false; |
acodd | 3:4deb86f4ccfe | 63 | } else { |
acodd | 3:4deb86f4ccfe | 64 | //pc.printf("\n\r Moving Start"); |
acodd | 3:4deb86f4ccfe | 65 | Tilt.moveme = true; |
acodd | 3:4deb86f4ccfe | 66 | } |
acodd | 3:4deb86f4ccfe | 67 | break; |
acodd | 3:4deb86f4ccfe | 68 | // We are going to jog Tilt down |
acodd | 3:4deb86f4ccfe | 69 | case '2': |
acodd | 3:4deb86f4ccfe | 70 | Tilt.sysjogdir = 1; |
acodd | 3:4deb86f4ccfe | 71 | if (Tilt.moveme) { |
acodd | 3:4deb86f4ccfe | 72 | //pc.printf("\n\r Moving stop"); |
acodd | 3:4deb86f4ccfe | 73 | Tilt.moveme = false; |
acodd | 3:4deb86f4ccfe | 74 | } else { |
acodd | 3:4deb86f4ccfe | 75 | //pc.printf("\n\r Moving Start"); |
acodd | 3:4deb86f4ccfe | 76 | Tilt.moveme = true; |
acodd | 3:4deb86f4ccfe | 77 | } |
acodd | 3:4deb86f4ccfe | 78 | break; |
acodd | 3:4deb86f4ccfe | 79 | // We are going to jog Tilt up |
acodd | 3:4deb86f4ccfe | 80 | case '4': |
acodd | 3:4deb86f4ccfe | 81 | Pan.sysjogdir = -1; |
acodd | 3:4deb86f4ccfe | 82 | if (Pan.moveme) { |
acodd | 3:4deb86f4ccfe | 83 | //pc.printf("\n\r Moving stop"); |
acodd | 3:4deb86f4ccfe | 84 | Pan.moveme = false; |
acodd | 3:4deb86f4ccfe | 85 | } else { |
acodd | 3:4deb86f4ccfe | 86 | //pc.printf("\n\r Moving Start"); |
acodd | 3:4deb86f4ccfe | 87 | Pan.moveme = true; |
acodd | 3:4deb86f4ccfe | 88 | } |
acodd | 3:4deb86f4ccfe | 89 | break; |
acodd | 3:4deb86f4ccfe | 90 | // We are going to jog Tilt down |
acodd | 3:4deb86f4ccfe | 91 | case '6': |
acodd | 3:4deb86f4ccfe | 92 | Pan.sysjogdir = 1; |
acodd | 3:4deb86f4ccfe | 93 | if (Pan.moveme) { |
acodd | 3:4deb86f4ccfe | 94 | //pc.printf("\n\r Moving stop"); |
acodd | 3:4deb86f4ccfe | 95 | Pan.moveme = false; |
acodd | 3:4deb86f4ccfe | 96 | } else { |
acodd | 3:4deb86f4ccfe | 97 | //pc.printf("\n\r Moving Start"); |
acodd | 3:4deb86f4ccfe | 98 | Pan.moveme = true; |
acodd | 3:4deb86f4ccfe | 99 | } |
acodd | 3:4deb86f4ccfe | 100 | break; |
acodd | 3:4deb86f4ccfe | 101 | // We are going to jog everything |
acodd | 3:4deb86f4ccfe | 102 | case '5': |
acodd | 3:4deb86f4ccfe | 103 | if (Pan.moveme) { |
acodd | 3:4deb86f4ccfe | 104 | //pc.printf("\n\r Moving stop"); |
acodd | 3:4deb86f4ccfe | 105 | Pan.moveme = false; |
acodd | 3:4deb86f4ccfe | 106 | } else { |
acodd | 3:4deb86f4ccfe | 107 | //pc.printf("\n\r Moving Start"); |
acodd | 3:4deb86f4ccfe | 108 | Pan.moveme = true; |
acodd | 3:4deb86f4ccfe | 109 | } |
acodd | 3:4deb86f4ccfe | 110 | if (Tilt.moveme) { |
acodd | 3:4deb86f4ccfe | 111 | //pc.printf("\n\r Moving stop"); |
acodd | 3:4deb86f4ccfe | 112 | Tilt.moveme = false; |
acodd | 3:4deb86f4ccfe | 113 | } else { |
acodd | 3:4deb86f4ccfe | 114 | //pc.printf("\n\r Moving Start"); |
acodd | 3:4deb86f4ccfe | 115 | Tilt.moveme = true; |
acodd | 3:4deb86f4ccfe | 116 | } |
acodd | 3:4deb86f4ccfe | 117 | break; |
acodd | 3:4deb86f4ccfe | 118 | // We are going to toggle all directions |
acodd | 3:4deb86f4ccfe | 119 | case 'd': |
acodd | 3:4deb86f4ccfe | 120 | Pan.sysjogdir = -Pan.sysjogdir; |
acodd | 3:4deb86f4ccfe | 121 | Tilt.sysjogdir = -Tilt.sysjogdir; |
acodd | 3:4deb86f4ccfe | 122 | break; |
acodd | 3:4deb86f4ccfe | 123 | |
acodd | 3:4deb86f4ccfe | 124 | // Turn on Potentiometer control: |
acodd | 3:4deb86f4ccfe | 125 | case 't': |
acodd | 3:4deb86f4ccfe | 126 | if (!sinusoid) { |
acodd | 3:4deb86f4ccfe | 127 | pc.printf("\n\r Running sinusoid test"); |
acodd | 3:4deb86f4ccfe | 128 | sinusoid = true; |
acodd | 3:4deb86f4ccfe | 129 | } else { |
acodd | 3:4deb86f4ccfe | 130 | sinusoid = false; |
acodd | 3:4deb86f4ccfe | 131 | } |
acodd | 3:4deb86f4ccfe | 132 | break; |
acodd | 3:4deb86f4ccfe | 133 | // We are going to set the Motor gain |
acodd | 3:4deb86f4ccfe | 134 | case 'g': |
acodd | 3:4deb86f4ccfe | 135 | pc.printf("\n\r Enter a new Motor Kp gain x 1000: "); |
acodd | 3:4deb86f4ccfe | 136 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 137 | do { |
acodd | 3:4deb86f4ccfe | 138 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 139 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 140 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 141 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 142 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 143 | } |
acodd | 3:4deb86f4ccfe | 144 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 145 | Pan.Kp = value; |
acodd | 3:4deb86f4ccfe | 146 | Pan.Kp = Pan.Kp / 1000; |
acodd | 3:4deb86f4ccfe | 147 | Tilt.Kp = Pan.Kp; |
acodd | 3:4deb86f4ccfe | 148 | //PanVelocityPID.setKp(Kp/1000); |
acodd | 3:4deb86f4ccfe | 149 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 150 | break; |
acodd | 3:4deb86f4ccfe | 151 | // We are going to set the System gain |
acodd | 3:4deb86f4ccfe | 152 | case 'h': |
acodd | 3:4deb86f4ccfe | 153 | pc.printf("\n\r Enter a new System Sys_Kp gain x 10000: "); |
acodd | 3:4deb86f4ccfe | 154 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 155 | do { |
acodd | 3:4deb86f4ccfe | 156 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 157 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 158 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 159 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 160 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 161 | } |
acodd | 3:4deb86f4ccfe | 162 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 163 | Pan.Kp_Sys = value; |
acodd | 3:4deb86f4ccfe | 164 | Pan.Kp_Sys = Pan.Kp_Sys / 10000; |
acodd | 3:4deb86f4ccfe | 165 | Tilt.Kp_Sys = Pan.Kp_Sys; |
acodd | 3:4deb86f4ccfe | 166 | //PanVelocityPID.setKp(Kp/1000); |
acodd | 3:4deb86f4ccfe | 167 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 168 | break; |
acodd | 3:4deb86f4ccfe | 169 | // We are going to confirm what the gain is |
acodd | 3:4deb86f4ccfe | 170 | case 'f': |
acodd | 3:4deb86f4ccfe | 171 | //Kp = PanVelocityPID.getKp(); |
acodd | 3:4deb86f4ccfe | 172 | pc.printf("\n\r Kp = %f, Kff = %f, Kp_Sys = %f, Kff_Sys = %f, Ratio = %f, c_stationary = %f, c_moving = %f, Jog_2 = %f \n\r", Pan.Kp,Pan.Kff,Pan.Kp_Sys,Pan.Kff_Sys,Pan.ratio,Pan.c_stationary, Pan.c_moving, Pan.Jog_2); |
acodd | 3:4deb86f4ccfe | 173 | break; |
acodd | 3:4deb86f4ccfe | 174 | |
acodd | 3:4deb86f4ccfe | 175 | // We are going to set the Jog_2 Value: |
acodd | 3:4deb86f4ccfe | 176 | case '3': |
acodd | 3:4deb86f4ccfe | 177 | pc.printf("\n\r Enter a new Jog_2 value: "); |
acodd | 3:4deb86f4ccfe | 178 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 179 | do { |
acodd | 3:4deb86f4ccfe | 180 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 181 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 182 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 183 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 184 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 185 | } |
acodd | 3:4deb86f4ccfe | 186 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 187 | Pan.Jog_2 = value; |
acodd | 3:4deb86f4ccfe | 188 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 189 | break; |
acodd | 3:4deb86f4ccfe | 190 | // We are going to set the new threshold: |
acodd | 3:4deb86f4ccfe | 191 | case '1': |
acodd | 3:4deb86f4ccfe | 192 | pc.printf("\n\r Enter a new gearbox ratio: "); |
acodd | 3:4deb86f4ccfe | 193 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 194 | do { |
acodd | 3:4deb86f4ccfe | 195 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 196 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 197 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 198 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 199 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 200 | } |
acodd | 3:4deb86f4ccfe | 201 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 202 | Pan.ratio = value; |
acodd | 3:4deb86f4ccfe | 203 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 204 | break; |
acodd | 3:4deb86f4ccfe | 205 | // We are going to set the Kff gain |
acodd | 3:4deb86f4ccfe | 206 | case 'w': |
acodd | 3:4deb86f4ccfe | 207 | pc.printf("\n\r Enter a new Kff gain x 100: "); |
acodd | 3:4deb86f4ccfe | 208 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 209 | do { |
acodd | 3:4deb86f4ccfe | 210 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 211 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 212 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 213 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 214 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 215 | } |
acodd | 3:4deb86f4ccfe | 216 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 217 | Pan.Kff = value; |
acodd | 3:4deb86f4ccfe | 218 | Pan.Kff = Pan.Kff / 100; |
acodd | 3:4deb86f4ccfe | 219 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 220 | break; |
acodd | 3:4deb86f4ccfe | 221 | // We are going to set the dead band for the Motor PWM |
acodd | 3:4deb86f4ccfe | 222 | case 'k': |
acodd | 3:4deb86f4ccfe | 223 | pc.printf("\n\r Enter a new Kff_Sys x 100: "); |
acodd | 3:4deb86f4ccfe | 224 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 225 | do { |
acodd | 3:4deb86f4ccfe | 226 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 227 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 228 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 229 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 230 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 231 | } |
acodd | 3:4deb86f4ccfe | 232 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 233 | temp = value; |
acodd | 3:4deb86f4ccfe | 234 | Pan.Kff_Sys = temp / 100; |
acodd | 3:4deb86f4ccfe | 235 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 236 | break; |
acodd | 3:4deb86f4ccfe | 237 | // We are going to set a stationary c value |
acodd | 3:4deb86f4ccfe | 238 | case 'c': |
acodd | 3:4deb86f4ccfe | 239 | pc.printf("\n\r Enter a new stationary c value: "); |
acodd | 3:4deb86f4ccfe | 240 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 241 | do { |
acodd | 3:4deb86f4ccfe | 242 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 243 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 244 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 245 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 246 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 247 | } |
acodd | 3:4deb86f4ccfe | 248 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 249 | Pan.c_stationary = value; |
acodd | 3:4deb86f4ccfe | 250 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 251 | break; |
acodd | 3:4deb86f4ccfe | 252 | // We are going to set a moving b value |
acodd | 3:4deb86f4ccfe | 253 | case 'b': |
acodd | 3:4deb86f4ccfe | 254 | pc.printf("\n\r Enter a new moving c value: "); |
acodd | 3:4deb86f4ccfe | 255 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 256 | do { |
acodd | 3:4deb86f4ccfe | 257 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 258 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 259 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 260 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 261 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 262 | } |
acodd | 3:4deb86f4ccfe | 263 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 264 | Pan.c_moving = value; |
acodd | 3:4deb86f4ccfe | 265 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 266 | break; |
acodd | 3:4deb86f4ccfe | 267 | // Set a jog speed |
acodd | 3:4deb86f4ccfe | 268 | case 'j': |
acodd | 3:4deb86f4ccfe | 269 | pc.printf("\n\r Set Jog PAN speed (Deg/s) x100 "); |
acodd | 3:4deb86f4ccfe | 270 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 271 | do { |
acodd | 3:4deb86f4ccfe | 272 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 273 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 274 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 275 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 276 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 277 | } |
acodd | 3:4deb86f4ccfe | 278 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 279 | Pan.jog = value; |
acodd | 3:4deb86f4ccfe | 280 | Pan.jog = (Pan.jog * 0.0145); |
acodd | 3:4deb86f4ccfe | 281 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 282 | break; |
acodd | 3:4deb86f4ccfe | 283 | // Set a jog speed |
acodd | 3:4deb86f4ccfe | 284 | case 'm': |
acodd | 3:4deb86f4ccfe | 285 | pc.printf("\n\r Set Jog TILT speed (Deg/s) x100 "); |
acodd | 3:4deb86f4ccfe | 286 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 287 | do { |
acodd | 3:4deb86f4ccfe | 288 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 289 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 290 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 291 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 292 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 293 | } |
acodd | 3:4deb86f4ccfe | 294 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 295 | Tilt.jog = value; |
acodd | 3:4deb86f4ccfe | 296 | Tilt.jog = (Tilt.jog * 0.0145); |
acodd | 3:4deb86f4ccfe | 297 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 298 | break; |
acodd | 3:4deb86f4ccfe | 299 | // Set the jog function to cycle to a stop |
acodd | 3:4deb86f4ccfe | 300 | case 'z': |
acodd | 3:4deb86f4ccfe | 301 | pc.printf("\n\r Set to ramp to stop \n\r"); |
acodd | 3:4deb86f4ccfe | 302 | Pan.ramp = Pan.jog / jogaccel_time; |
acodd | 3:4deb86f4ccfe | 303 | Pan.run_count_jog = 0; |
acodd | 3:4deb86f4ccfe | 304 | scope_time = 0; |
acodd | 3:4deb86f4ccfe | 305 | Pan.setramp = true; |
acodd | 3:4deb86f4ccfe | 306 | break; |
acodd | 3:4deb86f4ccfe | 307 | // Set a Fade like move |
acodd | 3:4deb86f4ccfe | 308 | case 'x': |
acodd | 3:4deb86f4ccfe | 309 | pc.printf("\n\r Set to Fade like move \n\r"); |
acodd | 3:4deb86f4ccfe | 310 | Pan.ramp = Pan.jog / jogaccel_time; |
acodd | 3:4deb86f4ccfe | 311 | Pan.run_count_jog = 0; |
acodd | 3:4deb86f4ccfe | 312 | scope_time = 0; |
acodd | 3:4deb86f4ccfe | 313 | Pan.setramp_x = true; |
acodd | 3:4deb86f4ccfe | 314 | |
acodd | 3:4deb86f4ccfe | 315 | Tilt.ramp = Tilt.jog / jogaccel_time; |
acodd | 3:4deb86f4ccfe | 316 | Tilt.run_count_jog = 0; |
acodd | 3:4deb86f4ccfe | 317 | scope_time = 0; |
acodd | 3:4deb86f4ccfe | 318 | Tilt.setramp_x = true; |
acodd | 3:4deb86f4ccfe | 319 | break; |
acodd | 3:4deb86f4ccfe | 320 | // Set a jog acceleration |
acodd | 3:4deb86f4ccfe | 321 | case 'a': |
acodd | 3:4deb86f4ccfe | 322 | pc.printf("\n\r Set ramp jogaccel_time, (ms) "); |
acodd | 3:4deb86f4ccfe | 323 | //key = pc.getc(); |
acodd | 3:4deb86f4ccfe | 324 | do { |
acodd | 3:4deb86f4ccfe | 325 | key = pc.getc(); // Wait for a keypress |
acodd | 3:4deb86f4ccfe | 326 | if(key >= '0' && key <= '9') { // Check it is a number |
acodd | 3:4deb86f4ccfe | 327 | value *= 10; // Index the old number |
acodd | 3:4deb86f4ccfe | 328 | value += (key - '0'); // Add on the new number |
acodd | 3:4deb86f4ccfe | 329 | pc.printf("%c",key); // Display the new number |
acodd | 3:4deb86f4ccfe | 330 | } |
acodd | 3:4deb86f4ccfe | 331 | } while(key != 0x0D); |
acodd | 3:4deb86f4ccfe | 332 | temp = value; |
acodd | 3:4deb86f4ccfe | 333 | jogaccel_time = temp; |
acodd | 3:4deb86f4ccfe | 334 | //ramp = ramp / 1000; |
acodd | 3:4deb86f4ccfe | 335 | pc.printf("\n\r"); |
acodd | 3:4deb86f4ccfe | 336 | break; |
acodd | 3:4deb86f4ccfe | 337 | // Prime the scope tool |
acodd | 3:4deb86f4ccfe | 338 | case 'p': |
acodd | 3:4deb86f4ccfe | 339 | pc.printf("\n\r Prime the scope tool \n\r"); |
acodd | 3:4deb86f4ccfe | 340 | primed = true; |
acodd | 3:4deb86f4ccfe | 341 | break; |
acodd | 3:4deb86f4ccfe | 342 | } |
acodd | 3:4deb86f4ccfe | 343 | return(1); |
acodd | 3:4deb86f4ccfe | 344 | } |
acodd | 3:4deb86f4ccfe | 345 | |
acodd | 3:4deb86f4ccfe | 346 | |
acodd | 3:4deb86f4ccfe | 347 | |
acodd | 3:4deb86f4ccfe | 348 | |
acodd | 3:4deb86f4ccfe | 349 |