Bjørn André Nyrud
/
Alarmsystem_rev_innlevering_ferdig
fort test av mbed cli
Fork of Alarmsystem_rev_innlevering by
Diff: main.cpp
- Revision:
- 14:8e7aaf0cf5d7
- Parent:
- 13:0622c228b67d
- Child:
- 15:272fb4e610dc
--- a/main.cpp Tue Feb 20 07:48:13 2018 +0000 +++ b/main.cpp Tue Feb 20 08:35:16 2018 +0000 @@ -3,6 +3,7 @@ #include <RtosTimer.h> #include <math.h> #include "mbed_error.h" +#include<string> /////DEFINISJONER///// #define Inn 4 @@ -27,13 +28,18 @@ int tilstand = 0; int TilstandSjekk(int, int); volatile bool running = true; +string password = ("admin"); +string keyinput; //volatile int Klokke = 0; //nt Tid = 0; /////FUNKSJON DEKLARASJONER///// void Alarmf(); -Thread thread; +Thread monitoring; int Tilstandssjekk(); +int admin_access_granted(); +int sone_monitor(); +int read_keyinput(); //void Alarm(); //Ticker AlarmBlink; // 10Hz blinking for alarmfunksjon på lys og telling @@ -41,54 +47,26 @@ /////MAIN///// int main() { - while(1) { - RtosTimer Alarm(Alarmf); - // AlarmBlink.attach(&Alarm, 1); - /*if(Servicebryter == 1) { - Utganger1 = 0; - Utganger2 = 0; - }*/ - Soner[0] = _Sone1; - //Soner[1] = _Sone2; - //Soner[2] = _Sone3; - //Soner[3] = _Sone4; - for(int i=0; i < Inn; i++) { - //pc.printf("%f\n", Soner[i]); - if((Soner[i] > 0.75 )&&( Soner[i] < 0.83)) { //Tilstand1, Dør 1 åpen - //pc.printf("Vi er i Tilstand1\n"); - tilstand = 1; - TilstandSjekk(i, tilstand); - } - if((Soner[i] > 0.55 )&&( Soner[i] < 0.59)) { //Normaldrift - //pc.printf("Vi er i Normaldrift\n") - tilstand = 0; - TilstandSjekk(i, tilstand); - } - if((Soner[i] > 0.65 )&&( Soner[i] < 0.69)) { //Tilstand 2, Dør 2 åpen - //pc.printf("Vi er i tilstand2\n"); - tilstand = 2; - TilstandSjekk(i, tilstand); - } - if(Soner[i] >= 1) { //Begge dører er åpne - //pc.printf("Vi er i tilstand 3, begge doorer er aapne"); - tilstand = 3; - TilstandSjekk(i, tilstand); - } - //wait(1.5); - } - //pc.printf("%f\n", Sone1[]); - //Tilstandssjekk(Sone1[]); - //float volt = Sone1[]; - //pc.printf("%f\n", volt); - //while(sysclock == 1); - //while(sysclock == 0); - //Tid++; - } -} + pc.printf("Write admin access password:\n"); + pc.scanf("%s",keyinput); + if(keyinput == password){ + monitoring(sone_monitor); + admin_access_granted(); + while(1) { + RtosTimer Alarm(Alarmf); + read_keyinput(); + + }//while-end + }//if-end +}//main-end + + + /////FUNKSJONER///// -void Alarmf(void) { - Driftslys = !Driftslys; +void Alarmf(void) +{ + Driftslys = !Driftslys; } int TilstandSjekk(int i, int tilstand) @@ -109,7 +87,7 @@ if(tilstand == 1) { //Hvis dør 1 er åpen... //pc.printf("Vi er i funksjonen tilstandssjekk dor 1, med verdi: %d\n", i); //Alarm(); - Alarm.start(50); + Alarm.start(50); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; @@ -121,7 +99,7 @@ if(tilstand == 2) { //Hvis dør 2 er åpen... //pc.printf("Vi er i funksjonen tilstandssjekk dor 2, med verdi: %d\n", i); //Alarm(); - Alarm.start(50); + Alarm.start(50); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; @@ -133,7 +111,7 @@ if(tilstand == 3) { //Hvis begge dører er åpne //pc.printf("Vi er i funksjonen tilstandssjekk alle dorer, med verdi: %d \n", i);; // Alarm(); - Alarm.start(50); + Alarm.start(50); double n = 2; // We want 2^i double Y = 1; for(int k=1; k<=i; k++) Y = Y*n; @@ -145,9 +123,60 @@ } return 0; } - +sone_monitor() +{ + Soner[0] = _Sone1; + //Soner[1] = _Sone2; + //Soner[2] = _Sone3; + //Soner[3] = _Sone4; + for(int i=0; i < Inn; i++) { + //pc.printf("%f\n", Soner[i]); + if((Soner[i] > 0.75 )&&( Soner[i] < 0.83)) { //Tilstand1, Dør 1 åpen + //pc.printf("Vi er i Tilstand1\n"); + tilstand = 1; + TilstandSjekk(i, tilstand); + } + if((Soner[i] > 0.55 )&&( Soner[i] < 0.59)) { //Normaldrift + //pc.printf("Vi er i Normaldrift\n") + tilstand = 0; + TilstandSjekk(i, tilstand); + } + if((Soner[i] > 0.65 )&&( Soner[i] < 0.69)) { //Tilstand 2, Dør 2 åpen + //pc.printf("Vi er i tilstand2\n"); + tilstand = 2; + TilstandSjekk(i, tilstand); + } + if(Soner[i] >= 1) { //Begge dører er åpne + //pc.printf("Vi er i tilstand 3, begge doorer er aapne"); + tilstand = 3; + TilstandSjekk(i, tilstand); + } + //wait(1.5); + } + //pc.printf("%f\n", Sone1[]); + //Tilstandssjekk(Sone1[]); + //float volt = Sone1[]; + //pc.printf("%f\n", volt); + //while(sysclock == 1); + //while(sysclock == 0); + //Tid++; +} +admin_access_granted() +{ + pc.printf("Admin access granted\n");//info + pc.printf("Following commands are available\n");// liste over funksjoner tilgjenglig. + pc.printf("#req_sta_sone(1-4)_door(1-2)\n");// funksjon 1 - request spesific status + pc.printf("#req_sta_all\n");// funksjon 1 - request status all + pc.printf("#reset_sone(1-4)_door(1-2)\n");// funksjon 3 - request spesific log + pc.printf("#reset_all\n");// funksjon 4 - request log all +} +read_keyinput() +{ + serial.readabl + pc.scanf("%s", keyinput); + /*void Alarm() { Driftslys = !Driftslys; wait(0.05); -}*/ \ No newline at end of file + }*/ \ No newline at end of file