Fredrik Bjørken / Mbed 2 deprecated Alarmsystem-FINAL1

Dependencies:   mbed

Fork of Alarmsystem-FINAL1 by Brede Hesvik

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers loggforing.cpp Source File

loggforing.cpp

00001 #include "mbed.h"
00002 #include "loggforing.h"
00003 #include "string"
00004 
00005 
00006 /* LocalFileSystem er en local funksjon i mbed, som tilater oss å skrive, lese og åpne en .txt fil.*/
00007 LocalFileSystem local("local");
00008 
00009 Serial data(USBTX, USBRX);
00010 
00011 int brudd = 1;     //En variable som teller opp antall brudd når systemet er aktivt.
00012 
00013 /*Array string printer status etter verdi som blir returnet fra funksjonen i filen "systempaa.cpp"
00014 Elementene 0-7 representerer de samme elementene som i arrayet kr_status[]. Elementene 8-11, representerer begge bryterne i krets 1 til krests 4*/
00015 string kr_verdi[12] = {"krets1 bryter1", "krets1 bryter2", "krets2 bryter1", "krets2 bryter2", "krets3 bryter1", "krets3 bryter2", "krets4 bryter1", "krets4 bryter2", "krets1 begge brytere", "krets2 begge brytere", "krets3 begge brytere", "krets4 begge brytere"};
00016 
00017 
00018 /*
00019 >>>>>>>>>>>>>>>>>>>>>>>>> Funksjonsprototyper <<<<<<<<<<<<<<<<<<<<<<<<<<<<
00020 
00021 Loggfører hvilken krets og til hvilken tid det er et inbrudd.
00022 void logg_inbrudd(int status, float timer);.
00023 
00024 Loggfører til hvilken tid systemet blir nullstilt via servicebryter
00025 void logg_servicebryter(float sek);
00026 
00027 Loggfører at systemet er blitt nullstilt via bruker.
00028 void logg_brukernullstill(float sek);
00029 
00030 Loggfører til hvilken tid systemet blir skrudd av.
00031 void logg_system_av(float timer);
00032 
00033 Loggføring hvis det er tastet inn feil passord eller tid utløpt
00034 void logg_feilpass(void);
00035 
00036 */
00037 
00038 /* Funksjonen leter etter en fil som heter logg.txt på mbed modulen for å skrive videre på den. Er den ikke å finne blir det oprettet en ny fil.
00039 Hvis det ikke skulle bli oprettet en fil, vil funksjonen skrive en error text på skjermen og avbryte logging. Funksjone får tilsendt 3 variabler som 
00040 forteller hva funksjonen skal loggføre. Status forteller hvilket elemet i arrayet kr_verdi som skal hentes ut og skrives inn. Funksjonen loggfører antall brudd
00041 i totalt i systemet, til hvilken tid bruddet var, og hvilken spenning det var over bryteren ved bruddet. */
00042 void logg_inbrudd(int status, float timer, float volt)
00043 {
00044     FILE *fp = fopen("/local/logg.txt", "a");                    
00045     if(fp == NULL) {
00046         data.printf("ERROR! Loggfil ikke funnet eller apnet!");  
00047         fclose(fp);                                              
00048     }
00049     string temp = kr_verdi[status];
00050     fprintf(fp, "Brudd %d i %s ved %.2f sekunder.\n", brudd, temp.c_str(), timer);
00051     fprintf(fp, "Spenning over %s ved brudd var %.6f V\n", temp.c_str(), volt);
00052     brudd++;
00053     fclose(fp);
00054 }
00055 
00056 /* Funksjonen åpner fila logg.txt, eller oppretter den hvis det ikke finnes en. Det blir loggført at systemet 
00057 er nullstilt via servicebryter og til hvilken tid */
00058 void logg_servicebryter(float sek)
00059 {
00060     FILE *fp = fopen("/local/logg.txt", "a");
00061     fprintf(fp, "Alle kretser nullstilt via servicebryter ved %.2f sekunder.\n", sek);
00062     fclose(fp);
00063 }
00064 
00065 /* Loggfører at systemet blir nullstils via brukeren og til hvilken tid. */
00066 void logg_brukernullstill(float sek)
00067 {
00068     FILE *fp = fopen("/local/logg.txt", "a");
00069     fprintf(fp, "Alle kretser nulstilt via bruker ved %.2f sekunder.\n", sek);
00070     fclose(fp);    
00071 }
00072 
00073 /* Funksjonen logfører til hvilken tid systemet ble avsluttet. */
00074 void logg_system_av(float timer) 
00075 {
00076     FILE *fp = fopen("/local/logg.txt", "a");
00077     fprintf(fp, "System avlsuttet. Alarm aktiv i %.2f\n", timer);
00078     fclose(fp);
00079 }
00080 
00081 /* Hvis det er tastet inn feil passord eller at tiden er utløpt, vil dette loggføres */
00082 void logg_feilpass()
00083 {
00084     FILE *fp = fopen("/local/logg.txt", "a");
00085     fprintf(fp, "Alarm aktivert. \nFeil passord eller tid utlopt");
00086     fclose(fp);
00087 }