Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
IR_Manager.cpp
00001 #include "module_for_all.h" 00002 00003 IR_Manager::IR_Manager() 00004 { 00005 /*DigitalIn isIR_1(PG_8); 00006 DigitalIn isIR_2(PF_11); 00007 DigitalIn isIR_3(PG_5); 00008 DigitalIn isIR_4(PG_6); 00009 DigitalIn isIR_5(PE_0); 00010 DigitalIn isIR_6(PF_15);*/ 00011 00012 /*isIR_1 = DigitalIn(PG_8); 00013 isIR_2 = DigitalIn(PF_11); 00014 isIR_3 = DigitalIn(PG_5); 00015 isIR_4 = DigitalIn(PG_6); 00016 isIR_5 = DigitalIn(PE_0); 00017 isIR_6 = DigitalIn(PF_15); 00018 isIR = { 00019 &isIR_1, 00020 &isIR_2, 00021 &isIR_3, 00022 &isIR_4, 00023 &isIR_5, 00024 &isIR_6}; 00025 00026 //&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0)) 00027 ainIR_11 = AnalogIn(PF_6); 00028 ainIR_12 = AnalogIn(PF_7); 00029 ainIR_13 = AnalogIn(PA_0); 00030 //&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4)) 00031 ainIR_21 = AnalogIn(PB_1); 00032 ainIR_22 = AnalogIn(PF_5); 00033 ainIR_23 = AnalogIn(PF_4); 00034 //&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4)) 00035 ainIR_31 = AnalogIn(PC_2); 00036 ainIR_32 = AnalogIn(PC_3); 00037 ainIR_33 = AnalogIn(PA_4); 00038 //&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9)) 00039 ainIR_41 = AnalogIn(PC_0); 00040 ainIR_42 = AnalogIn(PF_8); 00041 ainIR_43 = AnalogIn(PF_9); 00042 //&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3)) 00043 ainIR_51 = AnalogIn(PA_3); 00044 ainIR_52 = AnalogIn(PF_10); 00045 ainIR_53 = AnalogIn(PF_3); 00046 //&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0 00047 ainIR_61 = AnalogIn(PA_5); 00048 ainIR_62 = AnalogIn(PA_6); 00049 00050 ainIR = { 00051 {&ainIR_11, &ainIR_12, &ainIR_13}, 00052 {&ainIR_21, &ainIR_22, &ainIR_23}, 00053 {&ainIR_31, &ainIR_32, &ainIR_33}, 00054 {&ainIR_41, &ainIR_42, &ainIR_43}, 00055 {&ainIR_51, &ainIR_52, &ainIR_53}, 00056 {&ainIR_61, &ainIR_62, 0} 00057 };*/ 00058 00059 /*isIR[6] = { 00060 &(DigitalIn(PG_8)), 00061 &(DigitalIn(PF_11)), 00062 &(DigitalIn(PG_5)), 00063 &(DigitalIn(PG_6)), 00064 &(DigitalIn(PE_0)), 00065 &(DigitalIn(PF_15))}; 00066 00067 ainIR[6][3] = { 00068 {&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0))}, 00069 {&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4))}, 00070 {&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4))}, 00071 {&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9))}, 00072 {&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3))}, 00073 {&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0}};*/ 00074 } 00075 00076 IR_Manager::IR_Manager(std::string tmpStr) 00077 { 00078 /*isIR_1 = DigitalIn(PG_8); 00079 isIR_2 = DigitalIn(PF_11); 00080 isIR_3 = DigitalIn(PG_6); 00081 isIR_4 = DigitalIn(PG_6); 00082 isIR_5 = DigitalIn(PE_0); 00083 isIR_6 = DigitalIn(PF_15); 00084 isIR = { 00085 &isIR_1, 00086 &isIR_2, 00087 &isIR_3, 00088 &isIR_4, 00089 &isIR_5, 00090 &isIR_6}; 00091 00092 //&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0)) 00093 ainIR_11 = AnalogIn(PF_6); 00094 ainIR_12 = AnalogIn(PF_7); 00095 ainIR_13 = AnalogIn(PA_0); 00096 //&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4)) 00097 ainIR_21 = AnalogIn(PB_1); 00098 ainIR_22 = AnalogIn(PF_5); 00099 ainIR_23 = AnalogIn(PF_4); 00100 //&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4)) 00101 ainIR_31 = AnalogIn(PC_2); 00102 ainIR_32 = AnalogIn(PC_3); 00103 ainIR_33 = AnalogIn(PA_4); 00104 //&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9)) 00105 ainIR_41 = AnalogIn(PC_0); 00106 ainIR_42 = AnalogIn(PF_8); 00107 ainIR_43 = (AnalogIn(PF_9); 00108 //&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3)) 00109 ainIR_51 = AnalogIn(PA_3); 00110 ainIR_52 = AnalogIn(PF_10); 00111 ainIR_53 = (AnalogIn(PF_3); 00112 //&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0 00113 ainIR_61 = AnalogIn(PA_5); 00114 ainIR_62 = AnalogIn(PA_6); 00115 00116 ainIR = { 00117 {&ainIR_11, &ainIR_12, &ainIR_13}, 00118 {&ainIR_21, &ainIR_22, &ainIR_23}, 00119 {&ainIR_31, &ainIR_32, &ainIR_33}, 00120 {&ainIR_41, &ainIR_42, &ainIR_43}, 00121 {&ainIR_51, &ainIR_52, &ainIR_53}, 00122 {&ainIR_61, &ainIR_62, 0} 00123 };*/ 00124 00125 /*isIR[6] = { 00126 &(DigitalIn(PG_8)), 00127 &(DigitalIn(PF_11)), 00128 &(DigitalIn(PG_5)), 00129 &(DigitalIn(PG_6)), 00130 &(DigitalIn(PE_0)), 00131 &(DigitalIn(PF_15))}; 00132 00133 ainIR[6][3] = { 00134 {&(AnalogIn(PF_6)), &(AnalogIn(PF_7)), &(AnalogIn(PA_0))}, 00135 {&(AnalogIn(PB_1)), &(AnalogIn(PF_5)), &(AnalogIn(PF_4))}, 00136 {&(AnalogIn(PC_2)), &(AnalogIn(PC_3)), &(AnalogIn(PA_4))}, 00137 {&(AnalogIn(PC_0)), &(AnalogIn(PF_8)), &(AnalogIn(PF_9))}, 00138 {&(AnalogIn(PA_3)), &(AnalogIn(PF_10)), &(AnalogIn(PF_3))}, 00139 {&(AnalogIn(PA_5)), &(AnalogIn(PA_6)), 0}};*/ 00140 } 00141 00142 void IR_Manager::digitalTest() 00143 { 00144 //int tmp = isIR[0]->read(); 00145 //printf("###### IR_Manager::digitalTest %d\r\n", tmp); 00146 00147 for (int ii = 0; ii < 6; ii++) 00148 printf("###### IR_Manager::digitalTest ## %d ## %d\r\n", ii, DataStorage::isIR[ii]->read()); 00149 } 00150 00151 void IR_Manager::analogTest() 00152 { 00153 //int tmp = isIR[0]->read(); 00154 //printf("###### IR_Manager::digitalTest %d\r\n", tmp); 00155 00156 printf("###### IR_Manager::analogTest ## Start\r\n"); 00157 for (int ii = 0; ii < 6; ii++) 00158 { 00159 for (int jj = 0; jj < 3; jj++) 00160 { 00161 float ainTmp = 0; 00162 if (ii == 5 && jj == 2) 00163 { 00164 ainTmp = 0; 00165 } 00166 else 00167 { 00168 ainTmp = DataStorage::ainIR[ii][jj]->read(); 00169 ainTmp = ainTmp * 1000000 * 100; 00170 ainTmp = floor(ainTmp); 00171 } 00172 00173 std::string ainStr = intToString(ainTmp); 00174 00175 //char *tmpS; 00176 //sprintf(tmpS, "%12.0f%\r\n", ainTmp); 00177 //std::string tmpS2(tmpS); 00178 00179 //printf("###### IR_Manager::analogTest ## %d, %d ## %f ## %s\r\n", ii, jj, ainTmp, ainStr); 00180 //delete tmpS; 00181 } 00182 } 00183 printf("###### IR_Manager::analogTest ## Over\r\n"); 00184 } 00185 00186 std::string IR_Manager::getAnalogStr(int ii, int averageCount) 00187 { 00188 //int tmp = isIR[0]->read(); 00189 //printf("###### IR_Manager::digitalTest %d\r\n", tmp); 00190 std::string resultStr = ""; 00191 00192 if (ii > 5) 00193 return resultStr; 00194 for (int jj = 0; jj < 3; jj++) 00195 { 00196 float ainTmp = 0; 00197 float ainCount = float(averageCount); 00198 00199 if (ii == 5 && jj == 2) 00200 { 00201 ainTmp = 0; 00202 } 00203 else 00204 { 00205 for (int kk = 0; kk < averageCount; kk++) 00206 { 00207 float ainTmp2 = 0; 00208 ainTmp2 = DataStorage::ainIR[ii][jj]->read(); 00209 ainTmp2 = ainTmp2 * 1000000 * 100 / ainCount; 00210 ainTmp2 = floor(ainTmp2); 00211 ainTmp += ainTmp2; 00212 } 00213 } 00214 00215 std::string ainStr = intToString(ainTmp); 00216 resultStr.append(ainStr); 00217 if (jj != 2) 00218 resultStr.append(";"); 00219 } 00220 return resultStr; 00221 }
Generated on Tue Jul 12 2022 20:04:38 by
1.7.2