Treehouse Mbed Team / Mbed 2 deprecated APS_DCM1SL2

Dependencies:   mbed

Revision:
11:01dcfb29fbc4
Parent:
10:6c3233b03658
Child:
12:fd1fd1857628
diff -r 6c3233b03658 -r 01dcfb29fbc4 src/command.cpp
--- a/src/command.cpp	Fri Dec 07 17:39:01 2018 +0000
+++ b/src/command.cpp	Fri Dec 07 20:42:41 2018 +0000
@@ -32,7 +32,6 @@
 #include "serial.h"
 #include "globals.h"
 #include "math.h"
-#include "RTC.h"
 #include "parameters.h"
 #include "all_io.h"
 //#include "calibrate.h"
@@ -40,11 +39,9 @@
 #include "menu.h"
 #include "command.h"
 
-extern unsigned int boardsActive;
-extern unsigned int boardMults;
-extern unsigned int binCode[WEIGHT_BIN_WIDTH+1];
-extern unsigned int thermCode[BOARDS_THERMCODE_WIDTH+1];
-extern unsigned int commandData;
+unsigned int boardsActive;
+unsigned int boardMults;
+unsigned int commandData;
 extern unsigned short my12;
 
 /************* FILE SCOPE VARIABLES ************************/
@@ -546,407 +543,6 @@
    }
 }
 
