Treehouse Mbed Team / Mbed 2 deprecated APS_1U5x

Dependencies:   mbed

src/main.cpp

Committer:
mfwic
Date:
2018-12-07
Revision:
9:816b9a4e4f21
Parent:
8:d3d7dca419b3
Child:
10:6c3233b03658

File content as of revision 9:816b9a4e4f21:

//-------------------------------------------------------------------------------
// 
//  Treehouse Designs Inc.
//  Colorado Springs, Colorado
// 
//  Copyright (c) 2016 by Treehouse Designs Inc. 
//  Copyright (c) 2018 by Agility Power Systems Inc. 
// 
//  This code is the property of Treehouse Designs, Inc. (Treehouse) and
//  Agility Power Systems Inc. (Agility) and may not be redistributed
//  in any form without prior written permission from 
//  both copyright holders, Treehouse and Agility.
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
// 
//   
//-------------------------------------------------------------------------------
// 
//  REVISION HISTORY:
//  
//   $Author: $
//   $Rev: $
//   $Date: $
//   $URL: $
// 
//-------------------------------------------------------------------------------

#include "mbed.h"
#include "globals.h"
#include "parameters.h"
#include "all_io.h"
#include "stdio.h"
#include "stdlib.h"
#include "serial.h"
#include "adc.h"
#include "menu.h"
#include "boards.h"
#include "command.h"

unsigned int boardsActive;
unsigned int boardMults;
unsigned short v48, v24, v12; // Voltage divide ratio is a little low due to substituting 10k resistors in place of the 100k. The 100k caused the opamps to oscillate.
unsigned short i48, i24, i12;
unsigned int binCode[6];
unsigned int en_out_code;
unsigned int thermCode[17];
unsigned int wr_out_code;
unsigned int commandData;
unsigned short my12=0;
unsigned int updateRefreshTicks=0;
volatile bool updateReady = FALSE;
unsigned int loopTime = 0;
bool raw = FALSE;

Timer masterTimer;

int main()
{
   //int stopExecuted = 0;
   myled = 0;
   extchlat = OFF;
   wr_out_code = setBoardEnables(ALLOFF);
   running = FALSE;
   //setBoardEnables((unsigned int *)alloff);
   en_out_code = setBoardWeights(ALLOFF); // RK: Maybe? Use hex value for boardWeights to highlight that it's an encoded value.
    
   initSerial();
   
   //sendCRLF();
   //menuPrompt(MENU_DCM1);
    
   initDRT(); // Display Refresh Timer
   
   initADC();
   //getADCvolts();
   //getADCamps();
   getADCresults();
   
   splash_screen();
   sprintf(strbuf, "\r\nPress Enter to continue");
   sendSerial(strbuf);
   while(waitCommand()){
   }
   
   menuRedraw(WITH_PROMPT);
   
   //masterTimer.start();
   //int count=0;
   while (1)
   {
      processCommand();
      
      //getADCvolts();
      //getADCamps();
      getADCresults();
      
      if(updateReady){
         updateReady = FALSE;
         updateTerminal();  // May want to gate this call when we run a headless system.
         //loopTime = masterTimer.read_ms();// - loopTime;
         myled = !myled;
         //sprintf(strbuf, "\r\nupdateControls ran %d times.\r\n", count);
         //sendSerial(strbuf);
         //count=0;
      }
      
      if(running){
          updateControls(i12);
          //count++;
      }else{
          XupdateControls(my12);
      }
      
      //myled = 1;
      //wait(1.0);
      //myled = 0;
      //wait(1.0);
      
      /*if (hv_cmptr1 == 1 && hv_cmptr2 == 1 && (hv_en == ON))
      {
         led_hv = ON;
      }
      else
      {
         led_hv = OFF;
      }*/
      
      /* Emergency Off Switch code
      if ((stop_switch == 0) && (stopExecuted == 0))
      {
         resetOutput();
         setBoardEnables(ALLOFF);
         hv_en        = OFF;
         stopExecuted = 1;
      }
      
      if (stop_switch == 1)
      {
         stopExecuted = 0;
      }
      */
   }
}