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
Devices/PinIN.cpp@5:e36e0538a903, 2014-09-23 (annotated)
- 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?
User | Revision | Line number | New 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 |