-
-/************************************************************
-* Routine: chlprMenu
-* Input:   none
-* Returns: none
-* Description:
-* Channel Pair Menu
-**************************************************************/
-/*void chlprMenu(void)
-{
-   int ival;
-   
-   char commandString[80] = { 0 };
-
-   commandError = 0;
-   parseCommand(GET, commandString);
- 
-   if (!strcmp(commandString, "AMPL"))
-   {
-      if (!readback)
-      {
-         setPairVariable(&ch[chpair][registerno].a_dwell1_volts, &ch[chpair][registerno].b_dwell1_volts, MIN_VOLTAGE, MAX_VOLTAGE);
-
-         ch[chpair][registerno].a_dwell2_volts = ch[chpair][registerno].a_dwell1_volts;
-         ch[chpair][registerno].b_dwell2_volts = ch[chpair][registerno].b_dwell1_volts;
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      sprintf(strbuf, " [%d, %d] peak voltage = %0.3f V", chpair, registerno, ch[chpair][registerno].a_dwell1_volts);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "DWLPHS"))
-   {
-      if (!readback)
-      {
-         // Set dwell times using the specified value
-         setPairVariable(&dwells[registerno].a_dwell1_time, &dwells[registerno].b_dwell1_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d] in-phase dwell time = %0.3f ms", registerno, dwells[registerno].a_dwell1_time);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString,"DWLPHS_OV"))
-   {
-      if (!readback)
-      {
-         setPairVariable(&ch[chpair][registerno].a_dwell1_ov, &ch[chpair][registerno].b_dwell1_ov, MIN_VOLTAGE, MAX_VOLTAGE);
-
-         ch[chpair][registerno].a_dwell2_ov = ch[chpair][registerno].a_dwell1_ov;
-         ch[chpair][registerno].b_dwell2_ov = ch[chpair][registerno].b_dwell1_ov;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      sprintf(strbuf, " [%d, %d] in-phase overvoltage = %0.3f V", chpair, registerno, ch[chpair][registerno].a_dwell1_ov);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString,"DWLPHS_OV_TIME"))
-   {
-      if (!readback)
-      {
-         // Set overvoltage times using the specified value
-         setPairVariable(&dwells[registerno].a_dwell1_ov_time, &dwells[registerno].b_dwell1_ov_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-         dwells[registerno].a_dwell2_ov_time = dwells[registerno].a_dwell1_ov_time;
-         dwells[registerno].b_dwell2_ov_time = dwells[registerno].b_dwell1_ov_time;
-        
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      sprintf(strbuf, " [%d] in-phase overvoltage time = %0.3f ms", registerno, dwells[registerno].a_dwell1_ov_time);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString,"DWLDIFFL"))
-   {
-      if (!readback)
-      {
-         // Set dwell times using the specified value
-         setPairVariable(&dwells[registerno].a_dwell2_time, &dwells[registerno].b_dwell2_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      sprintf(strbuf, " [%d] differential dwell time = %0.3f ms", registerno, dwells[registerno].a_dwell2_time);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "ENABLE"))
-   {
-      ival = getival(SET);
-      if ((ival != 0) && (ival != 1)) ival = 0;
-
-      if (!readback)
-      {
-         ch[chpair][registerno].enabled = ival;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d, %d] enable = %d", chpair, registerno, ch[chpair][registerno].enabled);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "DISABLE"))
-   {
-      if (!readback)
-      {
-         ch[chpair][registerno].enabled = 0;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d, %d] enable = %d", chpair, registerno, ch[chpair][registerno].enabled);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "DIFF"))
-   {
-      ival = getival(SET);
-      if ((ival != 0) && (ival != 1)) ival = 0;
-
-      if (!readback)
-      {
-         ch[chpair][registerno].differential_dwell = ival;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d, %d] differential_dwell = %d", chpair, registerno, ch[chpair][registerno].differential_dwell);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "INVERT"))
-   {
-      ival = getival(SET);
-      if ((ival != 0) && (ival != 1)) ival = 0;
-
-      if (!readback)
-      {
-         ch[chpair][registerno].inverted = ival;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d, %d] inverted = %d", chpair, registerno, ch[chpair][registerno].inverted);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (strcmp(commandString, ""))
-   {
-      commandError = 1;
-   }
-}*/
-
-
-/************************************************************
-* Routine: setSingleVariable
-* Input:   *avariable,*bvariable
-* Returns: none
-* Description:
-* sets a single channel variable
-**************************************************************/
-/*void setSingleVariable(float* avariable, float* bvariable, float limitlo, float limithi)
-{
-   float* variable;
-   
-   if ((chsgl == 'A') || (chsgl == 'a'))
-   {
-      variable = avariable;
-   }
-   else
-   {
-      variable = bvariable;
-   }
-
-   if (!readback)
-   {
-      validateEntry(SET, limitlo, limithi, variable);
-   }
-}*/
-
-
-/************************************************************
-* Routine: chlsglMenu
-* Input:   none
-* Returns: none
-* Description:
-* Channel Single Menu
-**************************************************************/
-/*void chlsglMenu(void)
-{
-   int channelSide;
-   float value;
-   
-   char commandString[80] = { 0 };
-
-   commandError = 0;
-   parseCommand(GET, commandString);
-
-   channelSide = (((chsgl == 'A') || (chsgl == 'a')) ? 1 : 2);
-   
-   if (!strcmp(commandString, "DWL1AMPL"))
-   {
-      if (!readback)
-      {
-         setSingleVariable(&ch[chpair][registerno].a_dwell1_volts, &ch[chpair][registerno].b_dwell1_volts, MIN_VOLTAGE, MAX_VOLTAGE);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      value = ((channelSide == 1) ? ch[chpair][registerno].a_dwell1_volts : ch[chpair][registerno].b_dwell1_volts);
-      
-      sprintf(strbuf, " [%d%c, %d] dwell 1 peak amplitude = %0.3f V", chpair, chsgl, registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "DWL1"))
-   {
-      if (!readback)
-      {
-         // Set dwell times using the specified value
-         setSingleVariable(&dwells[registerno].a_dwell1_time, &dwells[registerno].b_dwell1_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      value = ((channelSide == 1) ? dwells[registerno].a_dwell1_time : dwells[registerno].b_dwell1_time);
-
-      sprintf(strbuf, " [%d] dwell 1 time = %0.3f ms", registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "DWL1_OV"))
-   {
-      if (!readback)
-      {
-         setSingleVariable(&ch[chpair][registerno].a_dwell1_ov, &ch[chpair][registerno].b_dwell1_ov, MIN_VOLTAGE, MAX_VOLTAGE);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      value = ((channelSide == 1) ? ch[chpair][registerno].a_dwell1_ov : ch[chpair][registerno].b_dwell1_ov);
-      
-      sprintf(strbuf, " [%d%c, %d] dwell 1 overvoltage = %0.3f V", chpair, chsgl, registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "DWL1_OV_TIME"))
-   {
-      if (!readback)
-      {
-         // Set channel 1's dwell 1 overvoltage time
-         setSingleVariable(&dwells[registerno].a_dwell1_ov_time, &dwells[registerno].b_dwell1_ov_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-         
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      value = ((channelSide == 1) ? dwells[registerno].a_dwell1_ov_time : dwells[registerno].b_dwell1_ov_time);
-
-      sprintf(strbuf, " [%d] dwell 1 overvoltage time = %0.3f ms", registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "DWL2AMPL"))
-   {
-      if (!readback)
-      {
-         setSingleVariable(&ch[chpair][registerno].a_dwell2_volts, &ch[chpair][registerno].b_dwell2_volts, MIN_VOLTAGE, MAX_VOLTAGE);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      value = ((channelSide == 1) ? ch[chpair][registerno].a_dwell2_volts : ch[chpair][registerno].b_dwell2_volts);
-      
-      sprintf(strbuf, " [%d%c, %d] dwell 2 peak amplitude = %0.3f V", chpair, chsgl, registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString,"DWL2"))
-   {
-      if (!readback)
-      {
-         // Set dwell 2 time
-         setSingleVariable(&dwells[registerno].a_dwell2_time, &dwells[registerno].b_dwell2_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-         
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      value = ((channelSide == 1) ? dwells[registerno].a_dwell2_time : dwells[registerno].b_dwell2_time);
-
-      sprintf(strbuf, " [%d] dwell 2 time = %0.3f ms", registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "DWL2_OV"))
-   {
-      if (!readback)
-      {
-         setSingleVariable(&ch[chpair][registerno].a_dwell2_ov, &ch[chpair][registerno].b_dwell2_ov, MIN_VOLTAGE, MAX_VOLTAGE);
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      value = ((channelSide == 1) ? ch[chpair][registerno].a_dwell2_ov : ch[chpair][registerno].b_dwell2_ov);
-      
-      sprintf(strbuf, " [%d%c, %d] dwell 2 overvoltage = %0.3f V", chpair, chsgl, registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "DWL2_OV_TIME"))
-   {
-      if (!readback)
-      {
-         // Set dwell 2 overvoltage time
-         setSingleVariable(&dwells[registerno].a_dwell2_ov_time, &dwells[registerno].b_dwell2_ov_time, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS);
-         
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-
-      value = ((channelSide == 1) ? dwells[registerno].a_dwell2_ov_time : dwells[registerno].b_dwell2_ov_time);
-
-      sprintf(strbuf, " [%d] dwell 2 overvoltage time = %0.3f ms", registerno, value);
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "ENABLE"))
-   {
-      if (!readback)
-      {
-         ch[chpair][registerno].enabled = 1;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d, %d] enable = %d", chpair, registerno, ch[chpair][registerno].enabled);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString,"DISABLE"))
-   {
-      if (!readback)
-      {
-         ch[chpair][registerno].enabled = 0;
-
-         sprintf(strbuf, " Setting");
-         sendSerial(strbuf);
-      }
-      
-      sprintf(strbuf, " [%d, %d] enable = %d", chpair, registerno, ch[chpair][registerno].enabled);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (strcmp(commandString, ""))
-   {
-      commandError = 1;
-   }
-}*/
-
-
 /************************************************************
 * Routine: testMenu
 * Input:   none
@@ -1041,263 +637,33 @@
       sendSerial(strbuf);
       return;
    }
-/*
-   if (!strcmp(commandString, "VOLTS"))
-   {
-      ch = getival(SET);
-      getDelimiter();
-      dac = getival(SET);
-      getDelimiter();
-      fval = getfval(SET);
 
-      validateChannel(ch);
-      if (commandError) return;
-      ch--;
-      
-      if (dac == 1)
-      {
-         data = (unsigned int)(cal[ch].a_scale  *  fval + cal[ch].a_offset);
-         dac  = ADC_CH1;
-      }
-      else
-      {
-         data = (unsigned int)(cal[ch].b_scale  *  fval + cal[ch].b_offset);
-         dac  = ADC_CH2;
-      }
-  
-      sendData((unsigned int)ch, (unsigned int)dac, data);
-      sprintf(strbuf, " ch: %u dac: %u value: %u", ch + 1, dac, data);
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "BENB")) // board enable bits
-   {
-      ival = getival(SET);
-      setBoardEnables((unsigned int)ival);
-      sprintf(strbuf, " Board Enable Bits = 0x%04x\r\n", ival); 
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "BEN")) // board enable
-   {
-      ch = getival(SET);
-      getDelimiter();
-      ival = getival(SET);
-
-      validateChannel(ch);
-      if (commandError) return;
-      ch--;
-      
-      setBoardEnable(ch, (unsigned int)ival);
-      sprintf(strbuf, " Board Enable %d = %d\r\n", ch + 1, ival); 
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "LD"))
-   {
-      ival = getival(SET);
-
-      if (ival)
-      {
-         tst_ld = 1;
-      }
-      else
-      {
-         tst_ld = 0;
-      }
-
-      Delay(100);
-      ival = dtst_out;
-      sprintf(strbuf, " DTST_OUT = %d\r\n", ival); 
-      sendSerial(strbuf);
-      return;
-   }
-
-   if (!strcmp(commandString, "SCK"))
-   {
-      ival = getival(SET);
-
-      if (ival)
-      {
-         sclk = 1;
-      }
-      else
-      {
-         sclk = 0;
-      }
-
-      ival = dtst_out;
-      sprintf(strbuf, " DTST_OUT = %d\r\n", ival); 
-      sendSerial(strbuf);
-      return;
-   }
-   
-   if (!strcmp(commandString, "FLASHDEMO")) // flash test
-   {
-      flashdemo();
-      return;
-   }
-
-   if (!strcmp(commandString, "HVGOOD"))
-   {
-      sprintf(strbuf, " HVCMP1: %i HVCMP2: %i", (int)hv_cmptr1, (int)hv_cmptr2);
-      sendSerial(strbuf);
-      return;
-   }
-*/
    if (strcmp(commandString, ""))
    {
       commandError = 1;
    }
