Treehouse Mbed Team / Mbed 2 deprecated APS_DCM1SL

Dependencies:   mbed

Committer:
Slord2142
Date:
Wed Mar 06 22:32:31 2019 +0000
Revision:
30:d8721a46ee03
Parent:
25:8bcc8bea0e31
Child:
31:be17caf56d22
Removed extraneous comments from all files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfwic 0:44a3005d4f20 1 //-------------------------------------------------------------------------------
mfwic 0:44a3005d4f20 2 //
mfwic 0:44a3005d4f20 3 // Treehouse Inc.
mfwic 0:44a3005d4f20 4 // Colorado Springs, Colorado
mfwic 0:44a3005d4f20 5 //
mfwic 0:44a3005d4f20 6 // Copyright (c) 2016 by Treehouse Designs Inc.
mfwic 0:44a3005d4f20 7 //
mfwic 0:44a3005d4f20 8 // This code is the property of Treehouse, Inc. (Treehouse)
mfwic 0:44a3005d4f20 9 // and may not be redistributed in any form without prior written
mfwic 0:44a3005d4f20 10 // permission of the copyright holder, Treehouse.
mfwic 0:44a3005d4f20 11 //
mfwic 0:44a3005d4f20 12 // The above copyright notice and this permission notice shall be included in
mfwic 0:44a3005d4f20 13 // all copies or substantial portions of the Software.
mfwic 0:44a3005d4f20 14 //
mfwic 0:44a3005d4f20 15 //
mfwic 0:44a3005d4f20 16 //-------------------------------------------------------------------------------
mfwic 0:44a3005d4f20 17 //
mfwic 0:44a3005d4f20 18 // REVISION HISTORY:
mfwic 0:44a3005d4f20 19 //
mfwic 0:44a3005d4f20 20 // $Author: $
mfwic 0:44a3005d4f20 21 // $Rev: $
mfwic 0:44a3005d4f20 22 // $Date: $
mfwic 0:44a3005d4f20 23 // $URL: $
mfwic 0:44a3005d4f20 24 //
mfwic 0:44a3005d4f20 25 //-------------------------------------------------------------------------------
mfwic 0:44a3005d4f20 26
mfwic 0:44a3005d4f20 27 #include "mbed.h"
mfwic 0:44a3005d4f20 28 #include "string.h"
mfwic 0:44a3005d4f20 29 #include "stdio.h"
mfwic 0:44a3005d4f20 30 #include "stdlib.h"
mfwic 0:44a3005d4f20 31 #include "ctype.h"
mfwic 0:44a3005d4f20 32 #include "serial.h"
mfwic 0:44a3005d4f20 33 #include "globals.h"
mfwic 0:44a3005d4f20 34 #include "math.h"
mfwic 0:44a3005d4f20 35 #include "parameters.h"
mfwic 1:9f8583ba2431 36 #include "all_io.h"
mfwic 1:9f8583ba2431 37 #include "boards.h"
mfwic 1:9f8583ba2431 38 #include "menu.h"
mfwic 8:d3d7dca419b3 39 #include "command.h"
mfwic 0:44a3005d4f20 40
mfwic 21:fe0ea1860c9f 41 unsigned int boardsActive = ALLON;
mfwic 21:fe0ea1860c9f 42 unsigned int boardMults = 32;
mfwic 11:01dcfb29fbc4 43 unsigned int commandData;
mfwic 6:39442d493098 44 extern unsigned short my12;
mfwic 0:44a3005d4f20 45
mfwic 0:44a3005d4f20 46 /************* FILE SCOPE VARIABLES ************************/
mfwic 0:44a3005d4f20 47 char setvalue = FALSE;
mfwic 0:44a3005d4f20 48 int endOfCommand = 0;
mfwic 0:44a3005d4f20 49 int commandError = 0;
mfwic 0:44a3005d4f20 50 int menuLevel = LEVEL_MAIN;
mfwic 0:44a3005d4f20 51 int readback = 0;
mfwic 0:44a3005d4f20 52
mfwic 0:44a3005d4f20 53 /************************************************************
mfwic 0:44a3005d4f20 54 * Routine: getDelimiter
mfwic 0:44a3005d4f20 55 * Input: none
mfwic 0:44a3005d4f20 56 * Output: none
mfwic 0:44a3005d4f20 57 * Description:
mfwic 0:44a3005d4f20 58 * searches for a delimiter and moves the buffer location
mfwic 0:44a3005d4f20 59 * to be just past it
mfwic 0:44a3005d4f20 60 *
mfwic 0:44a3005d4f20 61 **************************************************************/
mfwic 0:44a3005d4f20 62 void getDelimiter(void)
mfwic 0:44a3005d4f20 63 {
mfwic 0:44a3005d4f20 64 ++bufloc;
mfwic 0:44a3005d4f20 65
mfwic 0:44a3005d4f20 66 while ((rxbuf[bufloc] != ' ') &&
mfwic 0:44a3005d4f20 67 (rxbuf[bufloc] != ',') &&
mfwic 0:44a3005d4f20 68 (rxbuf[bufloc] != '=') &&
mfwic 0:44a3005d4f20 69 (rxbuf[bufloc] != 0 ))
mfwic 0:44a3005d4f20 70 {
mfwic 0:44a3005d4f20 71 bufloc++;
mfwic 0:44a3005d4f20 72 }
mfwic 0:44a3005d4f20 73 }
mfwic 0:44a3005d4f20 74
mfwic 0:44a3005d4f20 75 /************************************************************
mfwic 0:44a3005d4f20 76 * Routine: gethex
mfwic 0:44a3005d4f20 77 * Input: hex character
mfwic 0:44a3005d4f20 78 * Returns: hex integer
mfwic 0:44a3005d4f20 79 * Description:
mfwic 0:44a3005d4f20 80 * Converts a hex character to a value
mfwic 0:44a3005d4f20 81 **************************************************************/
mfwic 0:44a3005d4f20 82 char gethex(char val)
mfwic 0:44a3005d4f20 83 {
mfwic 0:44a3005d4f20 84 int retval;
mfwic 0:44a3005d4f20 85 switch(val)
mfwic 0:44a3005d4f20 86 {
mfwic 0:44a3005d4f20 87 case '0':
mfwic 0:44a3005d4f20 88 retval = 0;
mfwic 0:44a3005d4f20 89 break;
mfwic 0:44a3005d4f20 90 case '1':
mfwic 0:44a3005d4f20 91 retval = 1;
mfwic 0:44a3005d4f20 92 break;
mfwic 0:44a3005d4f20 93 case '2':
mfwic 0:44a3005d4f20 94 retval = 2;
mfwic 0:44a3005d4f20 95 break;
mfwic 0:44a3005d4f20 96 case '3':
mfwic 0:44a3005d4f20 97 retval = 3;
mfwic 0:44a3005d4f20 98 break;
mfwic 0:44a3005d4f20 99 case '4':
mfwic 0:44a3005d4f20 100 retval = 4;
mfwic 0:44a3005d4f20 101 break;
mfwic 0:44a3005d4f20 102 case '5':
mfwic 0:44a3005d4f20 103 retval = 5;
mfwic 0:44a3005d4f20 104 break;
mfwic 0:44a3005d4f20 105 case '6':
mfwic 0:44a3005d4f20 106 retval = 6;
mfwic 0:44a3005d4f20 107 break;
mfwic 0:44a3005d4f20 108 case '7':
mfwic 0:44a3005d4f20 109 retval = 7;
mfwic 0:44a3005d4f20 110 break;
mfwic 0:44a3005d4f20 111 case '8':
mfwic 0:44a3005d4f20 112 retval = 8;
mfwic 0:44a3005d4f20 113 break;
mfwic 0:44a3005d4f20 114 case '9':
mfwic 0:44a3005d4f20 115 retval = 9;
mfwic 0:44a3005d4f20 116 break;
mfwic 0:44a3005d4f20 117 case 'A':
mfwic 0:44a3005d4f20 118 retval = 10;
mfwic 0:44a3005d4f20 119 break;
mfwic 0:44a3005d4f20 120 case 'B':
mfwic 0:44a3005d4f20 121 retval = 11;
mfwic 0:44a3005d4f20 122 break;
mfwic 0:44a3005d4f20 123 case 'C':
mfwic 0:44a3005d4f20 124 retval = 12;
mfwic 0:44a3005d4f20 125 break;
mfwic 0:44a3005d4f20 126 case 'D':
mfwic 0:44a3005d4f20 127 retval = 13;
mfwic 0:44a3005d4f20 128 break;
mfwic 0:44a3005d4f20 129 case 'E':
mfwic 0:44a3005d4f20 130 retval = 14;
mfwic 0:44a3005d4f20 131 break;
mfwic 0:44a3005d4f20 132 case 'F':
mfwic 0:44a3005d4f20 133 retval = 15;
mfwic 0:44a3005d4f20 134 break;
mfwic 0:44a3005d4f20 135 default:
mfwic 0:44a3005d4f20 136 retval = 0;
mfwic 0:44a3005d4f20 137 break;
mfwic 0:44a3005d4f20 138
mfwic 0:44a3005d4f20 139 }
mfwic 0:44a3005d4f20 140 return retval;
mfwic 0:44a3005d4f20 141 }
mfwic 0:44a3005d4f20 142
mfwic 0:44a3005d4f20 143 /************************************************************
mfwic 0:44a3005d4f20 144 * Routine: showfval
mfwic 0:44a3005d4f20 145 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 146 * value (float value to display)
mfwic 0:44a3005d4f20 147 * Output: none
mfwic 0:44a3005d4f20 148 * Description:
mfwic 0:44a3005d4f20 149 * Sends a floating point number (value) over the serial port
mfwic 0:44a3005d4f20 150 * if it is being retrieved (GET)
mfwic 0:44a3005d4f20 151 *
mfwic 0:44a3005d4f20 152 **************************************************************/
mfwic 0:44a3005d4f20 153 void showfval(char setval,float value)
mfwic 0:44a3005d4f20 154 {
mfwic 0:44a3005d4f20 155 if(!setval)
mfwic 0:44a3005d4f20 156 {
mfwic 1:9f8583ba2431 157 sprintf(strbuf," %4.9f",value);
mfwic 1:9f8583ba2431 158 sendSerial(strbuf);
mfwic 0:44a3005d4f20 159 }
mfwic 0:44a3005d4f20 160 }
mfwic 0:44a3005d4f20 161
mfwic 0:44a3005d4f20 162 /************************************************************
mfwic 0:44a3005d4f20 163 * Routine: showival
mfwic 0:44a3005d4f20 164 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 165 * value (integer value to display)
mfwic 0:44a3005d4f20 166 * Output: none
mfwic 0:44a3005d4f20 167 * Description:
mfwic 0:44a3005d4f20 168 * Sends an integer (value) over the serial port
mfwic 0:44a3005d4f20 169 * if it is being retrieved (GET)
mfwic 0:44a3005d4f20 170 *
mfwic 0:44a3005d4f20 171 **************************************************************/
mfwic 0:44a3005d4f20 172 void showival(char setval, int value)
mfwic 0:44a3005d4f20 173 {
mfwic 0:44a3005d4f20 174 if(!setval)
mfwic 0:44a3005d4f20 175 {
mfwic 1:9f8583ba2431 176 sprintf(strbuf," %i",value);
mfwic 1:9f8583ba2431 177 sendSerial(strbuf);
mfwic 0:44a3005d4f20 178 }
mfwic 0:44a3005d4f20 179 }
mfwic 0:44a3005d4f20 180 /************************************************************
mfwic 0:44a3005d4f20 181 * Routine: showcval
mfwic 0:44a3005d4f20 182 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 183 * value (character to display)
mfwic 0:44a3005d4f20 184 * Output: none
mfwic 0:44a3005d4f20 185 * Description:
mfwic 0:44a3005d4f20 186 * Sends a character over the serial port
mfwic 0:44a3005d4f20 187 * if it is being retrieved (GET)
mfwic 0:44a3005d4f20 188 *
mfwic 0:44a3005d4f20 189 **************************************************************/
mfwic 0:44a3005d4f20 190 void showcval(char setval, int value)
mfwic 0:44a3005d4f20 191 {
mfwic 0:44a3005d4f20 192 if(!setval)
mfwic 0:44a3005d4f20 193 {
mfwic 1:9f8583ba2431 194 sprintf(strbuf," %c",(char)value);
mfwic 1:9f8583ba2431 195 sendSerial(strbuf);
mfwic 0:44a3005d4f20 196 }
mfwic 0:44a3005d4f20 197 }
mfwic 0:44a3005d4f20 198
mfwic 0:44a3005d4f20 199 /************************************************************
mfwic 0:44a3005d4f20 200 * Routine: showlval
mfwic 0:44a3005d4f20 201 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 202 * value (integer value to display)
mfwic 0:44a3005d4f20 203 * Output: none
mfwic 0:44a3005d4f20 204 * Description:
mfwic 0:44a3005d4f20 205 * Sends an long (value) over the serial port
mfwic 0:44a3005d4f20 206 * if it is being retrieved (GET)
mfwic 0:44a3005d4f20 207 *
mfwic 0:44a3005d4f20 208 **************************************************************/
mfwic 0:44a3005d4f20 209 void showlval(char setval, long value)
mfwic 0:44a3005d4f20 210 {
mfwic 0:44a3005d4f20 211 if(!setval)
mfwic 0:44a3005d4f20 212 {
mfwic 1:9f8583ba2431 213 sprintf(strbuf," %ld",value);
mfwic 1:9f8583ba2431 214 sendSerial(strbuf);
mfwic 0:44a3005d4f20 215 }
mfwic 0:44a3005d4f20 216 }
mfwic 0:44a3005d4f20 217
mfwic 0:44a3005d4f20 218 /************************************************************
mfwic 0:44a3005d4f20 219 * Routine: showuival
mfwic 0:44a3005d4f20 220 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 221 * value (integer value to display)
mfwic 0:44a3005d4f20 222 * Output: none
mfwic 0:44a3005d4f20 223 * Description:
mfwic 0:44a3005d4f20 224 * Sends an unsigned int (value) over the serial port
mfwic 0:44a3005d4f20 225 * if it is being retrieved (GET)
mfwic 0:44a3005d4f20 226 *
mfwic 0:44a3005d4f20 227 **************************************************************/
mfwic 0:44a3005d4f20 228 void showuival(char setval, unsigned int value)
mfwic 0:44a3005d4f20 229 {
mfwic 0:44a3005d4f20 230 if(!setval)
mfwic 0:44a3005d4f20 231 {
mfwic 1:9f8583ba2431 232 sprintf(strbuf," %u",value);
mfwic 1:9f8583ba2431 233 sendSerial(strbuf);
mfwic 0:44a3005d4f20 234 }
mfwic 0:44a3005d4f20 235 }
mfwic 0:44a3005d4f20 236
mfwic 0:44a3005d4f20 237 /************************************************************
mfwic 0:44a3005d4f20 238 * Routine: showhval
mfwic 0:44a3005d4f20 239 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 240 * value (hex integeger value to display)
mfwic 0:44a3005d4f20 241 * Output: none
mfwic 0:44a3005d4f20 242 * Description:
mfwic 0:44a3005d4f20 243 * Sends an integer (value) in hex over the serial port
mfwic 0:44a3005d4f20 244 * if it is being retrieved (GET)
mfwic 0:44a3005d4f20 245 *
mfwic 0:44a3005d4f20 246 **************************************************************/
mfwic 0:44a3005d4f20 247 void showhval(char setval, int value)
mfwic 0:44a3005d4f20 248 {
mfwic 0:44a3005d4f20 249 if(!setval)
mfwic 0:44a3005d4f20 250 {
mfwic 0:44a3005d4f20 251 if(serialStatus.computer)
mfwic 1:9f8583ba2431 252 sprintf(strbuf," %u",(unsigned int)value);
mfwic 0:44a3005d4f20 253 else
mfwic 1:9f8583ba2431 254 sprintf(strbuf," 0x%04x",value);
mfwic 1:9f8583ba2431 255 sendSerial(strbuf);
mfwic 0:44a3005d4f20 256 }
mfwic 0:44a3005d4f20 257 }
mfwic 0:44a3005d4f20 258
mfwic 0:44a3005d4f20 259
mfwic 0:44a3005d4f20 260 /************************************************************
mfwic 0:44a3005d4f20 261 * Routine: getival
mfwic 0:44a3005d4f20 262 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 263 * Returns: the value if it is being SET or 0 if it is a GET
mfwic 0:44a3005d4f20 264 * Description:
mfwic 0:44a3005d4f20 265 * Gets an integer from the serial port connection.
mfwic 0:44a3005d4f20 266 *
mfwic 0:44a3005d4f20 267 **************************************************************/
mfwic 0:44a3005d4f20 268 int getival(char setval)
mfwic 0:44a3005d4f20 269 {
mfwic 0:44a3005d4f20 270 if (setval)
mfwic 0:44a3005d4f20 271 {
mfwic 0:44a3005d4f20 272 return atoi(&rxbuf[++bufloc]);
mfwic 0:44a3005d4f20 273 }
mfwic 0:44a3005d4f20 274
mfwic 0:44a3005d4f20 275 return 0;
mfwic 0:44a3005d4f20 276 }
mfwic 0:44a3005d4f20 277
mfwic 0:44a3005d4f20 278 /************************************************************
mfwic 0:44a3005d4f20 279 * Routine: getcval
mfwic 0:44a3005d4f20 280 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 281 * Returns: the value if it is being SET or 0 if it is a GET
mfwic 0:44a3005d4f20 282 * Description:
mfwic 0:44a3005d4f20 283 * Gets an character from the serial port connection.
mfwic 0:44a3005d4f20 284 *
mfwic 0:44a3005d4f20 285 **************************************************************/
mfwic 0:44a3005d4f20 286 int getcval(char setval)
mfwic 0:44a3005d4f20 287 {
mfwic 0:44a3005d4f20 288 if(setval)
mfwic 0:44a3005d4f20 289 {
mfwic 0:44a3005d4f20 290 // skip one space
mfwic 0:44a3005d4f20 291 ++bufloc;
mfwic 0:44a3005d4f20 292 // skip spaces and the equals sign
mfwic 0:44a3005d4f20 293 while((rxbuf[bufloc] == ' ') || (rxbuf[bufloc] == '='))
mfwic 0:44a3005d4f20 294 bufloc++;
mfwic 0:44a3005d4f20 295 return rxbuf[bufloc++];
mfwic 0:44a3005d4f20 296 }
mfwic 0:44a3005d4f20 297 else
mfwic 0:44a3005d4f20 298 return 0;
mfwic 0:44a3005d4f20 299
mfwic 0:44a3005d4f20 300 }
mfwic 0:44a3005d4f20 301 /************************************************************
mfwic 0:44a3005d4f20 302 * Routine: getlval
mfwic 0:44a3005d4f20 303 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 304 * Returns: the value if it is being SET or 0 if it is a GET
mfwic 0:44a3005d4f20 305 * Description:
mfwic 0:44a3005d4f20 306 * Gets an long from the serial port connection.
mfwic 0:44a3005d4f20 307 *
mfwic 0:44a3005d4f20 308 **************************************************************/
mfwic 0:44a3005d4f20 309 long getlval(char setval)
mfwic 0:44a3005d4f20 310 {
mfwic 0:44a3005d4f20 311 if(setval)
mfwic 0:44a3005d4f20 312 return atol(&rxbuf[++bufloc]);
mfwic 0:44a3005d4f20 313 else
mfwic 0:44a3005d4f20 314 return 0;
mfwic 0:44a3005d4f20 315
mfwic 0:44a3005d4f20 316 }
mfwic 0:44a3005d4f20 317
mfwic 0:44a3005d4f20 318 /************************************************************
mfwic 0:44a3005d4f20 319 * Routine: getfval
mfwic 0:44a3005d4f20 320 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 321 * Returns: the value if it is being SET or 0 if it is a GET
mfwic 0:44a3005d4f20 322 * Description:
mfwic 0:44a3005d4f20 323 * Gets an float from the serial port connection.
mfwic 0:44a3005d4f20 324 *
mfwic 0:44a3005d4f20 325 **************************************************************/
mfwic 0:44a3005d4f20 326 float getfval(char setval)
mfwic 0:44a3005d4f20 327 {
mfwic 0:44a3005d4f20 328 if(setval)
mfwic 0:44a3005d4f20 329 return atof(&rxbuf[++bufloc]);
mfwic 0:44a3005d4f20 330 else
mfwic 0:44a3005d4f20 331 return 0;
mfwic 0:44a3005d4f20 332 }
mfwic 0:44a3005d4f20 333
mfwic 0:44a3005d4f20 334 /************************************************************
mfwic 0:44a3005d4f20 335 * Routine: validateEntry
mfwic 0:44a3005d4f20 336 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 337 * limlo -- low limit
mfwic 0:44a3005d4f20 338 * limhi -- high limit
mfwic 0:44a3005d4f20 339 * address -- address in eeprom to use
mfwic 0:44a3005d4f20 340 * Returns: 0 if entry validates and is written
mfwic 0:44a3005d4f20 341 * 1 if entry fails
mfwic 0:44a3005d4f20 342 * Description:
mfwic 0:44a3005d4f20 343 * Gets or sets a value in eeprom at the address but only
mfwic 0:44a3005d4f20 344 * if it is between the limits will it write the value to
mfwic 0:44a3005d4f20 345 * eeprom
mfwic 0:44a3005d4f20 346 *
mfwic 0:44a3005d4f20 347 **************************************************************/
mfwic 0:44a3005d4f20 348 int validateEntry(char setvalue, float limlo, float limhi, float *address)
mfwic 0:44a3005d4f20 349 {
mfwic 0:44a3005d4f20 350 float val;
mfwic 0:44a3005d4f20 351
mfwic 0:44a3005d4f20 352 if (setvalue)
mfwic 0:44a3005d4f20 353 {
mfwic 0:44a3005d4f20 354 val = getfval(SET);
mfwic 0:44a3005d4f20 355
mfwic 0:44a3005d4f20 356 if ((val >= limlo) && (val <= limhi))
mfwic 0:44a3005d4f20 357 {
mfwic 0:44a3005d4f20 358 *address = val;
mfwic 0:44a3005d4f20 359 }
mfwic 0:44a3005d4f20 360 else
mfwic 0:44a3005d4f20 361 {
mfwic 0:44a3005d4f20 362 showRangeError(0, 0, val);
mfwic 0:44a3005d4f20 363 return 0;
mfwic 0:44a3005d4f20 364 }
mfwic 0:44a3005d4f20 365 }
mfwic 0:44a3005d4f20 366 else
mfwic 0:44a3005d4f20 367 {
mfwic 0:44a3005d4f20 368 val = *address;
mfwic 1:9f8583ba2431 369 sprintf(strbuf, " %4.3f", val);
mfwic 1:9f8583ba2431 370 sendSerial(strbuf);
mfwic 0:44a3005d4f20 371 }
mfwic 0:44a3005d4f20 372
mfwic 0:44a3005d4f20 373 return 1;
mfwic 0:44a3005d4f20 374 }
mfwic 0:44a3005d4f20 375
mfwic 0:44a3005d4f20 376
mfwic 0:44a3005d4f20 377 /************************************************************
mfwic 0:44a3005d4f20 378 * Routine: validateEntry
mfwic 0:44a3005d4f20 379 * Input: setval (GET or SET)
mfwic 0:44a3005d4f20 380 * limlo -- low limit
mfwic 0:44a3005d4f20 381 * limhi -- high limit
mfwic 0:44a3005d4f20 382 * address -- address in eeprom to use
mfwic 0:44a3005d4f20 383 *
mfwic 0:44a3005d4f20 384 * Returns: FALSE if entry fails
mfwic 0:44a3005d4f20 385 * TRUE if entry validates and is written
mfwic 0:44a3005d4f20 386 *
mfwic 0:44a3005d4f20 387 * Description:
mfwic 0:44a3005d4f20 388 * Gets or sets a value in eeprom at the address but only
mfwic 0:44a3005d4f20 389 * if it is between the limits will it write the value to
mfwic 0:44a3005d4f20 390 * eeprom
mfwic 0:44a3005d4f20 391 *
mfwic 0:44a3005d4f20 392 **************************************************************/
mfwic 0:44a3005d4f20 393 int validateInt(char setvalue, int limlo, int limhi, int *address)
mfwic 0:44a3005d4f20 394 {
mfwic 0:44a3005d4f20 395 float val;
mfwic 0:44a3005d4f20 396
mfwic 0:44a3005d4f20 397 if (setvalue)
mfwic 0:44a3005d4f20 398 {
mfwic 0:44a3005d4f20 399 val = getfval(SET);
mfwic 0:44a3005d4f20 400
mfwic 0:44a3005d4f20 401 if ((val >= limlo) && (val <= limhi))
mfwic 0:44a3005d4f20 402 {
mfwic 0:44a3005d4f20 403 *address = val;
mfwic 0:44a3005d4f20 404 }
mfwic 0:44a3005d4f20 405 else
mfwic 0:44a3005d4f20 406 {
mfwic 0:44a3005d4f20 407 showRangeError(1, val, 0);
mfwic 0:44a3005d4f20 408 return FALSE;
mfwic 0:44a3005d4f20 409 }
mfwic 0:44a3005d4f20 410 }
mfwic 0:44a3005d4f20 411 else
mfwic 0:44a3005d4f20 412 {
mfwic 0:44a3005d4f20 413 val = *address;
mfwic 1:9f8583ba2431 414 sprintf(strbuf, " %4.0f", val);
mfwic 1:9f8583ba2431 415 sendSerial(strbuf);
mfwic 0:44a3005d4f20 416 }
mfwic 0:44a3005d4f20 417
mfwic 0:44a3005d4f20 418 return TRUE;
mfwic 0:44a3005d4f20 419 }
mfwic 0:44a3005d4f20 420
mfwic 0:44a3005d4f20 421
mfwic 0:44a3005d4f20 422 /************************************************************
mfwic 0:44a3005d4f20 423 * Routine: parseCommand
mfwic 0:44a3005d4f20 424 * Input: setvalue (GET or SET), command buffer
mfwic 0:44a3005d4f20 425 * Returns: none
mfwic 0:44a3005d4f20 426 * Description:
mfwic 0:44a3005d4f20 427 * parses a command and gets the commandstring
mfwic 0:44a3005d4f20 428 **************************************************************/
mfwic 0:44a3005d4f20 429 void parseCommand(char setvalue, char *commandString)
mfwic 0:44a3005d4f20 430 {
mfwic 0:44a3005d4f20 431 int i, endofc;
mfwic 0:44a3005d4f20 432 char store;
mfwic 0:44a3005d4f20 433
mfwic 0:44a3005d4f20 434 // Ignore any white space and the optional ';' character before the start of
mfwic 0:44a3005d4f20 435 // the command string (any ']' character is from the last command so skip that,
mfwic 0:44a3005d4f20 436 // too)
mfwic 0:44a3005d4f20 437 while ((isspace(rxbuf[bufloc])) || (rxbuf[bufloc] == ';') || (rxbuf[bufloc] == ']'))
mfwic 0:44a3005d4f20 438 {
mfwic 0:44a3005d4f20 439 bufloc++;
mfwic 0:44a3005d4f20 440 if ((rxbuf[bufloc] == 0x0D) || (rxbuf[bufloc] == 0)) break;
mfwic 0:44a3005d4f20 441 }
mfwic 0:44a3005d4f20 442
mfwic 0:44a3005d4f20 443 if (setvalue)
mfwic 0:44a3005d4f20 444 {
mfwic 0:44a3005d4f20 445 // We need a value for SET so hitting the end is a problem
mfwic 0:44a3005d4f20 446 if ((rxbuf[bufloc] == 0) || (rxbuf[bufloc] == 0x0D))
mfwic 0:44a3005d4f20 447 {
mfwic 0:44a3005d4f20 448 commandError = 1;
mfwic 0:44a3005d4f20 449 return;
mfwic 0:44a3005d4f20 450 }
mfwic 0:44a3005d4f20 451 }
mfwic 0:44a3005d4f20 452
mfwic 0:44a3005d4f20 453 // Find the end of the command string
mfwic 0:44a3005d4f20 454 endofc = bufloc + 1;
mfwic 0:44a3005d4f20 455
mfwic 0:44a3005d4f20 456 // White space, '[' and '?' all terminate the command string
mfwic 0:44a3005d4f20 457 while ((!isspace(rxbuf[endofc])) && (rxbuf[endofc] != '[') && (rxbuf[endofc] != '?'))
mfwic 0:44a3005d4f20 458 {
mfwic 0:44a3005d4f20 459 endofc++;
mfwic 0:44a3005d4f20 460 // (As does hitting the end of rxbuf!)
mfwic 0:44a3005d4f20 461 if ((rxbuf[endofc] == 0x0D) || (rxbuf[endofc] == 0)) break;
mfwic 0:44a3005d4f20 462 }
mfwic 0:44a3005d4f20 463
mfwic 0:44a3005d4f20 464 // Save the character that marks the end of the command string
mfwic 0:44a3005d4f20 465 store = rxbuf[endofc];
mfwic 0:44a3005d4f20 466
mfwic 1:9f8583ba2431 467 // sprintf(strbuf, "store == %c\r\n", store);
mfwic 1:9f8583ba2431 468 // sendSerial(strbuf);
mfwic 0:44a3005d4f20 469
mfwic 0:44a3005d4f20 470 // Command strings ending in '?' are readbacks
mfwic 0:44a3005d4f20 471 readback = ((store == '?') ? 1 : 0);
mfwic 0:44a3005d4f20 472
mfwic 0:44a3005d4f20 473 // Set end to null character so string can now be copied
mfwic 0:44a3005d4f20 474 rxbuf[endofc] = 0;
mfwic 0:44a3005d4f20 475
mfwic 0:44a3005d4f20 476 // Copy the command string into commandString
mfwic 5:09be5bbb5020 477 char commandStringBuf[80];
mfwic 5:09be5bbb5020 478 char *tok;
mfwic 5:09be5bbb5020 479 strcpy(commandStringBuf, &rxbuf[bufloc]);
mfwic 5:09be5bbb5020 480 if(strstr(commandStringBuf, "=")){
mfwic 5:09be5bbb5020 481 tok = strtok(commandStringBuf, "=");
mfwic 5:09be5bbb5020 482 strcpy(commandString, tok);
mfwic 5:09be5bbb5020 483 tok = strtok(NULL, "=");
mfwic 5:09be5bbb5020 484 commandData = atoi(tok);
mfwic 5:09be5bbb5020 485 }
mfwic 5:09be5bbb5020 486 else{
mfwic 5:09be5bbb5020 487 strcpy(commandString, commandStringBuf);
mfwic 5:09be5bbb5020 488 }
mfwic 0:44a3005d4f20 489
mfwic 0:44a3005d4f20 490 // Convert the command string to all uppercase characters
mfwic 0:44a3005d4f20 491 for (i = 0; i < strlen(commandString); i++)
mfwic 0:44a3005d4f20 492 {
mfwic 0:44a3005d4f20 493 commandString[i] = toupper(commandString[i]);
mfwic 0:44a3005d4f20 494 }
mfwic 0:44a3005d4f20 495
mfwic 0:44a3005d4f20 496 // Replace the character we clobbered in rxbuf
mfwic 0:44a3005d4f20 497 rxbuf[endofc] = store;
mfwic 0:44a3005d4f20 498
mfwic 0:44a3005d4f20 499 // Update bufloc to the end of the command string
mfwic 0:44a3005d4f20 500 bufloc = endofc;
mfwic 11:01dcfb29fbc4 501 }
mfwic 0:44a3005d4f20 502
mfwic 0:44a3005d4f20 503 /************************************************************
mfwic 0:44a3005d4f20 504 * Routine: doCommand
mfwic 0:44a3005d4f20 505 * Input: none
mfwic 0:44a3005d4f20 506 * Returns: none
mfwic 0:44a3005d4f20 507 * Description:
mfwic 0:44a3005d4f20 508 * This is the start of the command string.
mfwic 0:44a3005d4f20 509 **************************************************************/
mfwic 0:44a3005d4f20 510 void doCommand(void)
mfwic 0:44a3005d4f20 511 {
mfwic 6:39442d493098 512 int ival;
mfwic 0:44a3005d4f20 513 unsigned int boardEnables;
mfwic 0:44a3005d4f20 514
mfwic 0:44a3005d4f20 515 char commandString[80] = { 0 };
mfwic 0:44a3005d4f20 516
mfwic 0:44a3005d4f20 517 bufloc = 0;
mfwic 0:44a3005d4f20 518 commandError = 0;
mfwic 0:44a3005d4f20 519
mfwic 0:44a3005d4f20 520 parseCommand(GET, commandString);
mfwic 0:44a3005d4f20 521
mfwic 1:9f8583ba2431 522 if (!strcmp(commandString, "MENU"))
mfwic 1:9f8583ba2431 523 {
mfwic 8:d3d7dca419b3 524 menuRedraw(NO_PROMPT);
mfwic 1:9f8583ba2431 525 }
mfwic 3:d8948c5b2951 526 else if (!strcmp(commandString, "HELP"))
mfwic 3:d8948c5b2951 527 {
mfwic 8:d3d7dca419b3 528 menuRedraw(NO_PROMPT);
mfwic 3:d8948c5b2951 529 }
mfwic 25:8bcc8bea0e31 530 else if (!strcmp(commandString, "MAXB"))
mfwic 25:8bcc8bea0e31 531 // MAXB is used to get/set the max_boards value.
mfwic 25:8bcc8bea0e31 532 // The integer value of max_boards is used to select the appropriate lookup table.
mfwic 25:8bcc8bea0e31 533 {
mfwic 25:8bcc8bea0e31 534 if (readback)
mfwic 25:8bcc8bea0e31 535 {
mfwic 25:8bcc8bea0e31 536 sprintf(strbuf, " %d", max_boards);
mfwic 25:8bcc8bea0e31 537 sendSerial(strbuf);
mfwic 25:8bcc8bea0e31 538 }
mfwic 25:8bcc8bea0e31 539 else if (running == 1)
mfwic 25:8bcc8bea0e31 540 {
mfwic 25:8bcc8bea0e31 541 sprintf(strbuf, " Parameters may not be updated while running!");
mfwic 25:8bcc8bea0e31 542 sendSerial(strbuf);
mfwic 25:8bcc8bea0e31 543 }
mfwic 25:8bcc8bea0e31 544 else
mfwic 25:8bcc8bea0e31 545 {
mfwic 25:8bcc8bea0e31 546 max_boards = commandData;
mfwic 25:8bcc8bea0e31 547 }
mfwic 25:8bcc8bea0e31 548 }
mfwic 1:9f8583ba2431 549 else if (!strcmp(commandString, "BRDS"))
mfwic 1:9f8583ba2431 550 // BRDS is used to get/set the wr_out value.
mfwic 5:09be5bbb5020 551 // The integer value of boardsActive is used to change wr_out via setBoardEnables(boardsActive).
mfwic 1:9f8583ba2431 552 // Slots 12 to 0 are activated with the wr_out signals
mfwic 1:9f8583ba2431 553 // wr_out[13] = slots[12:0]
mfwic 0:44a3005d4f20 554 {
mfwic 0:44a3005d4f20 555 if (readback)
mfwic 0:44a3005d4f20 556 {
mfwic 5:09be5bbb5020 557 sprintf(strbuf, " %d", boardsActive);
mfwic 1:9f8583ba2431 558 sendSerial(strbuf);
mfwic 0:44a3005d4f20 559 }
mfwic 12:fd1fd1857628 560 else if (running == 1)
mfwic 12:fd1fd1857628 561 {
mfwic 12:fd1fd1857628 562 sprintf(strbuf, " Parameters may not be updated while running!");
mfwic 12:fd1fd1857628 563 sendSerial(strbuf);
mfwic 12:fd1fd1857628 564 }
mfwic 0:44a3005d4f20 565 else
mfwic 0:44a3005d4f20 566 {
mfwic 12:fd1fd1857628 567 boardsActive = commandData;
mfwic 12:fd1fd1857628 568 if(checkRange(boardsActive, 0, 8191) == 1){
mfwic 12:fd1fd1857628 569 wr_out_code = setBoardEnables(boardsActive);
mfwic 12:fd1fd1857628 570 testing = TRUE;
mfwic 1:9f8583ba2431 571 }else{
mfwic 5:09be5bbb5020 572 showRangeError(1, boardsActive, 0.0);
mfwic 1:9f8583ba2431 573 }
mfwic 1:9f8583ba2431 574 }
mfwic 1:9f8583ba2431 575 }
mfwic 1:9f8583ba2431 576 else if (!strcmp(commandString, "MULT"))
mfwic 1:9f8583ba2431 577 // MULT is used to get/set the en_out value.
mfwic 5:09be5bbb5020 578 // The integer value of boardMults is used to change en_out via setBoardWeights(boardMults).
mfwic 1:9f8583ba2431 579 // en_out are binary weighted signals that activate groups of DC-DC converters on the slot cards.
mfwic 1:9f8583ba2431 580 // en_out[6] = {en32, en16, en8, en4, en2, en1}
mfwic 1:9f8583ba2431 581 {
mfwic 1:9f8583ba2431 582 if (readback)
mfwic 1:9f8583ba2431 583 {
mfwic 5:09be5bbb5020 584 sprintf(strbuf, " %d", boardMults);
mfwic 1:9f8583ba2431 585 sendSerial(strbuf);
mfwic 1:9f8583ba2431 586 }
mfwic 12:fd1fd1857628 587 else if (running == 1)
mfwic 12:fd1fd1857628 588 {
mfwic 12:fd1fd1857628 589 sprintf(strbuf, " Parameters may not be updated while running!");
mfwic 12:fd1fd1857628 590 sendSerial(strbuf);
mfwic 12:fd1fd1857628 591 }
mfwic 1:9f8583ba2431 592 else
mfwic 1:9f8583ba2431 593 {
mfwic 12:fd1fd1857628 594 boardMults = commandData;
mfwic 5:09be5bbb5020 595 if(checkRange(boardMults, 0, 63) == 1){
mfwic 6:39442d493098 596 en_out_code = setBoardWeights(boardMults);
mfwic 12:fd1fd1857628 597 testing = TRUE;
mfwic 1:9f8583ba2431 598 }else{
mfwic 5:09be5bbb5020 599 showRangeError(1, boardMults, 0.0);
mfwic 1:9f8583ba2431 600 }
mfwic 0:44a3005d4f20 601 }
mfwic 0:44a3005d4f20 602 }
mfwic 6:39442d493098 603 else if (!strcmp(commandString, "MY12"))
mfwic 6:39442d493098 604 // MULT is used to get/set the en_out value.
mfwic 6:39442d493098 605 // The integer value of boardMults is used to change en_out via setBoardWeights(boardMults).
mfwic 6:39442d493098 606 // en_out are binary weighted signals that activate groups of DC-DC converters on the slot cards.
mfwic 6:39442d493098 607 // en_out[6] = {en32, en16, en8, en4, en2, en1}
mfwic 6:39442d493098 608
mfwic 6:39442d493098 609 if (readback)
mfwic 6:39442d493098 610 {
mfwic 6:39442d493098 611 sprintf(strbuf, " %d", my12);
mfwic 6:39442d493098 612 sendSerial(strbuf);
mfwic 12:fd1fd1857628 613 }else{
mfwic 12:fd1fd1857628 614 my12 = commandData;
mfwic 12:fd1fd1857628 615 testing = FALSE;
mfwic 6:39442d493098 616 }
mfwic 6:39442d493098 617 }
mfwic 0:44a3005d4f20 618 else if (!strcmp(commandString, "ALLOFF"))
mfwic 0:44a3005d4f20 619 {
mfwic 7:860b3a8275cb 620 my12 = 0;
mfwic 7:860b3a8275cb 621 running = FALSE;
mfwic 12:fd1fd1857628 622 testing = FALSE;
mfwic 7:860b3a8275cb 623 if(DEBUG){
mfwic 7:860b3a8275cb 624 sprintf(strbuf, "wr_out_code=%d\r\n", wr_out_code);
mfwic 7:860b3a8275cb 625 sendSerial(strbuf);
mfwic 7:860b3a8275cb 626 }
mfwic 0:44a3005d4f20 627 }
mfwic 0:44a3005d4f20 628 else if (!strcmp(commandString, "ALLON"))
mfwic 0:44a3005d4f20 629 {
mfwic 7:860b3a8275cb 630 wr_out_code = setBoardEnables((unsigned int)ALLON);
mfwic 12:fd1fd1857628 631 testing = TRUE;
mfwic 0:44a3005d4f20 632 }
mfwic 0:44a3005d4f20 633 else if (!strcmp(commandString, "RUN"))
mfwic 0:44a3005d4f20 634 {
mfwic 0:44a3005d4f20 635 // Skip over any white space and the optional '[' character
mfwic 0:44a3005d4f20 636 while ((isspace(rxbuf[bufloc])) || (rxbuf[bufloc] == '[')) bufloc++;
mfwic 0:44a3005d4f20 637
mfwic 9:816b9a4e4f21 638 if(rxbuf[bufloc] == NULL){
mfwic 21:fe0ea1860c9f 639 boardsActive = ALLON;
mfwic 9:816b9a4e4f21 640 startConverter(boardsActive);
mfwic 12:fd1fd1857628 641 testing = FALSE;
mfwic 9:816b9a4e4f21 642 }
mfwic 9:816b9a4e4f21 643 else if (rxbuf[bufloc] == '0')
mfwic 0:44a3005d4f20 644 {
mfwic 1:9f8583ba2431 645 stopConverter();
mfwic 12:fd1fd1857628 646 testing = FALSE;
mfwic 0:44a3005d4f20 647 }
mfwic 25:8bcc8bea0e31 648 else if ((rxbuf[bufloc] > '0') && (rxbuf[bufloc] < '0' + max_boards))
mfwic 0:44a3005d4f20 649 {
mfwic 0:44a3005d4f20 650 ival = atoi(&rxbuf[bufloc]);
mfwic 9:816b9a4e4f21 651 //ival--;
mfwic 0:44a3005d4f20 652
mfwic 0:44a3005d4f20 653 if (running == 0)
mfwic 0:44a3005d4f20 654 {
mfwic 1:9f8583ba2431 655 boardsActive = ival;
mfwic 1:9f8583ba2431 656 startConverter(boardsActive);
mfwic 12:fd1fd1857628 657 testing = FALSE;
mfwic 0:44a3005d4f20 658 }
mfwic 0:44a3005d4f20 659 else
mfwic 0:44a3005d4f20 660 {
mfwic 0:44a3005d4f20 661 // Compare the board enable flags between registers
mfwic 25:8bcc8bea0e31 662 //boardEnables = checkRegisterCompatibility(ival);
mfwic 0:44a3005d4f20 663
mfwic 0:44a3005d4f20 664 // If board enable flags match, change the register set
mfwic 0:44a3005d4f20 665 if (boardEnables == 0)
mfwic 0:44a3005d4f20 666 {
mfwic 1:9f8583ba2431 667 boardsActive = ival;
mfwic 0:44a3005d4f20 668 }
mfwic 0:44a3005d4f20 669 else
mfwic 0:44a3005d4f20 670 {
mfwic 1:9f8583ba2431 671 sprintf(strbuf, " Board enable flags do not match (0x%08x)", boardEnables);
mfwic 1:9f8583ba2431 672 sendSerial(strbuf);
mfwic 0:44a3005d4f20 673 }
mfwic 0:44a3005d4f20 674 }
mfwic 0:44a3005d4f20 675 }
mfwic 0:44a3005d4f20 676 else
mfwic 0:44a3005d4f20 677 {
mfwic 9:816b9a4e4f21 678 sprintf(strbuf, " Invalid number of boards (1 - %d)", MAX_BOARDS);
mfwic 1:9f8583ba2431 679 sendSerial(strbuf);
mfwic 0:44a3005d4f20 680 commandError = 1;
mfwic 0:44a3005d4f20 681 }
mfwic 0:44a3005d4f20 682 }
mfwic 0:44a3005d4f20 683 else if (!strcmp(commandString, "STOP"))
mfwic 0:44a3005d4f20 684 {
mfwic 1:9f8583ba2431 685 stopConverter();
mfwic 12:fd1fd1857628 686 testing = FALSE;
mfwic 12:fd1fd1857628 687 my12 = 0;
mfwic 0:44a3005d4f20 688 }
mfwic 8:d3d7dca419b3 689 else if(!strcmp(commandString, "CAL"))
mfwic 0:44a3005d4f20 690 {
mfwic 0:44a3005d4f20 691 if (running == 1)
mfwic 0:44a3005d4f20 692 {
mfwic 1:9f8583ba2431 693 sprintf(strbuf, " Parameters may not be updated while running!");
mfwic 1:9f8583ba2431 694 sendSerial(strbuf);
mfwic 0:44a3005d4f20 695 commandError = 1;
mfwic 0:44a3005d4f20 696 }
mfwic 11:01dcfb29fbc4 697
mfwic 8:d3d7dca419b3 698 if (!commandError){
mfwic 8:d3d7dca419b3 699 raw = TRUE;
mfwic 8:d3d7dca419b3 700 menuRedraw(NO_PROMPT);
mfwic 0:44a3005d4f20 701 }
mfwic 8:d3d7dca419b3 702 }
mfwic 8:d3d7dca419b3 703 else if(!strcmp(commandString, "UNCAL"))
mfwic 8:d3d7dca419b3 704 {
mfwic 8:d3d7dca419b3 705 if (running == 1)
mfwic 8:d3d7dca419b3 706 {
mfwic 8:d3d7dca419b3 707 sprintf(strbuf, " Parameters may not be updated while running!");
mfwic 8:d3d7dca419b3 708 sendSerial(strbuf);
mfwic 8:d3d7dca419b3 709 commandError = 1;
mfwic 8:d3d7dca419b3 710 }
mfwic 11:01dcfb29fbc4 711
mfwic 8:d3d7dca419b3 712 if (!commandError){
mfwic 8:d3d7dca419b3 713 raw = FALSE;
mfwic 8:d3d7dca419b3 714 menuRedraw(NO_PROMPT);
mfwic 8:d3d7dca419b3 715 }
mfwic 8:d3d7dca419b3 716 }
mfwic 0:44a3005d4f20 717 else
mfwic 0:44a3005d4f20 718 {
mfwic 0:44a3005d4f20 719 if (strcmp(commandString, ""))
mfwic 0:44a3005d4f20 720 {
mfwic 0:44a3005d4f20 721 commandError = 1;
mfwic 0:44a3005d4f20 722 }
mfwic 0:44a3005d4f20 723 }
mfwic 0:44a3005d4f20 724
mfwic 0:44a3005d4f20 725 if (commandError)
mfwic 0:44a3005d4f20 726 {
mfwic 6:39442d493098 727 sendSerial(" !");
mfwic 0:44a3005d4f20 728 }
mfwic 0:44a3005d4f20 729
mfwic 3:d8948c5b2951 730 menuPrompt(MENU_DCM1);
mfwic 0:44a3005d4f20 731 }
mfwic 0:44a3005d4f20 732
mfwic 0:44a3005d4f20 733 /************************************************************
mfwic 0:44a3005d4f20 734 * Routine: processCommand
mfwic 0:44a3005d4f20 735 * Input: none
mfwic 0:44a3005d4f20 736 * Returns: none
mfwic 0:44a3005d4f20 737 * Description:
mfwic 0:44a3005d4f20 738 * This is the main serial communications routine. Everything
mfwic 0:44a3005d4f20 739 * starts here as soon as a command is avaiable for processing.
mfwic 0:44a3005d4f20 740 **************************************************************/
mfwic 0:44a3005d4f20 741 void processCommand(void)
mfwic 0:44a3005d4f20 742 {
mfwic 0:44a3005d4f20 743 if (!serialStatus.command && !serialStatus.repeat)
mfwic 0:44a3005d4f20 744 {
mfwic 0:44a3005d4f20 745 return;
mfwic 0:44a3005d4f20 746 }
mfwic 0:44a3005d4f20 747
mfwic 0:44a3005d4f20 748 doCommand(); // if not computer (i.e. terminal) you can do the command as well
mfwic 0:44a3005d4f20 749
mfwic 0:44a3005d4f20 750 bufloc = 0;
mfwic 0:44a3005d4f20 751 rxbuf[bufloc] = 0;
mfwic 0:44a3005d4f20 752
mfwic 0:44a3005d4f20 753 serialStatus.computer = FALSE;
mfwic 0:44a3005d4f20 754 serialStatus.command = FALSE;
mfwic 0:44a3005d4f20 755 }
mfwic 8:d3d7dca419b3 756
mfwic 8:d3d7dca419b3 757 /************************************************************
mfwic 8:d3d7dca419b3 758 * Routine: waitCommand
mfwic 8:d3d7dca419b3 759 * Input: none
mfwic 8:d3d7dca419b3 760 * Returns: none
mfwic 8:d3d7dca419b3 761 * Description:
mfwic 8:d3d7dca419b3 762 **************************************************************/
mfwic 8:d3d7dca419b3 763 bool waitCommand(void)
mfwic 8:d3d7dca419b3 764 {
mfwic 8:d3d7dca419b3 765 if (!serialStatus.command && !serialStatus.repeat)
mfwic 8:d3d7dca419b3 766 {
mfwic 8:d3d7dca419b3 767 return TRUE;
mfwic 8:d3d7dca419b3 768 }
mfwic 8:d3d7dca419b3 769
mfwic 8:d3d7dca419b3 770 serialStatus.computer = FALSE;
mfwic 8:d3d7dca419b3 771 serialStatus.command = FALSE;
mfwic 8:d3d7dca419b3 772
mfwic 8:d3d7dca419b3 773 return FALSE;
mfwic 8:d3d7dca419b3 774 }
mfwic 11:01dcfb29fbc4 775
mfwic 11:01dcfb29fbc4 776 // Verify that the same boards are enabled in both the current register and
mfwic 11:01dcfb29fbc4 777 // the specified register
mfwic 11:01dcfb29fbc4 778
mfwic 11:01dcfb29fbc4 779