Monitor für das Tasterprogramm

Dependents:   19_Taster_BSW_oo 19_Taster_a

Fork of monitor by Temp27

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)