knut kristensen / Mbed 2 deprecated prosjektoppgave_alarm

Dependencies:   mbed

Fork of prosjektoppgave_alarm by PnM_spring17

main.cpp

Committer:
mathimat
Date:
2017-01-25
Revision:
6:5607f07a3863
Parent:
5:b4e1656b6627
Child:
7:1fbdaef9052a
Child:
8:0e77808699d0

File content as of revision 6:5607f07a3863:

#include "mbed.h"

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);
Serial pc(USBTX, USBRX);

Ticker tick;

int brytere[8]; //en for hver bryter, 1 = alarm
int status = 0; //1 = alarm


//todo: få dette i en konfigurasjons tekstfil
#define passord         "qwerty"
#define bryterAhigh     0.285f
#define bryterAlow      0.200f
#define bryterBhigh     0.200f
#define bryterBlow      0.150f
#define bryterABhigh    0.150f
#define bryterABlow     0.050f
#define bryter0         0.97f


void getFromFile(){
    
}

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();
    pc.printf("volt %f", volt);
    if(volt <= bryter0){
        status = 1;
        if(volt < bryterAhigh){
            if(volt < bryterBhigh){
                if(volt < bryterABhigh){
                    bryter = 3;
                } else {
                    bryter = 2;
                }
            } else {
                bryter = 1;
            }
        } else {
            bryter = -2;
        }
    } 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 = ledStatus+i;
        }
    }
}



void resetSystem(){
    //reseter alarmsystemet
    for(int i=0; brytere[i]!=NULL;i++){
        brytere[i] = 0;
    }
    status = 0;
    
}

void log(int status) {
    switch(status){
    }
}

void chron(){
    sjekkAlleKretser();
        statusLED();
}


int main() {
    while(1){
        int al = alarmSjekk(ain4, 4);
        pc.printf(" Alarm Status: %d, Alarm %d gatt \r\n",status, al);
    }
}