amklsnrjkglwar
Dependencies: mbed
Fork of HelloWorld by
Revision 4:25c608dffc5f, committed 2014-02-27
- Comitter:
- MartinEia
- Date:
- Thu Feb 27 09:18:02 2014 +0000
- Parent:
- 3:c168dc1cdae8
- Commit message:
- kjjkhhjjkhj;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r c168dc1cdae8 -r 25c608dffc5f main.cpp --- a/main.cpp Thu Feb 13 08:47:21 2014 +0000 +++ b/main.cpp Thu Feb 27 09:18:02 2014 +0000 @@ -1,43 +1,169 @@ #include "mbed.h" +#include "SerialBuff.h" +#include "Timer.h" -DigitalOut drift1,drift2,drift3,drift4(LED1,LED2,LED3,LED4); -DigitalOut rod1,rod2,rod3,rod4,rod5,rod6,rod7,rod8 (p23,p24,p25,p26,p27,p28,p29,p30); -DigitalIn reset (p13); -AnlogIn sone1,sone2,sone3,sone4(p15,p16,p17,p18); +DigitalOut drift1(LED1),drift2(LED2),drift3(LED3),drift4(LED4); +DigitalOut rod1(p23),rod2(p24),rod3(p25),rod4(p26),rod5(p27),rod6(p28),rod7(p29),rod8(p30); +DigitalIn reset1(p13); +AnalogIn sone1(p15),sone2(p16),sone3(p17),sone4(p18); + +Ticker t1; + +LocalFileSystem local("local"); + +Serial pc(USBTX, USBRX); + void alarm1(void); void alarm2(void); void alarm3(void); void alarm4(void); +void blink1(void); +void blink2(void); +void blink3(void); +void blink4(void); +void logg(void); +void testlogg(void); +void reset(void); +void sekunder(void); +void passord(void); +void meny(void); +void status(void); +void linje1(void); -void alarm1(void); +#define grense0 1 // 3.3v +#define grense3 0.5 // sone 1 0.5 +#define grense2 0.662 // sone 2 0.662 +#define grense1 0.398 // sone 1 og 2 0.398 +#define blink 0.1 +#define vindu 0.08 + +volatile unsigned int sek = 0,min = 0,hour = 0,dag = 0,stat_rod1,stat_rod2,stat_rod3,stat_rod4,stat_rod5,stat_rod6,stat_rod7,stat_rod8,stat_reset,passord_1,valg,reset2; + + +int main() +{ + reset1.mode(PullDown); + passord(); + meny(); + t1.attach(&sekunder, 1.0); + if(valg == 1) { + while(1) { + alarm1(); + alarm2(); + alarm3(); + alarm4(); + + reset(); + wait (0.1); + } + } +} +void meny(void) { - if(sone1 == grense0) { - drift1 = 1; - rod1 = 0; - rod2 = 0; - } else if(sone1 == grense1) { - drift1 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + + printf("\r\n\r\nMeny\r\n\r\n"); + printf("Tast:\r\n"); + printf("1 starte systemet\r\n"); + printf("2 reset alarmen\r\n"); + printf("3 avslutte systemet\r\n"); + printf("4 status\r\n"); + scanf("%d",&valg); + + if(valg == 1) { + + } else if(valg == 2) { + reset2 = 1; + } else if(valg == 3) { + passord(); + } else if(valg == 4) { + status(); + } else { + + } +} + + + +void linje1(void) +{ + printf("\r\nVelkommen til BitGuard 3.25.1"); +} + +void status(void) +{ + if(rod1 == 1) { + printf("sløyfe 1\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if (rod2 == 1) { + printf("sløyfe 1\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if(rod3 == 1) { + printf("sløyfe 2\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if(rod4 == 1) { + printf("sløyfe 2\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if(rod5 == 1) { + printf("sløyfe 3\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if(rod6 == 1) { + printf("sløyfe 3\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if(rod7 == 1) { + printf("sløyfe 4\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + + } + if(rod8 == 1) { + printf("sløyfe 4\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + } + if(reset1 == 0) { + printf("alarmen har blitt resatt\r\n"); + } else { + printf("\r\nalt er i orden, ingen alarm er utlost"); + } + meny(); +} +void passord (void) +{ + printf("Hei!\r\nvenligst tast inn passord\r\n"); + scanf("%d", &passord_1); + while (passord_1 != 258456) { + printf("passord du har tastet inn er feil \r\nvenligst prov igjen\r\n "); + scanf("%d", &passord_1); + } + linje1(); +} +void sekunder(void) +{ + sek++; + min = sek / 60; + sek = sek % 60; + hour = min / 60; + min %= 60; + dag = hour / 24; + hour %= 24; + +} +void alarm1(void) +{ + if( (sone1 >= (grense0 - vindu)) && (sone1 <= (grense0 + vindu))) { + blink1(); + testlogg(); + } else if( (sone1 >= (grense1 - vindu)) && (sone1 <= (grense1 + vindu))) { + blink1(); rod1 = 1; rod2 = 1; - } else if(sone1 == grense2) { - drift1 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + + } else if( (sone1 >= (grense2 - vindu)) && (sone1 <= (grense2 + vindu))) { + blink1(); rod1 = 1; - rod2 = 0; + } else { - drift1 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); - rod1 = 0; + blink1(); rod2 = 1; + } @@ -46,33 +172,22 @@ -} -void alarm2(void); + +void alarm2(void) { - if(sone2 == grense0) { - drift2 = 1 - rod3 = 0; - rod4 = 0; - } else if(sone2 == grense1) { - drift2 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + if((sone2 >= (grense0 - vindu)) && (sone2 <= (grense0 + vindu))) { + blink2(); + testlogg(); + } else if((sone2 >= (grense1 - vindu)) && (sone2 <= (grense1 + vindu))) { + blink2(); rod3 = 1; rod4 = 1; - } else if(sone2 == grense2) { - drift1 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + } else if((sone2 >= (grense2 - vindu)) && (sone2 <= (grense2 + vindu))) { + blink2(); rod3 = 1; - rod4 = 0; + } else { - drift1 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); - rod3 = 0; + blink2(); rod4 = 1; } @@ -80,32 +195,20 @@ } -void alarm3(void); +void alarm3(void) { - if(sone3 == grense0) { - drift3 = 1 - rod5 = 0; - rod6 = 0; - } else if(sone3 == grense1) { - drift3 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + if( (sone3 >= (grense0 - vindu)) && (sone3 <= (grense0 + vindu))) { + blink3(); + testlogg(); + } else if( (sone3 >= (grense1 - vindu)) && (sone3 <= (grense1 + vindu))) { + blink3(); rod5 = 1; rod6 = 1; - } else if(sone3 == grense2) { - drift3 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + } else if( (sone3 >= (grense2 - vindu)) && (sone3 <= (grense2 + vindu))) { + blink3(); rod5 = 1; - rod6 = 0; } else { - drift3 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); - rod5 = 0; + blink3(); rod6 = 1; } @@ -114,39 +217,132 @@ } -void alarm4(void); +void alarm4(void) { - if(sone4 == grense0) { - drift4 = 1 - rod7 = 0; - rod8 = 0; - } else if(sone4 == grense1) { - drift4 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + if( (sone4 >= (grense0 - vindu)) && (sone4 <= (grense0 + vindu))) { + blink4(); + testlogg(); + } else if( (sone4 >= (grense1 - vindu)) && (sone4 <= (grense1 + vindu))) { + blink4(); rod7 = 1; rod8 = 1; - } else if(sone2 == grense2) { - drift4 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); + } else if( (sone4 >= (grense2 - vindu)) && (sone4 <= (grense2 + vindu))) { + blink4(); rod7 = 1; - rod8 = 0; } else { - drift4 = 1; - wait(0.2); - drift1 = 0; - wait(0.2); - rod7 = 0; + blink4(); rod8 = 1; } + + +} +void blink1(void) +{ + if ( rod1 == 1||rod2 == 1) { + drift1 = 1; + wait(blink); + drift1 = 0; + } else { + drift1 = 1; + } +} + +void blink2(void) +{ + if ( rod3 == 1||rod4 == 1) { + drift2 = 1; + wait(blink); + drift2 = 0; + } else { + drift2 = 1; + } +} + +void blink3(void) +{ + if ( rod5 == 1||rod6 == 1) { + drift3 = 1; + wait(blink); + drift3 = 0; + } else { + drift3 = 1; + } +} + +void blink4(void) +{ + if ( rod7 == 1||rod8 == 1) { + drift4 = 1; + wait(blink); + drift4 = 0; + } else { + drift4 = 1; + } +} +void reset(void) +{ + if (reset1 == 0 || reset2 == 1 ) { + rod1=rod2=rod3=rod4=rod5=rod6=rod7=rod8=drift1=drift2=drift3=drift4 = 0 ; + } + reset2 = 0; + // scanf("%d",&valg); } +void testlogg(void) +{ + if(rod1||rod2||rod3||rod4||rod5||rod6||rod7||rod8 == 1) { + logg(); + + } +} +void logg(void) +{ + FILE *fp = fopen("/local/logg.txt", "a"); + if (fp == NULL) { + pc.printf("Filfeil - avslutter\r\n"); + exit(1); + } + if(rod1 == 1 && stat_rod1 == 0 ) { + fprintf(fp,"sløyfe 1\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod1 = 1; + } + if (rod2 == 1 && stat_rod2 == 0 ) { + fprintf(fp,"sløyfe 1\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod2 = 1; + } + if(rod3 == 1 && stat_rod3 == 0 ) { + fprintf(fp,"sløyfe 2\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod3 = 1; + } + if(rod4 == 1 && stat_rod4 == 0 ) { + fprintf(fp,"sløyfe 2\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod4 = 1; + } + if(rod5 == 1 && stat_rod5 == 0 ) { + fprintf(fp,"sløyfe 3\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod5 = 1; + } + if(rod6 == 1 && stat_rod6 == 0 ) { + fprintf(fp,"sløyfe 3\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod6 = 1; + } + if(rod7 == 1 && stat_rod7 == 0 ) { + fprintf(fp,"sløyfe 4\r\ndetektor 1 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod7 = 1; + } + if(rod8 == 1 && stat_rod8 == 0 ) { + fprintf(fp,"sløyfe 4\r\ndetektor 2 har slått ut etter %dsek %dmin %dtimer %ddager\r\n",sek,min,hour,dag); + stat_rod8 = 1; + } + if(reset1 == 0 && stat_reset == 0) { + fprintf(fp,"alarmen har blitt resatt\r\n"); + stat_reset = 1; + } + fclose(fp); +} \ No newline at end of file