1.0
IR_Manager.cpp@0:3714c3af7602, 2019-06-05 (annotated)
- Committer:
- asaewing
- Date:
- Wed Jun 05 07:54:15 2019 +0000
- Revision:
- 0:3714c3af7602
1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
asaewing | 0:3714c3af7602 | 1 | #include "module_for_all.h" |
asaewing | 0:3714c3af7602 | 2 | |
asaewing | 0:3714c3af7602 | 3 | IR_Manager::IR_Manager() |
asaewing | 0:3714c3af7602 | 4 | { |
asaewing | 0:3714c3af7602 | 5 | /*DigitalIn isIR_1(PG_8); |
asaewing | 0:3714c3af7602 | 6 | DigitalIn isIR_2(PF_11); |
asaewing | 0:3714c3af7602 | 7 | DigitalIn isIR_3(PG_5); |
asaewing | 0:3714c3af7602 | 8 | DigitalIn isIR_4(PG_6); |
asaewing | 0:3714c3af7602 | 9 | DigitalIn isIR_5(PE_0); |
asaewing | 0:3714c3af7602 | 10 | DigitalIn isIR_6(PF_15);*/ |
asaewing | 0:3714c3af7602 | 11 | |
asaewing | 0:3714c3af7602 | 12 | /*isIR_1 = DigitalIn(PG_8); |
asaewing | 0:3714c3af7602 | 13 | isIR_2 = DigitalIn(PF_11); |
asaewing | 0:3714c3af7602 | 14 | isIR_3 = DigitalIn(PG_5); |
asaewing | 0:3714c3af7602 | 15 | isIR_4 = DigitalIn(PG_6); |
asaewing | 0:3714c3af7602 | 16 | isIR_5 = DigitalIn(PE_0); |
asaewing | 0:3714c3af7602 | 17 | isIR_6 = DigitalIn(PF_15); |
asaewing | 0:3714c3af7602 | 18 | isIR = { |
asaewing | 0:3714c3af7602 | 19 | &isIR_1, |
asaewing | 0:3714c3af7602 | 20 | &isIR_2, |
asaewing | 0:3714c3af7602 | 21 | &isIR_3, |
asaewing | 0:3714c3af7602 | 22 | &isIR_4, |
asaewing | 0:3714c3af7602 | 23 | &isIR_5, |
asaewing | 0:3714c3af7602 | 24 | &isIR_6}; |
asaewing | 0:3714c3af7602 | 25 | |
asaewing | 0:3714c3af7602 | 26 | //&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0)) |
asaewing | 0:3714c3af7602 | 27 | ainIR_11 = AnalogIn(PF_6); |
asaewing | 0:3714c3af7602 | 28 | ainIR_12 = AnalogIn(PF_7); |
asaewing | 0:3714c3af7602 | 29 | ainIR_13 = AnalogIn(PA_0); |
asaewing | 0:3714c3af7602 | 30 | //&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4)) |
asaewing | 0:3714c3af7602 | 31 | ainIR_21 = AnalogIn(PB_1); |
asaewing | 0:3714c3af7602 | 32 | ainIR_22 = AnalogIn(PF_5); |
asaewing | 0:3714c3af7602 | 33 | ainIR_23 = AnalogIn(PF_4); |
asaewing | 0:3714c3af7602 | 34 | //&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4)) |
asaewing | 0:3714c3af7602 | 35 | ainIR_31 = AnalogIn(PC_2); |
asaewing | 0:3714c3af7602 | 36 | ainIR_32 = AnalogIn(PC_3); |
asaewing | 0:3714c3af7602 | 37 | ainIR_33 = AnalogIn(PA_4); |
asaewing | 0:3714c3af7602 | 38 | //&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9)) |
asaewing | 0:3714c3af7602 | 39 | ainIR_41 = AnalogIn(PC_0); |
asaewing | 0:3714c3af7602 | 40 | ainIR_42 = AnalogIn(PF_8); |
asaewing | 0:3714c3af7602 | 41 | ainIR_43 = AnalogIn(PF_9); |
asaewing | 0:3714c3af7602 | 42 | //&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3)) |
asaewing | 0:3714c3af7602 | 43 | ainIR_51 = AnalogIn(PA_3); |
asaewing | 0:3714c3af7602 | 44 | ainIR_52 = AnalogIn(PF_10); |
asaewing | 0:3714c3af7602 | 45 | ainIR_53 = AnalogIn(PF_3); |
asaewing | 0:3714c3af7602 | 46 | //&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0 |
asaewing | 0:3714c3af7602 | 47 | ainIR_61 = AnalogIn(PA_5); |
asaewing | 0:3714c3af7602 | 48 | ainIR_62 = AnalogIn(PA_6); |
asaewing | 0:3714c3af7602 | 49 | |
asaewing | 0:3714c3af7602 | 50 | ainIR = { |
asaewing | 0:3714c3af7602 | 51 | {&ainIR_11, &ainIR_12, &ainIR_13}, |
asaewing | 0:3714c3af7602 | 52 | {&ainIR_21, &ainIR_22, &ainIR_23}, |
asaewing | 0:3714c3af7602 | 53 | {&ainIR_31, &ainIR_32, &ainIR_33}, |
asaewing | 0:3714c3af7602 | 54 | {&ainIR_41, &ainIR_42, &ainIR_43}, |
asaewing | 0:3714c3af7602 | 55 | {&ainIR_51, &ainIR_52, &ainIR_53}, |
asaewing | 0:3714c3af7602 | 56 | {&ainIR_61, &ainIR_62, 0} |
asaewing | 0:3714c3af7602 | 57 | };*/ |
asaewing | 0:3714c3af7602 | 58 | |
asaewing | 0:3714c3af7602 | 59 | /*isIR[6] = { |
asaewing | 0:3714c3af7602 | 60 | &(DigitalIn(PG_8)), |
asaewing | 0:3714c3af7602 | 61 | &(DigitalIn(PF_11)), |
asaewing | 0:3714c3af7602 | 62 | &(DigitalIn(PG_5)), |
asaewing | 0:3714c3af7602 | 63 | &(DigitalIn(PG_6)), |
asaewing | 0:3714c3af7602 | 64 | &(DigitalIn(PE_0)), |
asaewing | 0:3714c3af7602 | 65 | &(DigitalIn(PF_15))}; |
asaewing | 0:3714c3af7602 | 66 | |
asaewing | 0:3714c3af7602 | 67 | ainIR[6][3] = { |
asaewing | 0:3714c3af7602 | 68 | {&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0))}, |
asaewing | 0:3714c3af7602 | 69 | {&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4))}, |
asaewing | 0:3714c3af7602 | 70 | {&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4))}, |
asaewing | 0:3714c3af7602 | 71 | {&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9))}, |
asaewing | 0:3714c3af7602 | 72 | {&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3))}, |
asaewing | 0:3714c3af7602 | 73 | {&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0}};*/ |
asaewing | 0:3714c3af7602 | 74 | } |
asaewing | 0:3714c3af7602 | 75 | |
asaewing | 0:3714c3af7602 | 76 | IR_Manager::IR_Manager(std::string tmpStr) |
asaewing | 0:3714c3af7602 | 77 | { |
asaewing | 0:3714c3af7602 | 78 | /*isIR_1 = DigitalIn(PG_8); |
asaewing | 0:3714c3af7602 | 79 | isIR_2 = DigitalIn(PF_11); |
asaewing | 0:3714c3af7602 | 80 | isIR_3 = DigitalIn(PG_6); |
asaewing | 0:3714c3af7602 | 81 | isIR_4 = DigitalIn(PG_6); |
asaewing | 0:3714c3af7602 | 82 | isIR_5 = DigitalIn(PE_0); |
asaewing | 0:3714c3af7602 | 83 | isIR_6 = DigitalIn(PF_15); |
asaewing | 0:3714c3af7602 | 84 | isIR = { |
asaewing | 0:3714c3af7602 | 85 | &isIR_1, |
asaewing | 0:3714c3af7602 | 86 | &isIR_2, |
asaewing | 0:3714c3af7602 | 87 | &isIR_3, |
asaewing | 0:3714c3af7602 | 88 | &isIR_4, |
asaewing | 0:3714c3af7602 | 89 | &isIR_5, |
asaewing | 0:3714c3af7602 | 90 | &isIR_6}; |
asaewing | 0:3714c3af7602 | 91 | |
asaewing | 0:3714c3af7602 | 92 | //&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0)) |
asaewing | 0:3714c3af7602 | 93 | ainIR_11 = AnalogIn(PF_6); |
asaewing | 0:3714c3af7602 | 94 | ainIR_12 = AnalogIn(PF_7); |
asaewing | 0:3714c3af7602 | 95 | ainIR_13 = AnalogIn(PA_0); |
asaewing | 0:3714c3af7602 | 96 | //&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4)) |
asaewing | 0:3714c3af7602 | 97 | ainIR_21 = AnalogIn(PB_1); |
asaewing | 0:3714c3af7602 | 98 | ainIR_22 = AnalogIn(PF_5); |
asaewing | 0:3714c3af7602 | 99 | ainIR_23 = AnalogIn(PF_4); |
asaewing | 0:3714c3af7602 | 100 | //&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4)) |
asaewing | 0:3714c3af7602 | 101 | ainIR_31 = AnalogIn(PC_2); |
asaewing | 0:3714c3af7602 | 102 | ainIR_32 = AnalogIn(PC_3); |
asaewing | 0:3714c3af7602 | 103 | ainIR_33 = AnalogIn(PA_4); |
asaewing | 0:3714c3af7602 | 104 | //&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9)) |
asaewing | 0:3714c3af7602 | 105 | ainIR_41 = AnalogIn(PC_0); |
asaewing | 0:3714c3af7602 | 106 | ainIR_42 = AnalogIn(PF_8); |
asaewing | 0:3714c3af7602 | 107 | ainIR_43 = (AnalogIn(PF_9); |
asaewing | 0:3714c3af7602 | 108 | //&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3)) |
asaewing | 0:3714c3af7602 | 109 | ainIR_51 = AnalogIn(PA_3); |
asaewing | 0:3714c3af7602 | 110 | ainIR_52 = AnalogIn(PF_10); |
asaewing | 0:3714c3af7602 | 111 | ainIR_53 = (AnalogIn(PF_3); |
asaewing | 0:3714c3af7602 | 112 | //&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0 |
asaewing | 0:3714c3af7602 | 113 | ainIR_61 = AnalogIn(PA_5); |
asaewing | 0:3714c3af7602 | 114 | ainIR_62 = AnalogIn(PA_6); |
asaewing | 0:3714c3af7602 | 115 | |
asaewing | 0:3714c3af7602 | 116 | ainIR = { |
asaewing | 0:3714c3af7602 | 117 | {&ainIR_11, &ainIR_12, &ainIR_13}, |
asaewing | 0:3714c3af7602 | 118 | {&ainIR_21, &ainIR_22, &ainIR_23}, |
asaewing | 0:3714c3af7602 | 119 | {&ainIR_31, &ainIR_32, &ainIR_33}, |
asaewing | 0:3714c3af7602 | 120 | {&ainIR_41, &ainIR_42, &ainIR_43}, |
asaewing | 0:3714c3af7602 | 121 | {&ainIR_51, &ainIR_52, &ainIR_53}, |
asaewing | 0:3714c3af7602 | 122 | {&ainIR_61, &ainIR_62, 0} |
asaewing | 0:3714c3af7602 | 123 | };*/ |
asaewing | 0:3714c3af7602 | 124 | |
asaewing | 0:3714c3af7602 | 125 | /*isIR[6] = { |
asaewing | 0:3714c3af7602 | 126 | &(DigitalIn(PG_8)), |
asaewing | 0:3714c3af7602 | 127 | &(DigitalIn(PF_11)), |
asaewing | 0:3714c3af7602 | 128 | &(DigitalIn(PG_5)), |
asaewing | 0:3714c3af7602 | 129 | &(DigitalIn(PG_6)), |
asaewing | 0:3714c3af7602 | 130 | &(DigitalIn(PE_0)), |
asaewing | 0:3714c3af7602 | 131 | &(DigitalIn(PF_15))}; |
asaewing | 0:3714c3af7602 | 132 | |
asaewing | 0:3714c3af7602 | 133 | ainIR[6][3] = { |
asaewing | 0:3714c3af7602 | 134 | {&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0))}, |
asaewing | 0:3714c3af7602 | 135 | {&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4))}, |
asaewing | 0:3714c3af7602 | 136 | {&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4))}, |
asaewing | 0:3714c3af7602 | 137 | {&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9))}, |
asaewing | 0:3714c3af7602 | 138 | {&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3))}, |
asaewing | 0:3714c3af7602 | 139 | {&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0}};*/ |
asaewing | 0:3714c3af7602 | 140 | } |
asaewing | 0:3714c3af7602 | 141 | |
asaewing | 0:3714c3af7602 | 142 | void IR_Manager::digitalTest() |
asaewing | 0:3714c3af7602 | 143 | { |
asaewing | 0:3714c3af7602 | 144 | //int tmp = isIR[0]->read(); |
asaewing | 0:3714c3af7602 | 145 | //printf("###### IR_Manager::digitalTest %d\r\n", tmp); |
asaewing | 0:3714c3af7602 | 146 | |
asaewing | 0:3714c3af7602 | 147 | for (int ii = 0; ii < 6; ii++) |
asaewing | 0:3714c3af7602 | 148 | printf("###### IR_Manager::digitalTest ## %d ## %d\r\n", ii, DataStorage::isIR[ii]->read()); |
asaewing | 0:3714c3af7602 | 149 | } |
asaewing | 0:3714c3af7602 | 150 | |
asaewing | 0:3714c3af7602 | 151 | void IR_Manager::analogTest() |
asaewing | 0:3714c3af7602 | 152 | { |
asaewing | 0:3714c3af7602 | 153 | //int tmp = isIR[0]->read(); |
asaewing | 0:3714c3af7602 | 154 | //printf("###### IR_Manager::digitalTest %d\r\n", tmp); |
asaewing | 0:3714c3af7602 | 155 | |
asaewing | 0:3714c3af7602 | 156 | printf("###### IR_Manager::analogTest ## Start\r\n"); |
asaewing | 0:3714c3af7602 | 157 | for (int ii = 0; ii < 6; ii++) |
asaewing | 0:3714c3af7602 | 158 | { |
asaewing | 0:3714c3af7602 | 159 | for (int jj = 0; jj < 3; jj++) |
asaewing | 0:3714c3af7602 | 160 | { |
asaewing | 0:3714c3af7602 | 161 | float ainTmp = 0; |
asaewing | 0:3714c3af7602 | 162 | if (ii == 5 && jj == 2) |
asaewing | 0:3714c3af7602 | 163 | { |
asaewing | 0:3714c3af7602 | 164 | ainTmp = 0; |
asaewing | 0:3714c3af7602 | 165 | } |
asaewing | 0:3714c3af7602 | 166 | else |
asaewing | 0:3714c3af7602 | 167 | { |
asaewing | 0:3714c3af7602 | 168 | ainTmp = DataStorage::ainIR[ii][jj]->read(); |
asaewing | 0:3714c3af7602 | 169 | ainTmp = ainTmp * 1000000 * 100; |
asaewing | 0:3714c3af7602 | 170 | ainTmp = floor(ainTmp); |
asaewing | 0:3714c3af7602 | 171 | } |
asaewing | 0:3714c3af7602 | 172 | |
asaewing | 0:3714c3af7602 | 173 | std::string ainStr = intToString(ainTmp); |
asaewing | 0:3714c3af7602 | 174 | |
asaewing | 0:3714c3af7602 | 175 | //char *tmpS; |
asaewing | 0:3714c3af7602 | 176 | //sprintf(tmpS, "%12.0f%\r\n", ainTmp); |
asaewing | 0:3714c3af7602 | 177 | //std::string tmpS2(tmpS); |
asaewing | 0:3714c3af7602 | 178 | |
asaewing | 0:3714c3af7602 | 179 | //printf("###### IR_Manager::analogTest ## %d, %d ## %f ## %s\r\n", ii, jj, ainTmp, ainStr); |
asaewing | 0:3714c3af7602 | 180 | //delete tmpS; |
asaewing | 0:3714c3af7602 | 181 | } |
asaewing | 0:3714c3af7602 | 182 | } |
asaewing | 0:3714c3af7602 | 183 | printf("###### IR_Manager::analogTest ## Over\r\n"); |
asaewing | 0:3714c3af7602 | 184 | } |
asaewing | 0:3714c3af7602 | 185 | |
asaewing | 0:3714c3af7602 | 186 | std::string IR_Manager::getAnalogStr(int ii, int averageCount) |
asaewing | 0:3714c3af7602 | 187 | { |
asaewing | 0:3714c3af7602 | 188 | //int tmp = isIR[0]->read(); |
asaewing | 0:3714c3af7602 | 189 | //printf("###### IR_Manager::digitalTest %d\r\n", tmp); |
asaewing | 0:3714c3af7602 | 190 | std::string resultStr = ""; |
asaewing | 0:3714c3af7602 | 191 | |
asaewing | 0:3714c3af7602 | 192 | if (ii > 5) |
asaewing | 0:3714c3af7602 | 193 | return resultStr; |
asaewing | 0:3714c3af7602 | 194 | for (int jj = 0; jj < 3; jj++) |
asaewing | 0:3714c3af7602 | 195 | { |
asaewing | 0:3714c3af7602 | 196 | float ainTmp = 0; |
asaewing | 0:3714c3af7602 | 197 | float ainCount = float(averageCount); |
asaewing | 0:3714c3af7602 | 198 | |
asaewing | 0:3714c3af7602 | 199 | if (ii == 5 && jj == 2) |
asaewing | 0:3714c3af7602 | 200 | { |
asaewing | 0:3714c3af7602 | 201 | ainTmp = 0; |
asaewing | 0:3714c3af7602 | 202 | } |
asaewing | 0:3714c3af7602 | 203 | else |
asaewing | 0:3714c3af7602 | 204 | { |
asaewing | 0:3714c3af7602 | 205 | for (int kk = 0; kk < averageCount; kk++) |
asaewing | 0:3714c3af7602 | 206 | { |
asaewing | 0:3714c3af7602 | 207 | float ainTmp2 = 0; |
asaewing | 0:3714c3af7602 | 208 | ainTmp2 = DataStorage::ainIR[ii][jj]->read(); |
asaewing | 0:3714c3af7602 | 209 | ainTmp2 = ainTmp2 * 1000000 * 100 / ainCount; |
asaewing | 0:3714c3af7602 | 210 | ainTmp2 = floor(ainTmp2); |
asaewing | 0:3714c3af7602 | 211 | ainTmp += ainTmp2; |
asaewing | 0:3714c3af7602 | 212 | } |
asaewing | 0:3714c3af7602 | 213 | } |
asaewing | 0:3714c3af7602 | 214 | |
asaewing | 0:3714c3af7602 | 215 | std::string ainStr = intToString(ainTmp); |
asaewing | 0:3714c3af7602 | 216 | resultStr.append(ainStr); |
asaewing | 0:3714c3af7602 | 217 | if (jj != 2) |
asaewing | 0:3714c3af7602 | 218 | resultStr.append(";"); |
asaewing | 0:3714c3af7602 | 219 | } |
asaewing | 0:3714c3af7602 | 220 | return resultStr; |
asaewing | 0:3714c3af7602 | 221 | } |