-}
-
-/************************************************************
-* Routine: setDwellTime
-* Input:   dwellType (enum)
-* Returns: none
-* Description:
-* Set the specified dwell time in [registerno] to the indicated 
-* number of milliseconds
-**************************************************************/
-/*enum { DWELL_1_OV_TIME,  DWELL_1_TIME,  DWELL_2_OV_TIME,  DWELL_2_TIME };
-
-void setDwellTime(int dwellType)
-{
-   char channelSideChar, setSingleChannel;
-   float fValue;
-
-   if (readback)
-   {
-      if (dwellType == DWELL_1_OV_TIME)
-      {
-         sprintf(strbuf, "\r\n Channel A Dwell 1 OV Time [%i] = %0.3f", registerno + 1, dwells[registerno].a_dwell1_ov_time);
-         sendSerial(strbuf);
-         sprintf(strbuf, "\r\n Channel B Dwell 1 OV Time [%i] = %0.3f", registerno + 1, dwells[registerno].b_dwell1_ov_time);
-         sendSerial(strbuf);
-      }
-
-   }
-   else if (running == 1)
-   {
-      sprintf(strbuf, " Parameters may not be updated while running!");
-      sendSerial(strbuf);
-   }
-   else 
-   {
-      // Find the next command string character
-      while (rxbuf[bufloc] == ' ' || rxbuf[bufloc] == '[' && rxbuf[bufloc] != 0x0D ){ bufloc++; }
-
-      // Is the user setting a single channel or a channel pair?
-      channelSideChar  = toupper(rxbuf[bufloc]);
-      setSingleChannel = ((channelSideChar == 'A') || (channelSideChar == 'B'));
-
-      if (setSingleChannel) 
-      {
-         chsgl = channelSideChar;
-         
-         // Skip over the channel side character
-         bufloc++;
-
-         // Find the next command string character
-         while (rxbuf[bufloc] == ' ' || rxbuf[bufloc] == ',' && rxbuf[bufloc] != 0x0D ){ bufloc++; }
-      }
-
-      // Back up because the current character should be the start of the register 
-      // number but validateInt() is going to advance one character before calling
-      // atof()
-      bufloc--;
+}//end void testMenu
 
-      if (!validateInt(SET, 1, MAX_REGISTERS, &registerno))
-      {
-         sprintf(strbuf, " Invalid register number (1 - %d)", MAX_REGISTERS);
-         sendSerial(strbuf);
-         commandError = 1;
-      }
-
-      if (!commandError)
-      {
-         // Adjust user values (1 - MAX) to 0 offset values (0 - (MAX - 1))
-         registerno--;
-
-         // Skip over the register number
-         while (isdigit(rxbuf[bufloc]) && rxbuf[bufloc] != 0x0D ){ bufloc++; }
-
-         // Skip over white space and delimiters
-         while (rxbuf[bufloc] == ' ' || rxbuf[bufloc] == ',' && rxbuf[bufloc] != 0x0D ){ bufloc++; }
-
-         // Back up because the current character should be the start of the value
-         // but validateEntry() is going to advance one character before calling
-         // atof()
-         bufloc--;
-
-         // Read and validate the dwell time value
-         if (!validateEntry(SET, MIN_DWELL_TIME_MS, MAX_DWELL_TIME_MS, &fValue))
-         {
-            sprintf(strbuf, " Invalid dwell time");
-            sendSerial(strbuf);
-            commandError = 1;
-         }
-      }
-
-      if (!commandError)
-      {
-         if (dwellType == DWELL_1_OV_TIME)
-         {
-            if ((!setSingleChannel) || (channelSideChar == 'A'))
-            {
-               dwells[registerno].a_dwell1_ov_time = fValue;
-               sprintf(strbuf, "\r\n Channel A Dwell 1 OV Time [%i] = %0.3f", registerno + 1, dwells[registerno].a_dwell1_ov_time);
-               sendSerial(strbuf);
-            }
-            if ((!setSingleChannel) || (channelSideChar == 'B'))
-            {
-               dwells[registerno].b_dwell1_ov_time = fValue;
-               sprintf(strbuf, "\r\n Channel B Dwell 1 OV Time [%i] = %0.3f", registerno + 1, dwells[registerno].b_dwell1_ov_time);
-               sendSerial(strbuf);
-            }
-         }
-         
-      }
-   }
-}*/
-
-
-// Clear the specified register
-/*
-void clearRegister(unsigned int reg)
+unsigned int checkRegisterCompatibility(unsigned int reg)
 {
    int i;
-   
-   dwells[reg].a_dwell1_time    = 0;
-   dwells[reg].a_dwell2_time    = 0;
-   dwells[reg].a_dwell1_ov_time = 0;
-   dwells[reg].a_dwell2_ov_time = 0;
-   dwells[reg].b_dwell1_time    = 0;
-   dwells[reg].b_dwell2_time    = 0;
-   dwells[reg].b_dwell1_ov_time = 0;
-   dwells[reg].b_dwell2_ov_time = 0;
+
+   unsigned int boardsEnabled = 0;
    
    for (i = 0; i < MAX_BOARDS; i++)
    {
-      ch[i][reg].enabled            = 0;
-      ch[i][reg].installed          = 0;
-      ch[i][reg].inverted           = 0;
-      ch[i][reg].differential_dwell = 1;
+      //if (ch[i][reg].enabled == 1)
+      //{
+          // Set the corresponding bit
+          boardsEnabled |= (1 << i);
+      //}
+   }
+   
+   // Invert the bits because 0 == enabled on the SPI write
+   boardsEnabled = ~boardsEnabled;
 
-      ch[i][reg].a_dwell1_volts = 0;
-      ch[i][reg].a_dwell2_volts = 0;
-      ch[i][reg].a_dwell1_ov    = 0;
-      ch[i][reg].a_dwell2_ov    = 0;
-      ch[i][reg].b_dwell1_volts = 0;
-      ch[i][reg].b_dwell2_volts = 0;
-      ch[i][reg].b_dwell1_ov    = 0;
-      ch[i][reg].b_dwell2_ov    = 0;
-   }
-}*/
-    
+   return (boardsEnabled ^ boardEnableBits) & 0x000003FF;
+}    
 
 /************************************************************
 * Routine: doCommand
@@ -1308,9 +674,7 @@
 **************************************************************/
 void doCommand(void)
 {
-   //int channelNum, channelSide, numPoints, i; 
    int ival;
-   //char channelSideChar;
    unsigned int boardEnables;
 
    char commandString[80] = { 0 };
@@ -1404,12 +768,8 @@
    }
    else if (!strcmp(commandString, "ALLOFF"))
    {
-      
-      //hv_en = 1;
-      //wr_out_code = setBoardEnables((unsigned int)ALLOFF);
       my12 = 0;
       running = FALSE;
-      //setBoardEnables((unsigned int *)alloff);
       if(DEBUG){
         sprintf(strbuf, "wr_out_code=%d\r\n", wr_out_code);
         sendSerial(strbuf);
@@ -1417,18 +777,8 @@
    }
    else if (!strcmp(commandString, "ALLON"))
    {
-      //hv_en = 0;
-      //setBoardEnables((unsigned int *)allon);
       wr_out_code = setBoardEnables((unsigned int)ALLON);
    }
-   else if (!strcmp(commandString, "DWL1_OV_TIME"))
-   {
-       //setDwellTime(DWELL_1_OV_TIME);
-   }
-   else if (!strcmp(commandString, "DWL1_TIME"))
-   {
-       //setDwellTime(DWELL_1_TIME);
-   }
    else if (!strcmp(commandString, "RUN"))
    {
       // Skip over any white space and the optional '[' character
@@ -1451,9 +801,6 @@
          
          if (running == 0)
          {
-            //setDacsToZeroVolts();
-            //Delay(1000);
-            //wait(0.5);
             boardsActive = ival;
             startConverter(boardsActive);
          }
@@ -1486,49 +833,6 @@
       stopConverter();
       //hv_en = OFF;
    }
-/*   else if (!strcmp(commandString, "CLEAR"))
-   {
-      if (running == 1)
-      {
-         sprintf(strbuf, " Parameters may not be updated while running!");
-         sendSerial(strbuf);
-         commandError = 1;
-      }
-      else if (!validateInt(SET, 0, MAX_REGISTERS, &registerno))
-      {
-         sprintf(strbuf, " Invalid register number (1 - %d)", MAX_REGISTERS);
-         sendSerial(strbuf);
-         commandError = 1;
-      }
-      
-      if (!commandError)
-      {
-         if (registerno == 0)
-         {
-            frequency = 1000;
-            
-            clearRegister(0);
-            clearRegister(1);
-            clearRegister(2);
-            clearRegister(3);
-
-            initCalParameters();
-            
-            sprintf(strbuf, " All parameters reset to default values");
-            sendSerial(strbuf);
-         }
-         else
-         {
-            // Adjust user values (1 - MAX) to 0 offset values (0 - (MAX - 1))
-            registerno--;
-
-            clearRegister(registerno);
-            
-            sprintf(strbuf, " [x, %d] voltages are 0", registerno);
-            sendSerial(strbuf);
-         }
-      }
-   }*/
    else if(!strcmp(commandString, "TEST"))
    {
       if (running == 1)
@@ -1541,43 +845,6 @@
          testMenu();
       }
    }
