Component Test's Software to work with "Universal Controller Box" - Software is an interpreter or "compiler" for programs to be done with a .txt file and read off of the SD Card

Dependencies:   BridgeDriver FrontPanelButtons MCP23017 SDFileSystem TextLCD mbed

Committer:
mehatfie
Date:
Tue Sep 23 18:24:19 2014 +0000
Revision:
5:e36e0538a903
Parent:
4:86d0d04cc055
Child:
9:5a0c4c6e39c7
- Conditional Command working successfully; --- Also working with loop command; - Each major command (interpret, loop, condition), must have a unique ending return value

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mehatfie 4:86d0d04cc055 1 #include "PinIN.hpp"
mehatfie 4:86d0d04cc055 2 //#include "mbed.h"
mehatfie 4:86d0d04cc055 3 //#include "LocalPinNames.h"
mehatfie 4:86d0d04cc055 4 //#include "BridgeDriver.h"
mehatfie 4:86d0d04cc055 5
mehatfie 4:86d0d04cc055 6 //Constructor
mehatfie 5:e36e0538a903 7 PinIN::PinIN(LineData lineData){
mehatfie 4:86d0d04cc055 8
mehatfie 5:e36e0538a903 9 string _pinName = lineData.word[3]; // Local Pin
mehatfie 5:e36e0538a903 10 string _pinMode = lineData.word[4]; // Pin Mode to Select
mehatfie 4:86d0d04cc055 11
mehatfie 4:86d0d04cc055 12 if(_pinName.compare("DIO0") == 0)
mehatfie 4:86d0d04cc055 13 this->pinName = DIO0;
mehatfie 4:86d0d04cc055 14 else if(_pinName.compare("DIO1") == 0)
mehatfie 4:86d0d04cc055 15 this->pinName = DIO1;
mehatfie 4:86d0d04cc055 16 else if(_pinName.compare("DIO2") == 0)
mehatfie 4:86d0d04cc055 17 this->pinName = DIO2;
mehatfie 4:86d0d04cc055 18 else if(_pinName.compare("DIO3") == 0)
mehatfie 4:86d0d04cc055 19 this->pinName = DIO3;
mehatfie 4:86d0d04cc055 20 else if(_pinName.compare("DIO4") == 0)
mehatfie 4:86d0d04cc055 21 this->pinName = DIO4;
mehatfie 4:86d0d04cc055 22 else if(_pinName.compare("DIO5") == 0)
mehatfie 4:86d0d04cc055 23 this->pinName = DIO5;
mehatfie 4:86d0d04cc055 24 else if(_pinName.compare("DIO6") == 0)
mehatfie 4:86d0d04cc055 25 this->pinName = DIO6;
mehatfie 4:86d0d04cc055 26 else if(_pinName.compare("DIO7") == 0)
mehatfie 4:86d0d04cc055 27 this->pinName = DIO7;
mehatfie 4:86d0d04cc055 28 else if(_pinName.compare("DIO8") == 0)
mehatfie 4:86d0d04cc055 29 this->pinName = DIO8;
mehatfie 4:86d0d04cc055 30 else if(_pinName.compare("DIO9") == 0)
mehatfie 4:86d0d04cc055 31 this->pinName = DIO9;
mehatfie 4:86d0d04cc055 32 else if(_pinName.compare("DIO10") == 0)
mehatfie 4:86d0d04cc055 33 this->pinName = DIO10;
mehatfie 4:86d0d04cc055 34 else if(_pinName.compare("DIO11") == 0)
mehatfie 4:86d0d04cc055 35 this->pinName = DIO11;
mehatfie 4:86d0d04cc055 36
mehatfie 4:86d0d04cc055 37 else if(_pinName.compare("AI0") == 0)
mehatfie 4:86d0d04cc055 38 this->pinName = AI0;
mehatfie 4:86d0d04cc055 39 else if(_pinName.compare("AI1") == 0)
mehatfie 4:86d0d04cc055 40 this->pinName = AI1;
mehatfie 4:86d0d04cc055 41 else if(_pinName.compare("AI2") == 0)
mehatfie 4:86d0d04cc055 42 this->pinName = AI2;
mehatfie 4:86d0d04cc055 43 else if(_pinName.compare("AI3") == 0)
mehatfie 4:86d0d04cc055 44 this->pinName = AI3;
mehatfie 4:86d0d04cc055 45 else if(_pinName.compare("AI4") == 0)
mehatfie 4:86d0d04cc055 46 this->pinName = AI4;
mehatfie 4:86d0d04cc055 47 else if(_pinName.compare("AI5") == 0)
mehatfie 4:86d0d04cc055 48 this->pinName = AI5;
mehatfie 5:e36e0538a903 49
mehatfie 5:e36e0538a903 50
mehatfie 5:e36e0538a903 51 if(_pinMode.compare("PU") == 0)
mehatfie 5:e36e0538a903 52 this->pinMode = PullUp;
mehatfie 5:e36e0538a903 53 else if(_pinMode.compare("PD") == 0)
mehatfie 5:e36e0538a903 54 this->pinMode = PullDown;
mehatfie 5:e36e0538a903 55 else if(_pinMode.compare("PN") == 0)
mehatfie 5:e36e0538a903 56 this->pinMode = PullNone;
mehatfie 5:e36e0538a903 57 else if(_pinMode.compare("OD") == 0)
mehatfie 5:e36e0538a903 58 this->pinMode = OpenDrain;
mehatfie 4:86d0d04cc055 59
mehatfie 4:86d0d04cc055 60 }
mehatfie 4:86d0d04cc055 61 /*
mehatfie 4:86d0d04cc055 62 #define DIO0 P2_2
mehatfie 4:86d0d04cc055 63 #define DIO1 P2_3
mehatfie 4:86d0d04cc055 64 #define DIO2 P2_4
mehatfie 4:86d0d04cc055 65 #define DIO3 P2_5
mehatfie 4:86d0d04cc055 66 #define DIO4 P2_6
mehatfie 4:86d0d04cc055 67 #define DIO5 P2_7
mehatfie 4:86d0d04cc055 68 #define DIO6 P2_8
mehatfie 4:86d0d04cc055 69 #define DIO7 P2_9
mehatfie 4:86d0d04cc055 70 #define DIO8 P1_1
mehatfie 4:86d0d04cc055 71 #define DIO9 P1_4
mehatfie 4:86d0d04cc055 72 #define DIO10 P1_8
mehatfie 4:86d0d04cc055 73 #define DIO11 P1_9
mehatfie 4:86d0d04cc055 74 #define SS1 P0_19
mehatfie 4:86d0d04cc055 75 #define SS2 P0_20
mehatfie 4:86d0d04cc055 76 #define SS3 P0_21
mehatfie 4:86d0d04cc055 77 #define SS4 P0_22
mehatfie 4:86d0d04cc055 78 #define SS_ADC P1_0
mehatfie 4:86d0d04cc055 79 #define AI0 P0_23
mehatfie 4:86d0d04cc055 80 #define AI1 P0_24
mehatfie 4:86d0d04cc055 81 #define AI2 P0_25
mehatfie 4:86d0d04cc055 82 #define AI3 P0_26
mehatfie 4:86d0d04cc055 83 #define AI4 P1_30
mehatfie 4:86d0d04cc055 84 #define AI5 P1_31
mehatfie 4:86d0d04cc055 85 #define KILL P2_11
mehatfie 4:86d0d04cc055 86 #define CAN1_RX P0_0
mehatfie 4:86d0d04cc055 87 #define CAN1_TX P0_1
mehatfie 4:86d0d04cc055 88 #define CAN2_RX P0_4
mehatfie 4:86d0d04cc055 89 #define CAN2_TX P0_5
mehatfie 4:86d0d04cc055 90 */
mehatfie 4:86d0d04cc055 91
mehatfie 4:86d0d04cc055 92
mehatfie 4:86d0d04cc055 93 //A line consists of [ __(Local_Name)__ __(function)__ __(parameter1)__ __(parameter2)__ __(parameter3)__ ... and so on]
mehatfie 5:e36e0538a903 94 int PinIN::interpret(LineData &lineData){
mehatfie 4:86d0d04cc055 95 /*
mehatfie 4:86d0d04cc055 96 lcd.setAddress(0,2);
mehatfie 4:86d0d04cc055 97 lcd.printf("CHECK Motor 123456");
mehatfie 4:86d0d04cc055 98 lcd.setAddress(0,3);
mehatfie 4:86d0d04cc055 99 lcd.printf("func: %s ", lineData.word[1]);
mehatfie 4:86d0d04cc055 100 wait(2);*/
mehatfie 4:86d0d04cc055 101
mehatfie 5:e36e0538a903 102 DigitalIn signal(pinName, pinMode);
mehatfie 4:86d0d04cc055 103
mehatfie 4:86d0d04cc055 104 //Order of Line: Local_Name, Function_Name, Param1, Param2, Param3,.......
mehatfie 4:86d0d04cc055 105 string func = lineData.word[1];
mehatfie 4:86d0d04cc055 106
mehatfie 4:86d0d04cc055 107 /******************************************************************************/
mehatfie 4:86d0d04cc055 108 /*** <Func: wait> ***/
mehatfie 4:86d0d04cc055 109 /******************************************************************************/
mehatfie 4:86d0d04cc055 110 if (func.compare("wait") == 0){
mehatfie 4:86d0d04cc055 111
mehatfie 4:86d0d04cc055 112 if (lineData.numWords != 3){
mehatfie 4:86d0d04cc055 113 //Error Check, incorrect number of parameter, error out
mehatfie 4:86d0d04cc055 114 return 0;
mehatfie 4:86d0d04cc055 115 }
mehatfie 4:86d0d04cc055 116
mehatfie 4:86d0d04cc055 117 //Initialize and Convert Parameters
mehatfie 4:86d0d04cc055 118 string pinValue = lineData.word[2];
mehatfie 4:86d0d04cc055 119 int pinValue_Value = 0;
mehatfie 4:86d0d04cc055 120 sscanf(pinValue.c_str(), "%d", &pinValue_Value);
mehatfie 4:86d0d04cc055 121
mehatfie 4:86d0d04cc055 122 while(signal.read() != pinValue_Value);
mehatfie 4:86d0d04cc055 123 }
mehatfie 4:86d0d04cc055 124
mehatfie 5:e36e0538a903 125
mehatfie 5:e36e0538a903 126 /******************************************************************************/
mehatfie 5:e36e0538a903 127 /*** <Func: val> ***/
mehatfie 5:e36e0538a903 128 /******************************************************************************/
mehatfie 5:e36e0538a903 129 // returns 1 if the check value is equal to the current check value of the Pin
mehatfie 5:e36e0538a903 130 if (func.compare("val") == 0){
mehatfie 5:e36e0538a903 131
mehatfie 5:e36e0538a903 132 if (lineData.numWords != 3){
mehatfie 5:e36e0538a903 133 //Error Check, incorrect number of parameter, error out
mehatfie 5:e36e0538a903 134 return 0;
mehatfie 5:e36e0538a903 135 }
mehatfie 5:e36e0538a903 136
mehatfie 5:e36e0538a903 137 //Initialize and Convert Parameters
mehatfie 5:e36e0538a903 138 string checkValue = lineData.word[2];
mehatfie 5:e36e0538a903 139 int checkValue_Value = 0;
mehatfie 5:e36e0538a903 140 sscanf(checkValue.c_str(), "%d", &checkValue_Value);
mehatfie 5:e36e0538a903 141
mehatfie 5:e36e0538a903 142 if(signal.read() == checkValue_Value)
mehatfie 5:e36e0538a903 143 return 1;
mehatfie 5:e36e0538a903 144 else
mehatfie 5:e36e0538a903 145 return 0;
mehatfie 5:e36e0538a903 146 }
mehatfie 5:e36e0538a903 147
mehatfie 4:86d0d04cc055 148 else {
mehatfie 4:86d0d04cc055 149 return 0;
mehatfie 4:86d0d04cc055 150
mehatfie 4:86d0d04cc055 151 }
mehatfie 4:86d0d04cc055 152
mehatfie 5:e36e0538a903 153 return 0;
mehatfie 4:86d0d04cc055 154 }
mehatfie 4:86d0d04cc055 155