![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
runinig version
Dependencies: C12832_lcd NetServices freezer_guard_running mbed
Fork of Freezer_Guard_prog by
main.cpp
- Committer:
- fbitz
- Date:
- 2015-06-16
- Revision:
- 2:896a33daab3d
- Parent:
- 0:fc20669f5ba8
- Child:
- 3:94c8a14df287
File content as of revision 2:896a33daab3d:
/* TODO: * Display entmüllen * Displayausgabefunktion anpassen (übergabe von koordinaten) OK Emailfunktion anpassen (Text und Werte einsetzen) OK wait anweisungen überprüfen und wenn möglich eliminieren # Datentypen reduzieren # Ungarische Notation einführen (-> Coding Richtline) OK bei printfunktionen string direkt übergeben #Doku #Demo VErsion mit Alarm bei >temp erstellen # DEBUG ausgaben entfernen */ /****************************************************** *File Name: Freezer_Guard main.cpp *Purpose: Freezer Guard System protects your freezer from unintentionaly defrost * *Author: denis schnier and fabian bitz @ University of applied sciences bingen *Changes: * * 18.05.2015 initial version * ... *******************************************************/ /****************************************************** *1 Initialisierungsfunktion aufrufen *2 *3 readValue() aufrufen *3 Rueckgabewert pruefen *3a Zustandsautomat auf Alarm oder zurück setzen *4 ggf. sendMail() aufrufen *4a sendMail initialisiert Ethertnet IF *4b sendMail versendet email (alle ausgabe über serielle Konsole) *5 audioAlarm() aufrufen und Alarmsound ausgeben *6 springe zu *3 *******************************************************/ #include "guard.h" #include "string.h" #define LIMIT -10 // Temperature Alarm Threshold byte MAIN_bState; byte bError; char cString[25]; char data_array[2]; int main() { int8 i8Value=0; //value has 8 bit + sign MAIN_bState=0; //statemachine: 0=no Alarm, 1=Alarm and no Mail sent, 2=Alarm and Mail sent, 3= Pending Alarm Confirmed bError=0; vGuardInit(); while(1){ i8Value=readValue(MCP9808_ADDR); wait(1); if(i8Value>LIMIT && MAIN_bState==0) MAIN_bState=1; if(i8Value<LIMIT) MAIN_bState=0; switch(MAIN_bState) { case 0: { //normal case vLcdIntPrint(i8Value); break; } case 1:{ vLcdIntPrint(i8Value); vLcdStringPrint("Alarm!"); bError=SendMail(i8Value); vAudioAlarm(); MAIN_bState=2; break; } case 2:{ vLcdIntPrint(i8Value); vLcdStringPrint("Mail Sent!"); vAudioAlarm(); break; } case 3:{ //MAIN_bState=3 could only be set by ISR vLcdIntPrint(i8Value); vLcdStringPrint("Alarm Confirmed"); break; } default:{ // strcpy(cString,"State Machine Error!"); vLcdStringPrint("State Machine Error!"); break; } }//state machine }//while(1) }//main