Monitor für das Tasterprogramm
Dependents: 19_Taster_BSW_oo 19_Taster_a
Fork of monitor by
Diff: monitor.cpp
- Revision:
- 2:e330478fb0b6
- Parent:
- 1:19313470f629
- Child:
- 3:254f7ffb9b32
diff -r 19313470f629 -r e330478fb0b6 monitor.cpp --- a/monitor.cpp Mon Jul 28 14:36:32 2014 +0000 +++ b/monitor.cpp Sun Aug 03 08:11:49 2014 +0000 @@ -8,14 +8,19 @@ extern SDFileSystem sd; // definiert in main extern Serial pc; // definiert in main +extern Serial com; // definiert in main extern Buffer <char> buf; // definiert in main extern ConfigFile cfg; // definiert in main extern char value[BUFSIZ]; // definiert in main +extern float soll_wert; // definiert in main +extern bool t_flag; // definiert in main +extern bool f_flag; // definiert in main +extern int drops; // definiert in main -#define COMMAND_MAX 9 +#define COMMAND_MAX 13 #define COMMAND_LEN 7 -const char command[COMMAND_MAX][COMMAND_LEN] = {"DATE","DEL","DIR","DUMP","FILL","HELP","LIST","SET","TIME"}; +const char command[COMMAND_MAX][COMMAND_LEN] = {"DATE","DEL","DIR","DROPS","DUMP","FILL","GO","HELP","LIST","SET","SOLL","STOP","TIME"}; char buffer[100]; @@ -132,16 +137,19 @@ switch(i) // Programmaufruf { - case 0: date(); break; - case 1: del(); break; - case 2: dir(); break; - case 3: dump(); break; - case 4: fill(); break; - case 5: help(); break; - case 6: list(); break; - case 7: set(); break; - case 8: time(); break; - + case 0: date(); break; + case 1: del(); break; + case 2: dir(); break; + case 3: func_drops(); break; + case 4: dump(); break; + case 5: fill(); break; + case 6: go(); break; + case 7: help(); break; + case 8: list(); break; + case 9: set(); break; + case 10: soll(); break; + case 11: stop(); break; + case 12: time(); break; } } } @@ -241,7 +249,11 @@ void help(void) { pc.printf("\n -- help ------------------------"); + pc.printf("\n go [?,f,F,t,Tl] aktivieren der Heizung oder der Tropfen"); + pc.printf("\n stop [?,f,F,t,Tl] deaktivieren der Heizung oder der Tropfen"); pc.printf("\n set index [val] Sensor auswaehlen"); + pc.printf("\n soll[val] Sollwertvorgabe fuer den Temperaturfuehler"); + pc.printf("\n drops [val] Anzahl der Tropfen pro Zeiteinheit"); pc.printf("\n"); pc.printf("\n -- files ------------------------"); pc.printf("\n dir >> Dateien anzeigen"); @@ -293,6 +305,172 @@ } //----------------------------------------------------------------------------- +// monitor Aufruf soll +// mit diesem Befehl wird der Sollwert für den Temperaturfühler vorgegeben + +void soll(void) +{ + + int n; + char wert[20]; + + n = sscanf(&com_line[ComLinePtr],"%s",wert); + + switch (n) + { + case -1: pc.printf("\nSollwert = %f",soll_wert); + break; + + case 1: + + cfg.setValue("soll", wert); + cfg.write("/sd/input.cfg"); + + soll_wert = atof(wert); + + pc.printf("\nneuer Sollwert = %f",soll_wert); + + break; + + } // end switch + +} + + +//----------------------------------------------------------------------------- +// monitor Aufruf drops +// mit diesem Befehl wird die Anzahl der Tropfen pro Zeiteinheit vorgegeben + +void func_drops(void) +{ + + int n; + char wert[20]; + + n = sscanf(&com_line[ComLinePtr],"%s",wert); + + switch (n) + { + case -1: pc.printf("\nAnzahl Tropfen = %d",drops); + break; + + case 1: + + cfg.setValue("drops", wert); + cfg.write("/sd/input.cfg"); + + drops = atoi(wert); + + pc.printf("\nneue Anzahl der Tropfen = %d",drops); + + break; + + } // end switch + +} +//----------------------------------------------------------------------------- +// monitor Aufruf go +// Wird die Heizung oder der Tropfenspender eingeschaltet. + +void go(void) +{ + + int n; + char ch; + + n = sscanf(&com_line[ComLinePtr],"%c",&ch); + + switch (n) + { + + case '?': + if (t_flag) pc.printf("Temperatur aktiv"); + else pc.printf("Temperatur inaktiv"); + + if (f_flag) pc.printf("Tropfen freigeschaltet"); + else pc.printf("Tropfen gesperrt"); + + break; + case 't': + case 'T': + cfg.setValue("t_flag", "1"); + cfg.write("/sd/input.cfg"); + + t_flag = true; + pc.printf("\nTemperatursteuerung ist aktiv"); + + break; + + case 'f': + case 'F': + cfg.setValue("f_flag", "1"); + cfg.write("/sd/input.cfg"); + + f_flag = true; + com.putc('1'); + pc.printf("\nTropfen freigeben"); + + break; + + default: pc.printf("\nBefehl go kennt nur die Zeichen ?,t,T,f,F"); + break; + + } // end switch + +} + + +//----------------------------------------------------------------------------- +// monitor Aufruf stop +// Wird die Heizung oder der Tropfenspender ausgeschaltet. + +void stop(void) +{ + + int n; + char ch; + + n = sscanf(&com_line[ComLinePtr],"%c",&ch); + + switch (n) + { + + case '?': + if (t_flag) pc.printf("Temperatur aktiviert"); + else pc.printf("Temperatur deaktiviert"); + + if (f_flag) pc.printf("Tropfen freigeschaltet"); + else pc.printf("Tropfen gesperrt"); + + break; + case 't': + case 'T': + cfg.setValue("t_flag", "0"); + cfg.write("/sd/input.cfg"); + + t_flag = true; + pc.printf("\nTemperatursteuerung ist deaktiviert"); + + break; + + case 'f': + case 'F': + cfg.setValue("f_flag", "0"); + cfg.write("/sd/input.cfg"); + + f_flag = true; + com.putc('9'); + pc.printf("\nTropfen gesperrt"); + + break; + + default: pc.printf("\nBefehl stop kennt nur die Zeichen ?,t,T,f,F"); + break; + + } // end switch + +} +//----------------------------------------------------------------------------- // monitor Aufruf void time(void)