-/*   else if(!strcmp(commandString, "READ"))
-   {
-      if (!validateInt(SET, 1, MAX_REGISTERS, &registerno))
-      {
-         sprintf(strbuf, " Invalid register number (1 - %d)", MAX_REGISTERS);
-         sendSerial(strbuf);
-         commandError = 1;
-      }
-
-      if (!commandError)
-      {
-         // Adjust user values (1 - MAX) to 0 offset values (0 - (MAX - 1))
-         registerno--;
-         
-         sprintf(strbuf, "\r\n Register [x, %d]: ", registerno + 1);
-         sendSerial(strbuf);
-         sprintf(strbuf, "\r\n         frequency = %0.3f Hz", frequency);
-         sendSerial(strbuf);
-         sprintf(strbuf, "\r\n    dwell1_ov_time = %0.3f ms", dwells[registerno].a_dwell1_ov_time);
-         sendSerial(strbuf);
-         sprintf(strbuf, "\r\n       dwell1_time = %0.3f ms", dwells[registerno].a_dwell1_time);
-         sendSerial(strbuf);
-
-         for (i = 0; i < MAX_BOARDS; i++)
-         {
-            sprintf(strbuf, "\r\n\r\n Register [%d, %d]: ", i + 1, registerno + 1);
-            sendSerial(strbuf);
-            sprintf(strbuf, "\r\n             enabled = %d", ch[i][registerno].enabled);
-            sendSerial(strbuf);
-            sprintf(strbuf, "\r\n         a_dwell1_ov = %0.3f V", ch[i][registerno].a_dwell1_ov);
-            sendSerial(strbuf);
-            sprintf(strbuf, "\r\n      a_dwell1_volts = %0.3f V", ch[i][registerno].a_dwell1_volts);
-            sendSerial(strbuf);
-
-         }
-      }
-   }*/
    else if(!strcmp(commandString, "CAL"))
    {
       if (running == 1)
@@ -1586,12 +853,7 @@
          sendSerial(strbuf);
          commandError = 1;
       }
