Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Alarmsystem-FINAL by
Diff: system.cpp
- Revision:
- 1:d678123d3117
- Parent:
- 0:c9f607286335
- Child:
- 2:285c66b24ae4
--- a/system.cpp Thu Feb 25 11:31:10 2016 +0000
+++ b/system.cpp Thu Feb 25 13:32:07 2016 +0000
@@ -1,8 +1,9 @@
#include "mbed.h"
+#include "system.h"
#include "loggforing.h"
-Serial pc(USBTX, USBRX);
+Serial pc2(USBTX,USBRX);
/* Disse arrayene er sammenhengende, hvor hvert element representerer hverandre. */
AnalogIn krets[4] = {p15, p16, p17, p19}; //(krets 1, krets 2, krets 3, krets 4)
@@ -22,40 +23,40 @@
int toggle = 0; //Inverterteres i led_status for å skape en blinkefunksjon.
int tall; //variabel som brukes i systempaa.
-Timer t; //Startes ved aktivering av systemet for å kunne logge tid på de ulike situasjonenen.
+Timer timer; //Startes ved aktivering av systemet for å kunne logge tid på de ulike situasjonenen.
Ticker kontroll; //kaller opp overvaking()
Ticker led_aktiver; //kaller opp led_status()
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FUNKSJONSPROTOTYPER <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
-/* Komplett funksjon for systempa, inkl, loggforing og varsling av krets.
+ //Komplett funksjon for systempa, inkl, loggforing og varsling av krets.
void systempaa(int aktiv);
-/* Funksjonen blir kalt med 1Hz(1.0s) i en tikker, for overvåkning av kretser.
+// Funksjonen blir kalt med 1Hz(1.0s) i en tikker, for overvåkning av kretser.
void overvaking(void);
-/* Nullstiller hele systemet ved aktivering av servicebryter
+ //Nullstiller hele systemet ved aktivering av servicebryter
void nullstilling(void);
-/* Funksjon for å lese av nåværende status på valgt krets.
+// Funksjon for å lese av nåværende status på valgt krets.
void natid_status(int kr);
-/* Blinke funksjon til baragraph.
+// Blinke funksjon til baragraph.
void led_status(void);
-/*
+
-/* Funksjonen motar en verdi for variable akitv, timer t; blir startet, led_status og overvaking blir kalt opp i 2 ticker i while-løkka.
+/*Funksjonen motar en verdi for variable akitv, timer t; blir startet, led_status og overvaking blir kalt opp i 2 ticker i while-løkka.
Funksjonen vil bli i while løkka så lenge aktiv er sann, når det blir satt til 0 eller usann vil den bryte ut av while-løkka, stopper timer,
loggføre ved hvilken tid systemet er avsluttet. Deretter vil systemet avslutte. */
void systempaa(int aktiv)
{
- t.start();
+ timer.start();
led_aktiver.attach(&led_status, 0.1);
kontroll.attach(&overvaking, 1.0);
while(aktiv);
- t.stop();
- logg_system_av(t.read());
- t.reset();
+ timer.stop();
+ logg_system_av(timer.read());
+ timer.reset();
}
@@ -74,15 +75,15 @@
if(3.3*v_test > 1.4 && 3.3*v_test < 1.7 && led[2*sloyfe] == 1) {
inbrudd[sloyfe]++;
led[2*sloyfe] = 0;
- logg_inbrudd(2*sloyfe, t.read(), 3.3*v_test);
+ logg_inbrudd(2*sloyfe, timer.read(), 3.3*v_test);
} else if(3.3*v_test > 1.70 && 3.3*v_test < 2.0 && led[2*sloyfe +1] == 1) {
inbrudd[sloyfe]++;
led[2*sloyfe+1] = 0;
- logg_inbrudd(2*sloyfe +1, t.read(), 3.3*v_test);
+ logg_inbrudd(2*sloyfe +1, timer.read(), 3.3*v_test);
} else if(3.3*v_test > 3.0 && (led[2*sloyfe] == 1 || led[2*sloyfe +1] == 1)) {
inbrudd[sloyfe]++;
led[2*sloyfe] = led[2*sloyfe+1] = 0;
- logg_inbrudd(logg_kr[sloyfe], t.read(), 3.3*v_test);
+ logg_inbrudd(logg_kr[sloyfe], timer.read(), 3.3*v_test);
}
}
}
@@ -94,15 +95,15 @@
av servicebryter. Stemmer ikke dette så blir det loggført at systemet har blitt nullstilt av bruker. */
void nullstilling(int servicebryter)
{
- pc.printf("Alle kretser blir nullstilt i lopet av 5 sek.\n\r ");
+ pc2.printf("Alle kretser blir nullstilt i lopet av 5 sek.\n\r ");
wait(5.0);
for(int i = 0; i < 8; i++) {
led[i] = 1;
}
if(servicebryter) {
- logg_servicebryter(t.read());
+ logg_servicebryter(timer.read());
} else {
- logg_brukernullstill(t.read());
+ logg_brukernullstill(timer.read());
}
}
@@ -117,14 +118,14 @@
for(int i = 0; i < 4; i++) {
brudd = brudd + inbrudd[i];
}
- pc.printf("\n\rTotalt antall brudd i system: %d.\n\r", brudd);
+ pc2.printf("\n\rTotalt antall brudd i system: %d.\n\r", brudd);
float spenning = krets[kr-1]; //gjør det mulig å lese av spenning.
- pc.printf("\n\rStatus for krets %d.\n\r", kr);
- pc.printf("Antall brudd: %d.\n\r", inbrudd[kr-1]);
- pc.printf("System aktivt: %.2f sekunder.\n\r", t.read());
- pc.printf("Spenning: %.2fV.\n\r", 3.3*spenning);
- if(led[(kr-1)*2] == 0 || led[kr*2-1] == 0) pc.printf("Alarm aktiv.\n\r");
- else pc.printf("Alarm ikke aktiv.\n\r");
+ pc2.printf("\n\rStatus for krets %d.\n\r", kr);
+ pc2.printf("Antall brudd: %d.\n\r", inbrudd[kr-1]);
+ pc2.printf("System aktivt: %.2f sekunder.\n\r", timer.read());
+ pc2.printf("Spenning: %.2fV.\n\r", 3.3*spenning);
+ if(led[(kr-1)*2] == 0 || led[kr*2-1] == 0) pc2.printf("Alarm aktiv.\n\r");
+ else pc2.printf("Alarm ikke aktiv.\n\r");
}
