Josmy Bar / Mbed 2 deprecated FireDetector

Dependencies:   TextLCD mbed

Fork of TextLCD_HelloWorld by Simon Ford

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 #define Maxsamples 50
00004 
00005 Serial pc(SERIAL_TX,SERIAL_RX);
00006 Ticker  Test;
00007 unsigned mydelay;
00008 AnalogIn potpin1(PA_0);
00009 AnalogIn potpin2(PA_1);
00010 AnalogIn batpin(PC_0);
00011 AnalogIn Mains(PC_1);
00012 DigitalIn itz1k(PB_14);
00013 DigitalIn itz2k(PB_13);
00014 DigitalIn Userbutton(PA_15);
00015 //DigitalIn Reset(PB_9);
00016 DigitalIn sbutton(PB_12);
00017 DigitalIn silbutton(PB_11);
00018 DigitalOut myled(LED1);
00019 DigitalOut z1fled(PA_5, 1);
00020 DigitalOut z2fled(PA_4, 1);
00021 DigitalOut z1ftled(PA_7, 1);
00022 DigitalOut z2ftled(PA_6, 1);
00023 DigitalOut z1iled(PC_5, 1);
00024 DigitalOut z2iled(PC_4,1);
00025 DigitalOut silenceled(PB_1, 1);
00026 DigitalOut soundled(PB_0, 1);
00027 DigitalOut z1testled(PB_10, 1);
00028 DigitalOut z2testled(PB_2, 1);
00029 DigitalOut hooter(PC_8);
00030 DigitalOut buzzer(PA_9);
00031 DigitalOut z1r(PB_15);
00032 DigitalOut z2r(PC_6);
00033 DigitalOut Tx(PA_2);
00034 DigitalOut Rx(PA_3);
00035 DigitalOut TREN(PA_10);
00036 DigitalOut z1drv(PC_9);
00037 DigitalOut z2drv(PA_8);
00038 DigitalOut fr(PC_7);
00039 DigitalOut commonfire(PC_12, 1);
00040 uint16_t z1tflag=0;
00041 uint16_t z2tflag=0;
00042 uint16_t z1iflag=0;
00043 uint16_t z2iflag=0;
00044 TextLCD lcd(PA_11,PF_6,PF_7,PA_15,PC_10,PC_11);//RW- PA_12,
00045 float fval1=0.0;
00046 float fval2=0.0;
00047 float fval3=0.0;
00048 float fval4=0.0;
00049 float sense=0.20;
00050 //float Zone2sense=2.2;
00051 float scsense=2.2;
00052 float shortsense = 3.0;
00053 float ocsense=0.11;
00054 float mains = 2.7;  
00055 float batsense=2.0;
00056 unsigned long val1=0;
00057 unsigned long val2=0;
00058 unsigned long val3=0;
00059 unsigned long val4=0;
00060 uint16_t i = 0;
00061 uint16_t j = 0;
00062 uint16_t it1flag = 0;
00063 uint16_t it2flag = 0;
00064 int SilFlag, SouFlag;
00065 int a;
00066 int HBTest;
00067 int OCflag;
00068 int w, x;
00069 void TestISR (void){
00070     if (mydelay) mydelay--;
00071 }
00072 
00073 void HooterON(void){
00074     hooter=1;
00075 }
00076 
00077 void BuzzerON(void){
00078     buzzer=1;
00079 }     
00080 
00081 void HooterOFF(void){
00082     hooter=0;
00083 }
00084 
00085 void BuzzerOFF(void){
00086     buzzer=0;
00087 }
00088 
00089 void HooterTest(unsigned counter){
00090         //if(HBTest == 0)HBTest = 1 ;
00091         //if(HBTest == 1){  
00092             HooterON();
00093             BuzzerON();
00094             mydelay = counter;
00095             while(mydelay);
00096             HooterOFF();
00097             BuzzerOFF();
00098             //mydelay = counter;  
00099             //while(mydelay);
00100             //HBTest = 2; 
00101         //}
00102 }
00103      
00104 
00105 
00106 
00107 void Z1FON(void){
00108     z1fled = 0;
00109 }
00110 
00111 void Z1FOFF(void){
00112     z1fled = 1;
00113 }
00114 
00115 void Z2FON(void){        
00116     z2fled = 0;
00117 }
00118 
00119 void Z2FOFF(void){        
00120     z2fled = 1;
00121 }
00122 
00123 void Z1FTON(void){
00124     z1ftled = 0;
00125 }
00126 
00127 void Z1FTOFF(void){
00128     z1ftled = 1;
00129 }
00130 
00131 
00132 void Z2FTON(void){
00133     z2ftled = 0;
00134 }
00135 
00136 void Z2FTOFF(void){
00137     z2ftled = 1;
00138 }
00139 
00140 void Z1ION(void){
00141     z1iled = 0;
00142 }
00143 
00144 void Z1IOFF(void){
00145     z1iled = 1;
00146 }
00147 
00148 
00149 void Z2ION(void){
00150     z2iled = 0;
00151 }
00152 
00153 void Z2IOFF(void){
00154     z2iled = 1;
00155 }
00156 
00157 
00158 void SILENCEON(void){
00159     silenceled = 0;
00160 }
00161 
00162 void SILENCEOFF(void){
00163     silenceled = 1;
00164 }
00165 
00166 
00167 void SOUNDON(void){
00168     soundled = 0;
00169 }
00170 
00171 void SOUNDOFF(void){
00172     soundled = 1;
00173 }
00174 
00175 
00176 
00177 void Z1TESTON(void){
00178     z1testled = 0;
00179 }
00180 
00181 void Z1TESTOFF(void){
00182     z1testled = 1;
00183 }
00184 
00185 
00186 void Z2TESTON(void){
00187     z2testled = 0;
00188 }
00189 
00190 void Z2TESTOFF(void){
00191     z2testled = 1;
00192 }
00193 
00194 
00195 
00196 void CFIREON(void){
00197     commonfire= 0;
00198 }
00199 
00200 void CFIREOFF(void){
00201     commonfire= 1;
00202 }
00203 
00204 void Z1RON(void){ 
00205     z1r = 1;
00206 }
00207 
00208 void Z1ROFF(void){ 
00209     z1r = 0;
00210 }
00211 
00212 void Z2RON(void){ 
00213     z2r = 1;
00214 }
00215 
00216 void Z2ROFF(void){ 
00217     z2r = 0;
00218 }
00219 
00220 void FRON(void){
00221     fr = 1;
00222 }
00223 
00224 void FROFF(void){
00225     fr = 0;
00226 }
00227 
00228 void avg(void){
00229     
00230 
00231     
00232             fval1 = fval2 = fval3= fval4= 0;
00233     
00234     for (int k=1; k<=Maxsamples; k++ ){
00235          fval1 += potpin1.read();
00236          fval2 += potpin2.read();
00237          fval3 += batpin.read();
00238          fval4 += Mains.read();
00239     }
00240     fval1/=Maxsamples;
00241     fval2/=Maxsamples;
00242     fval3/=Maxsamples;
00243     fval4/=Maxsamples;
00244         
00245     fval1 = fval1 *3.3;
00246     fval2 = fval2 *3.3;    
00247     fval3 = fval3 *3.3;
00248     fval4 = fval4 *3.3;
00249         
00250 }       
00251 
00252 void Autofirez1_test(void){
00253     avg();
00254     //if ((fval1>=sense) && (fval1<3.0)){
00255         if ((fval1>=0.11) && (fval1 < 3.0)){
00256         //lcd.locate(0,0);
00257         //lcd.printf("Fire Zn1 ");
00258         Z1FON();
00259         Z1RON();
00260         CFIREON();          
00261         if((SilFlag == 0)){
00262                     HooterTest(6);
00263                 }
00264                                 
00265         z1drv =0;
00266         wait(1);
00267         z1drv =1;
00268                 
00269         //HooterTest(6);
00270 
00271     }
00272     else{  
00273         //lcd.locate(0,0);
00274         //lcd.printf("        ");
00275         //HooterOFF();
00276         //BuzzerOFF();
00277         //Z1FOFF();
00278         //CFIREOFF();
00279         Z1ROFF();
00280     }         
00281 }
00282 void IsolateZ1(void){
00283         Z1FOFF();
00284         Z1ROFF();
00285 }   
00286 void Autofirez1(void){
00287     avg();
00288     //if ((fval1>=sense) && (fval1<3.0)){
00289         if ((fval1>=0.11) && (fval1 < 3.0)){
00290         Z1RON();
00291         lcd.locate(0,0);
00292         lcd.printf("Fire Zn1 ");
00293         Z1FON();
00294                 if((SilFlag == 0)){
00295                     //if(z2iflag != 1){
00296                     HooterON();
00297                     BuzzerON();
00298                     //}
00299                 }   
00300         CFIREON();
00301     }
00302     else{  
00303         //lcd.locate(0,0);
00304         //lcd.printf("        ");
00305         //HooterOFF();
00306         //BuzzerOFF();
00307         //CFIREOFF();
00308         //Z1FOFF();
00309         Z1ROFF();
00310     }   
00311 }
00312 
00313 void Autofirez2(){
00314     avg();
00315     //if ((fval2>=sense) && (fval2<3.0)){
00316         if ((fval2>=0.11) && (fval2 < 3.0)){
00317         Z2RON();
00318         lcd.locate(0,1);
00319         lcd.printf("Fire Zn2 ");
00320                 if((fval1>=0.003) && (fval1 < 0.09)  && (z1iflag != 1) && (z1tflag != 1)){
00321                     lcd.locate(0,0);
00322                     lcd.printf("         ");
00323                     
00324                 }
00325         Z2FON();
00326         if((SilFlag == 0)){
00327                     //if(z1iflag != 1){
00328           HooterON();
00329           BuzzerON();
00330           //} 
00331         }   
00332         CFIREON();
00333     }
00334     else{
00335         //lcd.locate(0,1);
00336         //lcd.printf("         ");
00337         //HooterOFF();
00338         //BuzzerOFF();
00339         //CFIREOFF();
00340         //Z2FOFF();
00341         Z2ROFF();
00342     }
00343 }
00344 
00345 void Autofirez2_test(){
00346     avg();
00347     //if ((fval2>=sense) && (fval2<3.0)){
00348         if ((fval2>=0.11) && (fval2 < 3.0)){
00349         //lcd.locate(0,1);
00350         //lcd.printf("Fire Zn2 ");
00351                 if((fval1>=0.003) && (fval1 < 0.09) && (z1iflag != 1) && (z1tflag != 1)){
00352                     lcd.locate(0,0);
00353                     lcd.printf("         ");
00354                     
00355                 }
00356             
00357         Z2FON();
00358         CFIREON();
00359         Z2RON();                
00360         if((SilFlag == 0)){
00361                     HooterTest(6);                  
00362         } 
00363                 
00364         z2drv =0;
00365         wait(1);
00366         z2drv =1;
00367                 
00368             
00369         //HooterTest(6);
00370 
00371         //BuzzerON();
00372     }
00373     else{
00374         //lcd.locate(0,1);
00375         //lcd.printf("         ");
00376         //HooterOFF();
00377         //BuzzerOFF();
00378         //CFIREOFF();
00379         //Z2FOFF();
00380         Z2ROFF();
00381     }
00382 }
00383 
00384 void IsolateZ2(void){
00385     Z2FOFF();
00386     Z2ROFF();
00387 }   
00388 void firepanel(void){
00389     
00390         if ((z1iflag != 1) && (z2iflag != 1) && (z1tflag != 1) && (z2tflag != 1)){
00391         avg();  
00392     if (((fval1>=0.001) && (fval1<0.09)) && ((fval2>=0.001) && (fval2<0.09))){ 
00393         wait_ms(10); 
00394                 avg();
00395         if (((fval1>=0.001) && (fval1<0.09)) && ((fval2>=0.001) && (fval2<0.09))){ 
00396         
00397             lcd.locate(0,0);
00398             lcd.printf("Normal   ");
00399             //lcd.locate(0,1);
00400             //lcd.printf("         ");
00401                     
00402                     
00403         }
00404     }
00405         
00406         //else if((fval1>=0.003) && (fval1<0.15) && (fval2<0.001)){
00407         //  lcd.locate(0,0);
00408      // lcd.printf("         ");
00409         
00410         //} 
00411     }
00412         
00413 }
00414 
00415 void Shortz1 (void) {
00416     avg();
00417     if (fval1>=3.20){
00418         lcd.locate(0,0);
00419         lcd.printf("Short Zn1");
00420         Z1FTON();
00421         //HooterON();
00422         //BuzzerON();
00423         FRON();
00424                 
00425                 if((SouFlag != 1)  && (fval2 >= 0.003) && (fval2 < 0.09)){
00426                         HooterOFF();
00427                         CFIREOFF();
00428                 }   
00429                 if((SilFlag == 0)){
00430                     BuzzerON();
00431                 }   
00432     }
00433     else {
00434         //lcd.locate(9,0);
00435                 //lcd.printf(" ");
00436             
00437         //Z1FTOFF();
00438         //FROFF();
00439     }
00440 }
00441 
00442 void Shortz2(void){
00443      avg();
00444      if(fval2 >= 3.20) {
00445         lcd.locate(0,1);
00446         lcd.printf("Short Zn2");
00447         Z2FTON();
00448                 if((SouFlag != 1)  && (fval1 >= 0.003) && (fval1 < 0.09)){
00449                         HooterOFF();
00450                         CFIREOFF();
00451                 }   
00452              
00453                 if((SilFlag == 0)){
00454                     BuzzerON();
00455                 }
00456         //HooterON();
00457         //BuzzerON();
00458         FRON();
00459                 
00460     }
00461     else{
00462         //Z2FTOFF();
00463         //FROFF();
00464         //lcd.locate(9,1);
00465         //lcd.printf(" ");
00466             
00467     }
00468 }  
00469 
00470 void battery(void){
00471         avg();
00472      if (fval3<1.8){
00473          lcd.locate(10,0);
00474          lcd.printf("BatLow");
00475                     if((SilFlag == 0)){
00476                         BuzzerON();
00477                     }
00478                     FRON();
00479          //BuzzerON();
00480     }
00481     else {
00482         lcd.locate(10,0);
00483         lcd.printf("      "); 
00484         //BuzzerOFF();
00485         
00486     }
00487 }
00488 
00489 
00490 void opencircuitz1(void){
00491      avg();
00492      if (fval1<0.00009){
00493                     OCflag = 1;
00494          lcd.locate(0,0);
00495          lcd.printf("Open Zn1 ");
00496          Z1FTON();
00497          FRON();
00498                 
00499              if((SilFlag == 0)){
00500                 BuzzerON();
00501              }
00502                 if((SouFlag != 1)  && (fval2 >= 0.003) && (fval2 < 0.09)){
00503                         HooterOFF();
00504                         CFIREOFF();
00505                 }   
00506              
00507          //BuzzerON();
00508          //HooterON();
00509     }
00510     else
00511             if((fval1>0.003) && (fval1<0.09)){
00512                 OCflag = 0;
00513          lcd.locate(0,0);
00514          //lcd.printf("         ");
00515             
00516          //BuzzerOFF();
00517          //HooterOFF();
00518          //Z1FTOFF();
00519          //FROFF();
00520     }    
00521 }
00522 
00523 void opencircuitz2(void){
00524      avg();    
00525      if (fval2<0.00009) {
00526          lcd.locate(0,1);
00527          lcd.printf("Open Zn2 ");
00528          Z2FTON();
00529          //BuzzerON();
00530          //HooterON();
00531          FRON();
00532                 
00533              if((SilFlag == 0)){
00534                 BuzzerON();
00535              }
00536                 if((SouFlag != 1) && (fval1 >= 0.003) && (fval1 < 0.09)){
00537                         HooterOFF();
00538                         CFIREOFF();
00539                 }   
00540              
00541     }
00542     else
00543             if((fval2>=0.003) && (fval2<0.09)){
00544                 if(z2tflag !=1){
00545          lcd.locate(0,1);
00546          lcd.printf("         ");
00547                 }       
00548                 
00549          //BuzzerOFF();
00550          //HooterOFF();
00551          //Z2FTOFF();   
00552          //lcd.locate(9,1);
00553          //lcd.printf(" ");
00554             
00555     }
00556         if((fval2<0.00009) && (fval1>0.003) && (fval1<0.09))    {//C
00557             if((z1tflag != 1) && (z1iflag !=1)){
00558          lcd.locate(0,0);
00559          lcd.printf("         ");       
00560             }
00561         }   
00562 }
00563 
00564 void ACFail(void){
00565      avg();  
00566      if (fval4<2.4){
00567          //lcd.locate(0,0);
00568          //lcd.printf("AC FAIL");
00569        //  Z1FT();
00570          //BuzzerON();
00571          lcd.locate(10,1);
00572          lcd.printf("ACFAIL");
00573                     if((SilFlag == 0)){
00574                         BuzzerON();
00575                     }
00576                     FRON();
00577          //Z1FT();
00578          //BuzzerON();
00579     }
00580     else {
00581         lcd.locate(10,1);
00582         lcd.printf("      "); 
00583         //BuzzerOFF();
00584         
00585     }
00586 }
00587     
00588 
00589 
00590 
00591 void isolation(void){
00592     if (z1iflag == 1){
00593         Z1ION();         
00594     }
00595     else{
00596         Z1IOFF();
00597     }
00598     if (z2iflag == 1){
00599         Z2ION();
00600     }
00601     else{
00602         Z2IOFF();
00603     }
00604 }
00605 
00606 void TEST(void){
00607     if(z1tflag == 1){
00608         Z1TESTON();
00609     }        
00610     else{
00611         Z1TESTOFF();
00612     }        
00613     if(z2tflag == 1){
00614         Z2TESTON();
00615     }        
00616     else{
00617         Z2TESTOFF();
00618     }        
00619 
00620 
00621 
00622 }    
00623 
00624 
00625 void itkey1(void){
00626     if(itz1k == 0){       
00627        a++; 
00628              w++;
00629        if ((a >= 1) &&(a < 2)){
00630             z1iflag=1;
00631        }
00632        if(a > 2){
00633             z1iflag=0;
00634        }
00635        if(w>=10 && w<20){
00636             z1tflag=1;
00637        }
00638        if (w>=20){
00639             z1tflag=0;
00640        }
00641        if(a > 21) a = 0;
00642              if(w > 21) w = 0;
00643     }   
00644 }
00645 void itkey2(void){
00646     if(itz2k == 0){
00647         j++; 
00648                 x++;
00649         if ((j >= 1) && (j < 2)){
00650             z2iflag=1;
00651         }
00652         if(j > 2){
00653             z2iflag=0;
00654         }
00655         if(x>=10 && x<20){
00656             z2tflag=1;
00657         }
00658         if (x>=20){
00659             z2tflag=0;
00660         }
00661         if(j >21) j = 0;
00662                 if(x >21) x = 0;
00663     }        
00664 }
00665 /*
00666 void Reset_in(void){
00667      if (Reset ==0){
00668          NVIC_SystemReset();
00669          }
00670 }
00671 */    
00672 
00673 void sound (void){
00674     if (sbutton == 0){
00675          SouFlag = 1;
00676     }         
00677     if(SouFlag == 1){
00678         SilFlag = 0;
00679         SOUNDON();
00680       
00681         avg();
00682         if((fval1>=0.00) || (fval2>=0.00)){
00683           HooterON();
00684           BuzzerON();
00685         }
00686         //else{
00687           //HooterOFF();
00688           //BuzzerOFF();
00689           //SOUNDOFF();   
00690        //}
00691      } 
00692     else SOUNDOFF();
00693         
00694          
00695 }
00696 
00697 void silence (void){
00698     if (silbutton==0){
00699          SilFlag = 1;
00700     }         
00701     if(SilFlag == 1){
00702             SouFlag = 0;
00703             HooterOFF();
00704             BuzzerOFF();
00705             SILENCEON();
00706         }
00707         else{
00708             SILENCEOFF();
00709         }    
00710     
00711 }    
00712 
00713 void HBOFF(void){
00714     avg();
00715     if((SouFlag != 1) && (fval1 >= 0.003) && (fval1 < 0.09) && (fval2 >= 0.003) && (fval2 < 0.09) && (fval3 >= 1.9) && (fval4 >= 2.5)){
00716         HooterOFF();
00717         BuzzerOFF();
00718         CFIREOFF();
00719     }
00720         avg();
00721     if((SouFlag != 1) && ((fval1 >= 3.2) || (fval1 < 0.00009)) && ((fval2 >= 3.2) || (fval2 < 0.00009))){//C
00722                 HooterOFF();
00723         CFIREOFF();     
00724         }
00725 }    
00726 
00727 void FaultOFF(){
00728     avg();
00729     if((fval1 >= 0.003) && (fval1 < 3.00) && (fval2 >= 0.003) && (fval2 < 3.00) && (fval3 >= 1.9) && (fval4 >= 2.5)){
00730             wait_ms(10);
00731       if((fval1 >= 0.003) && (fval1 < 3.00) && (fval2 >= 0.003) && (fval2 < 3.00) && (fval3 >= 1.9) && (fval4 >= 2.5)){
00732                 FROFF();
00733       }
00734     }
00735     if((fval1 >= 0.003) && (fval1 < 3.00)) {
00736             wait_ms(10);
00737       if((fval1 > 0.003) && (fval1 < 3.00)) {
00738                 Z1FTOFF();
00739         //lcd.locate(9,0);
00740         //lcd.printf(" ");
00741                 
00742       }
00743     }
00744     if((fval2 >= 0.003) && (fval2 < 3.00)) {
00745             wait_ms(10);
00746       if((fval2 >= 0.003) && (fval2 < 3.00)) {
00747                 Z2FTOFF();
00748         //lcd.locate(9,1);
00749         //lcd.printf(" ");
00750                 
00751       }
00752     }        
00753 }    
00754 
00755 
00756 void FireOFF(void){
00757     avg();
00758     if(fval1 < 0.17)Z1FOFF();
00759     if(fval2 < 0.17)Z2FOFF();
00760 }    
00761 
00762 void HBIOFF(void){
00763 
00764     if((z1iflag == 0) && (z2iflag == 1)){
00765                 avg();
00766         if((fval1 >= 0.003) && (fval1 < 0.09)){
00767                     
00768                     if(SouFlag != 1){
00769             //HooterOFF();
00770             //BuzzerOFF();
00771             //CFIREOFF();
00772                     }
00773         }
00774     }
00775     if((z1iflag == 1) && (z2iflag == 0)){
00776                 avg();
00777         if((fval2 >= 0.003) && (fval2 < 1.5)){
00778                     
00779                     if(SouFlag != 1){
00780             //HooterOFF();
00781             //BuzzerOFF();
00782             //CFIREOFF();
00783                     }
00784         }
00785     }
00786 
00787     if((z1iflag == 1) && (z2iflag == 1)){
00788             
00789             if(SouFlag != 1){
00790         HooterOFF();
00791         BuzzerOFF();
00792         CFIREOFF();
00793             }   
00794     }
00795     
00796         
00797 /*      
00798     if((z1iflag != 0) || (z2iflag != 0)){
00799         //avg();
00800         //if((fval1 > 0.10) || (fval2 > 0.10)){
00801             if(((z1iflag == 1) || (z1iflag == 0))&& ((z2iflag == 1) || (z2iflag == 0))){
00802                 HooterOFF();
00803                 BuzzerOFF();
00804                 CFIREOFF();
00805             }
00806         //}
00807     }   
00808 */  
00809 }   
00810 
00811 int main(){
00812     /*
00813     while(1){
00814         myled = !myled;
00815         wait_ms(100);
00816     }        
00817 
00818 unsigned int i;
00819 
00820     while(1){
00821         Z1FOFF(); 
00822 
00823         lcd.locate(0,0);
00824             lcd.printf("%u",i); 
00825             wait_ms(100);
00826             i++;
00827     Z1FON(); 
00828 
00829     }
00830 */
00831 
00832 
00833 
00834 
00835     Z1FOFF(); 
00836   Z2FOFF(); 
00837   Z1FTOFF(); 
00838   Z2FTOFF(); 
00839   Z1IOFF(); 
00840   Z2IOFF(); 
00841   Z1TESTOFF(); 
00842   Z2TESTOFF(); 
00843   CFIREOFF();
00844   SOUNDOFF(); 
00845   SILENCEOFF();
00846   itz1k.mode(PullUp); 
00847   itz2k.mode(PullUp); 
00848   sbutton.mode(PullUp);  
00849   silbutton.mode(PullUp);
00850   z1iflag = 0;
00851   z2iflag = 0;
00852   z1tflag = 0;
00853   z2tflag = 0;
00854   z1drv = 1;
00855   z2drv = 1;
00856     HBTest = 0;
00857         OCflag = 0;
00858   //pc.printf("FIRE DETECTOR");
00859     
00860   Test.attach(&TestISR,1.0);
00861 /*  
00862     while(1){
00863             avg();
00864             //pc.print("Z1: %4u  Z2:  %4u\n", val1, val2);
00865             lcd.locate(0,0);
00866             lcd.printf("%2.4f %2.4f",fval1, fval3);
00867             lcd.locate(0,1);
00868             lcd.printf("%2.5f %2.4f",fval2, fval4);
00869             wait(1);
00870         
00871     }
00872 */  
00873   // Reset();
00874   while(1){
00875         //myled=!myled;
00876     //pc.printf("z1: %d\n",z1fled.read());
00877     itkey1(); 
00878     itkey2();
00879     firepanel();
00880     //pc.printf("%4.2f %4.2f %4.2f \n",fval1,fval2,fval3);
00881     //wait(0.1);
00882     isolation();
00883     TEST();
00884     HBIOFF();
00885         if(z1tflag != 1){
00886             if (z1iflag==0){
00887                 Autofirez1();
00888         //Manualfirez1();
00889         opencircuitz1();
00890         //Manualz1();
00891         Shortz1();
00892         HBOFF();
00893         FaultOFF();
00894         ACFail();
00895         battery();
00896         sound();
00897         silence();
00898         FireOFF();
00899       }
00900         }
00901         if(z1iflag == 1)
00902         {
00903             lcd.locate(0,0);
00904             lcd.printf("Isolate 1");    
00905             IsolateZ1();
00906             if((fval1 >= 0.003) && (fval1 < 3.00)) {
00907                 wait_ms(10);
00908                 if((fval1 >= 0.003) && (fval1 < 3.00)) {
00909                     Z1FTOFF();
00910                 }
00911                         }            
00912                         ACFail();
00913                         battery();
00914                         sound();
00915                         silence();
00916                 }
00917                 
00918             
00919         if(z2tflag != 1){
00920             if (z2iflag==0){
00921                 Autofirez2();
00922         // Manualfirez2();
00923         opencircuitz2();
00924         //Manualz2();
00925         Shortz2();
00926         ACFail();
00927         HBOFF();
00928         FaultOFF();
00929         battery();
00930         sound();
00931         silence();
00932         FireOFF();
00933       }
00934         }
00935         if(z2iflag == 1)
00936         {
00937             lcd.locate(0,1);
00938             lcd.printf("Isolate 2");
00939                         avg();
00940                         if((z1iflag == 0) && (z1tflag == 0) && ((fval1>=0.003) && (fval1<0.09))){
00941                             lcd.locate(0,0);
00942                             lcd.printf("         ");
00943                         
00944                         }
00945             IsolateZ2();
00946             if((fval2 >= 0.03) && (fval2 < 3.00)) {
00947                 wait_ms(10);
00948                 if((fval2 >= 0.003) && (fval2 < 3.00)) {
00949                     Z2FTOFF();
00950                 }
00951             }        
00952                     ACFail();
00953                     battery();
00954                     sound();
00955                     silence();
00956                         
00957                     
00958         }   
00959     avg();
00960         //if((fval1 >= 0.003) && (fval1 < 0.15)){
00961     if(z1tflag==1){
00962             if((fval1 >= 0.003) && (fval1 < 0.09)){
00963       lcd.locate(0,0);
00964       lcd.printf("Test Zn1 ");    
00965             }
00966       Autofirez1_test();
00967       //Manualz1_test();
00968       opencircuitz1();
00969       battery();
00970       silence();
00971       sound();
00972       Shortz1();
00973       ACFail();
00974       //HBOFF();
00975       FaultOFF();
00976       FireOFF();
00977       itkey1();
00978       itkey2();
00979             HBOFF();
00980             
00981             
00982     //}
00983     }
00984 /*
00985         if(z1iflag!=1){
00986         if(z1tflag!=1)
00987         {
00988             lcd.locate(0,0);
00989             lcd.printf("         ");
00990                     
00991         }
00992             }
00993 */  
00994         //if((fval2 >= 0.003) && (fval2 < 0.15)){
00995     if(z2tflag==1){
00996             if((fval2 >= 0.002) && (fval2 < 0.09)){
00997       lcd.locate(0,1);
00998       lcd.printf("Test Zn2 ");    
00999             }
01000             Autofirez2_test();
01001       //Manualz2_test();
01002       opencircuitz2();
01003       battery();
01004       silence();
01005       sound();
01006       Shortz2();
01007       ACFail();
01008       FaultOFF();                   
01009       FireOFF();
01010       itkey1();
01011       itkey2();
01012             HBOFF();
01013     }
01014     //}
01015             if(z2iflag!=1){
01016         if(z2tflag!=1)
01017         {
01018                     avg();
01019                     if((fval2>=0.003) && (fval2 < 0.09)){
01020                         lcd.locate(0,1);
01021                         lcd.printf("         ");
01022                     }
01023                     
01024         } 
01025             }
01026       if((z2tflag == 1) && (z1tflag != 1) && (z1iflag != 1) && (fval1 < 0.17)){
01027                 if(OCflag == 0){
01028             lcd.locate(0,0);
01029             lcd.printf("         ");
01030                 }
01031             
01032             }
01033     wait_ms(10);
01034   }    
01035 } 
01036