fort test av mbed cli

Fork of Alarmsystem_rev_innlevering by Programmeringsgruppe 1

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