knut kristensen / Mbed 2 deprecated prosjektoppgave_alarm

Dependencies:   mbed

Fork of prosjektoppgave_alarm by PnM_spring17

Revision:
1:fbad5dc82abd
Parent:
0:0aa2d9849f98
Child:
2:2d97a168af1e
--- a/main.cpp	Tue Jan 17 18:29:57 2017 +0000
+++ b/main.cpp	Wed Jan 18 10:26:14 2017 +0000
@@ -1,12 +1,76 @@
 #include "mbed.h"
 
-DigitalOut myled(LED1);
+AnalogIn ain1(p17), ain2(p18), ain3(p19), ain4(p20);
+DigitalIn nullut(p16);
+BusOut ledStatus(p21,p22,p23,p24,p25,p26,p27,p28);
+DigitalOut ledMaster(LED1);
+
+
+int brytere[8]; //en for hver bryter, 1 = alarm
+int status = 0; //1 = alarm
+
+#define passord         "qwerty"
+#define bryterAfrom     0
+#define bryterAto       0
+#define bryterBfrom     0
+#define bryterBto       0
+#define bryterABfrom    0
+#define bryterABto      0
+#define bryter0         0
+
+
+int alarmSjekk(AnalogIn& krets, int kretsn){ 
+    /* Sjekker kretsen etter spenningsendring og returnerer hvilke bryter som er åpen
+        -1  error
+        0   alle lukket
+        1   bryter A
+        2   bryter B
+        3   bryter AB
+    */
+    int bryter = -1;
+    float volt = krets.read();
+    if(volt <=bryter0){
+        status = 1;
+        if(bryterAfrom < volt < bryterAto){
+            bryter = 1;
+            brytere[kretsn*2] = 1;
+        } else if(bryterBfrom < volt < bryterBto){
+            bryter = 2;
+            brytere[kretsn*2+1] = 1;
+        } else if(bryterABfrom < volt){
+            bryter = 3;
+            brytere[kretsn*2] = brytere[kretsn*2+1] = 1;
+        }
+    } else(bryter = 0);
+    
+    return bryter;
+}
+
+void sjekkAlleKretser(){
+    //sjekker alle kretser skvensielt for aktivering
+    alarmSjekk(ain1, 0);
+    alarmSjekk(ain2, 1);
+    alarmSjekk(ain3, 2);
+    alarmSjekk(ain4, 3);
+}
+
+void statusLED(){
+    //oppdatere statusLED til aktiverte alarmer
+    for(int i=0; brytere[i]!=NULL;i++){
+        if(brytere[i] == 1){
+            ledStatus += pow(2,i);
+        }
+    }
+}
+
+void resetSystem(){
+    //reseter alarmsystemet
+    for(int i=0; brytere[i]!=NULL;i++){
+        brytere[i] = 0;
+    }
+    status = 0;
+    
+}
 
 int main() {
-    while(1) {
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-        wait(0.2);
-    }
 }