-      /*else if (!validateInt(SET, 1, MAX_BOARDS, &channelNum))
-      {
-         sprintf(strbuf, " Invalid board number (1 - %d)", MAX_BOARDS);
-         sendSerial(strbuf);
-         commandError = 1;
-      }*/
+
       if (!commandError){
           raw = TRUE;
           menuRedraw(NO_PROMPT);
@@ -1605,243 +867,12 @@
          sendSerial(strbuf);
          commandError = 1;
       }
-      /*else if (!validateInt(SET, 1, MAX_BOARDS, &channelNum))
-      {
-         sprintf(strbuf, " Invalid board number (1 - %d)", MAX_BOARDS);
-         sendSerial(strbuf);
-         commandError = 1;
-      }*/
+
       if (!commandError){
           raw = FALSE;
           menuRedraw(NO_PROMPT);
       }
     }
-      /*
-      if (!commandError)
-      {
-         // Adjust user values (1 - MAX) to 0 offset values (0 - (MAX - 1))
-         channelNum--;
-         
-         // Skip over digits parsed as part of the atoi() call
-         while (isdigit(rxbuf[bufloc])) bufloc++;
-
-         // Does the user simply want to read the current cal parameters?         
-         if (rxbuf[bufloc] == '?')
-         {
-            sprintf(strbuf, "\r\nChannel %dA Scale = %0.4f Offset = %0.4f", channelNum, cal[channelNum].a_scale, cal[channelNum].a_offset);
-            sendSerial(strbuf);
-            sprintf(strbuf, "\r\nChannel %dB Scale = %0.4f Offset = %0.4f", channelNum, cal[channelNum].b_scale, cal[channelNum].b_offset);
-            sendSerial(strbuf);
-            sendCRLF();
-            return;
-         }
-
-         // First character after digits must be either 'A' or 'B'
-         channelSideChar = toupper(rxbuf[bufloc]);
-         
-         if ((channelSideChar != 'A') && (channelSideChar != 'B'))
-         {
-            sprintf(strbuf, " Invalid channel (A/B)");
-            sendSerial(strbuf);
-            commandError = 1;
-         }
-      }
-
-      if (!commandError)
-      {
-         // Translate 'A' to CHAN1 and 'B' to CHAN2
-         channelSide = (channelSideChar == 'A' ? 1 : 2);
-         
-         // Move past the channel side character
-         bufloc++;
-
-         // Does the user simply want to read the current cal parameters?
-         if (rxbuf[bufloc] == '?')
-         {
-            if (channelSide == 1)
-            {
-               sprintf(strbuf, "\r\nChannel %dA Scale = %0.4f Offset = %0.4f", channelNum, cal[channelNum].a_scale, cal[channelNum].a_offset);
-               sendSerial(strbuf);
-            }
-            else
-            {
-               sprintf(strbuf, "\r\nChannel %dB Scale = %0.4f Offset = %0.4f", channelNum, cal[channelNum].b_scale, cal[channelNum].b_offset);
-               sendSerial(strbuf);
-            }
-
-            sendCRLF();
-            return;
-         }
-
-         // If no point value specified, silently default to 3-point cal
-         if (!strcmp(&rxbuf[bufloc], ""))
-         {
-            numPoints = 3;
-         }
-         else if (!validateInt(SET, 3, 11, &numPoints))
-         {
-            sprintf(strbuf, " Invalid number of cal points (3 - 11)");
-            sendSerial(strbuf);
-            commandError = 1;
-         }
-      }
-       
-      if (!commandError)
-      {
-         sprintf(strbuf, " Starting %d-point Calibration on Channel %d%c", numPoints, channelNum, channelSideChar);
-         sendSerial(strbuf);
-         
-         // Reset the serial buffer for the incoming user input
-         bufloc = 0;
-         rxbuf[bufloc] = 0;
-         
-         calibrate(channelNum, channelSide, numPoints);
-      }
-   }
-   else if (!strcmp(commandString, "COMMIT"))
-   {
-      commitParametersToFlash();
-   }
-   else if (!strcmp(commandString, "CHLPR"))
-   {
-      if (readback)
-      {
-         sprintf(strbuf, " [%i, %i]", chpair, registerno);
-         sendSerial(strbuf);
-      }
-      else if (running == 1)
-      {
-         sprintf(strbuf, " Parameters may not be updated while running!");
-         sendSerial(strbuf);
-      }
-      else 
-      {
-         if (!validateInt(SET, 1, MAX_BOARDS, &chpair))
-         {
-            sprintf(strbuf, "Invalid board number (1 - %d)", MAX_BOARDS);
-            sendSerial(strbuf);
-            commandError = 1;
-         }
-         
-         if (!commandError)
-         {
-            getDelimiter();
-
-            if (!validateInt(SET, 1, MAX_REGISTERS, &registerno))
-            {
-               sprintf(strbuf, "Invalid register number (1 - %d)", MAX_REGISTERS);
-               sendSerial(strbuf);
-               commandError = 1;
-            }
-         }
-
-         if (!commandError)
-         {
-            // Adjust user values (1 - MAX) to 0 offset values (0 - (MAX - 1))
-            chpair--;
-            registerno--;
-            
-            // ignore spaces
-            while ((rxbuf[bufloc++] == ' ') && (rxbuf[bufloc] != 0x0D) && (rxbuf[bufloc] != 0) && (rxbuf[bufloc] != ';'));
-            
-            if (rxbuf[bufloc] == 0 || rxbuf[bufloc] == 0x0D)
-            {
-               commandError = 1;
-            }
-            else
-            {
-               while((rxbuf[bufloc++] != ' ') && (rxbuf[bufloc] != 0x0D) && (rxbuf[bufloc] != 0) && (rxbuf[bufloc] == ';') );
-            
-               if (rxbuf[bufloc] == 0 || rxbuf[bufloc] == 0x0D)
-               {
-                  commandError = 1;
-               }
-               else
-               {       
-                  chlprMenu();
-               }
-            }
-         }
-      }
-   }
-   else if (!strcmp(commandString, "CHLSGL"))
-   {
-      if (readback)
-      {
-         sprintf(strbuf, " [%i%c, %i]", chpair, chsgl, registerno);
-         sendSerial(strbuf);
-      }
-      else if (running == 1)
-      {
-         sprintf(strbuf, " Parameters may not be updated while running!");
-         sendSerial(strbuf);
-      }
-      else 
-      {
-         if (!validateInt(SET, 1, MAX_BOARDS, &chpair))
-         {
-            sprintf(strbuf, "Invalid board number (1 - %d)", MAX_BOARDS);
-            sendSerial(strbuf);
-            commandError = 1;
-         }
-
-         if (!commandError)
-         {
-            while(rxbuf[bufloc] == ' ' || rxbuf[bufloc] == '[' || isdigit(rxbuf[bufloc]) && rxbuf[bufloc] != 0x0D ){ bufloc++; }
-            
-            channelSideChar = toupper(rxbuf[bufloc]);
-            
-            if ((channelSideChar != 'A') && (channelSideChar != 'B'))
-            {
-               sprintf(strbuf, "Invalid channel (A/B)");
-               sendSerial(strbuf);
-               commandError = 1;
-            }
-            
-            if (!commandError)
-            {
-               chsgl = channelSideChar;
-               getDelimiter();
-
-               if (!validateInt(SET, 1,  MAX_REGISTERS, &registerno))
-               {
-                  sprintf(strbuf, "Invalid register number (1 - %d)", MAX_REGISTERS);
-                  sendSerial(strbuf);
-                  commandError = 1;
-               }
-            }
-            
-            if (!commandError)
-            {
-               // Adjust user values (1 - MAX) to 0 offset values (0 - (MAX - 1))
-               chpair--;
-               registerno--;
-            
-               // ignore spaces
-               while ((rxbuf[bufloc++] == ' ') && (rxbuf[bufloc] != 0x0D) && (rxbuf[bufloc] != 0) && (rxbuf[bufloc] == ';'));
-         
-               if (rxbuf[bufloc] == 0 || rxbuf[bufloc] == 0x0D)
-               {
-                  commandError = 1;
-               }
-            }
-
-            if (!commandError)
-            {
-               while ((rxbuf[bufloc++] != ' ') && (rxbuf[bufloc] != 0x0D) && (rxbuf[bufloc] != 0) && (rxbuf[bufloc] == ';'));
-            
-               if (rxbuf[bufloc] == 0 || rxbuf[bufloc] == 0x0D)
-               {
-                  commandError = 1;
-               }
-               else       
-               {
-                  chlsglMenu();
-               }
-            }
-         }
-      }
-   }*/
    else 
    { 
       if (strcmp(commandString, ""))
@@ -1903,3 +934,8 @@
    
    return FALSE;
 }
+
+// Verify that the same boards are enabled in both the current register and
+// the specified register
+
+