Asa Ewing / IR_Manager
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers IR_Manager.cpp Source File

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 }