Monitor für das Tasterprogramm
Dependents: 19_Taster_BSW_oo 19_Taster_a
Fork of monitor by
monitor.cpp@6:e5f5e56ffc50, 2014-08-18 (annotated)
- Committer:
- rs27
- Date:
- Mon Aug 18 13:44:18 2014 +0000
- Revision:
- 6:e5f5e56ffc50
- Parent:
- 5:9c7606a0be99
- Child:
- 7:f5bfddb84d63
180814
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rs27 | 0:f0fbbfdca478 | 1 | |
rs27 | 0:f0fbbfdca478 | 2 | #include <stdarg.h> |
rs27 | 0:f0fbbfdca478 | 3 | #include <ctype.h> |
rs27 | 0:f0fbbfdca478 | 4 | #include "monitor.h" |
rs27 | 1:19313470f629 | 5 | #include "ConfigFile.h" |
rs27 | 1:19313470f629 | 6 | #include "SDFileSystem.h" |
rs27 | 1:19313470f629 | 7 | #include "FATDirHandle.h" |
rs27 | 6:e5f5e56ffc50 | 8 | #include "ventiel.h" |
rs27 | 0:f0fbbfdca478 | 9 | |
rs27 | 1:19313470f629 | 10 | extern SDFileSystem sd; // definiert in main |
rs27 | 1:19313470f629 | 11 | extern Serial pc; // definiert in main |
rs27 | 2:e330478fb0b6 | 12 | extern Serial com; // definiert in main |
rs27 | 6:e5f5e56ffc50 | 13 | extern ventiel magnet; // definiert in main |
rs27 | 1:19313470f629 | 14 | extern Buffer <char> buf; // definiert in main |
rs27 | 1:19313470f629 | 15 | extern ConfigFile cfg; // definiert in main |
rs27 | 1:19313470f629 | 16 | extern char value[BUFSIZ]; // definiert in main |
rs27 | 2:e330478fb0b6 | 17 | extern float soll_wert; // definiert in main |
rs27 | 2:e330478fb0b6 | 18 | extern bool t_flag; // definiert in main |
rs27 | 2:e330478fb0b6 | 19 | extern bool f_flag; // definiert in main |
rs27 | 2:e330478fb0b6 | 20 | extern int drops; // definiert in main |
rs27 | 4:83dbae473d1f | 21 | extern int tropfperiode; // definiert in main |
rs27 | 1:19313470f629 | 22 | |
rs27 | 4:83dbae473d1f | 23 | #define COMMAND_MAX 14 |
rs27 | 1:19313470f629 | 24 | #define COMMAND_LEN 7 |
rs27 | 0:f0fbbfdca478 | 25 | |
rs27 | 4:83dbae473d1f | 26 | const char command[COMMAND_MAX][COMMAND_LEN] = {"CYCLE","DATE","DEL","DIR","DROPS","DUMP","FILL","GO","HELP","LIST","SET","SOLL","STOPP","TIME"}; |
rs27 | 1:19313470f629 | 27 | |
rs27 | 1:19313470f629 | 28 | char buffer[100]; |
rs27 | 1:19313470f629 | 29 | |
rs27 | 1:19313470f629 | 30 | // globale Variablen |
rs27 | 1:19313470f629 | 31 | |
rs27 | 1:19313470f629 | 32 | char com_line[COM_LINE_LEN]; // Aktuelle Eingabezeile |
rs27 | 1:19313470f629 | 33 | uint8_t ComLinePtr, ComLineTop; // Cursor Position und Zeilenlänge |
rs27 | 1:19313470f629 | 34 | |
rs27 | 1:19313470f629 | 35 | uint8_t cr_flag; |
rs27 | 1:19313470f629 | 36 | |
rs27 | 1:19313470f629 | 37 | // uint16_t status[8]; |
rs27 | 0:f0fbbfdca478 | 38 | |
rs27 | 0:f0fbbfdca478 | 39 | //----------------------------------------------------------------------------- |
rs27 | 1:19313470f629 | 40 | // initialisierung |
rs27 | 0:f0fbbfdca478 | 41 | |
rs27 | 1:19313470f629 | 42 | void mon_init(void) |
rs27 | 0:f0fbbfdca478 | 43 | { |
rs27 | 1:19313470f629 | 44 | |
rs27 | 0:f0fbbfdca478 | 45 | uint8_t i; |
rs27 | 0:f0fbbfdca478 | 46 | |
rs27 | 0:f0fbbfdca478 | 47 | for (i = 0; i < COM_LINE_LEN; com_line[i++] = 0); |
rs27 | 0:f0fbbfdca478 | 48 | ComLinePtr = ComLineTop = 0; |
rs27 | 0:f0fbbfdca478 | 49 | cr_flag = false; |
rs27 | 0:f0fbbfdca478 | 50 | |
rs27 | 0:f0fbbfdca478 | 51 | // 0 Kanal ist daktiv |
rs27 | 0:f0fbbfdca478 | 52 | // 1 Rohdaten ausgeben |
rs27 | 0:f0fbbfdca478 | 53 | // 2 Temperaturwert in Float Darstellung |
rs27 | 0:f0fbbfdca478 | 54 | |
rs27 | 1:19313470f629 | 55 | /* |
rs27 | 0:f0fbbfdca478 | 56 | status[0] = 2; // Temperaturwerte ausgeben |
rs27 | 0:f0fbbfdca478 | 57 | status[1] = 0; |
rs27 | 0:f0fbbfdca478 | 58 | status[2] = 0; |
rs27 | 0:f0fbbfdca478 | 59 | status[3] = 0; |
rs27 | 0:f0fbbfdca478 | 60 | status[4] = 0; |
rs27 | 0:f0fbbfdca478 | 61 | status[5] = 0; |
rs27 | 0:f0fbbfdca478 | 62 | status[6] = 0; |
rs27 | 0:f0fbbfdca478 | 63 | status[7] = 0; |
rs27 | 1:19313470f629 | 64 | */ |
rs27 | 0:f0fbbfdca478 | 65 | } |
rs27 | 0:f0fbbfdca478 | 66 | |
rs27 | 0:f0fbbfdca478 | 67 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 68 | // destructor |
rs27 | 0:f0fbbfdca478 | 69 | |
rs27 | 1:19313470f629 | 70 | void parser (void) |
rs27 | 0:f0fbbfdca478 | 71 | { |
rs27 | 0:f0fbbfdca478 | 72 | uint8_t i, ch, tch, top, bottom, len; |
rs27 | 0:f0fbbfdca478 | 73 | int8_t res; |
rs27 | 0:f0fbbfdca478 | 74 | |
rs27 | 0:f0fbbfdca478 | 75 | // Zuerst wird der erste Buchstabe aus dem Eingabestring mit den ersten |
rs27 | 0:f0fbbfdca478 | 76 | // Buchstaben aus der Befehlstabelle verglichen |
rs27 | 0:f0fbbfdca478 | 77 | |
rs27 | 0:f0fbbfdca478 | 78 | bottom = 0; // untere Suchgrenze |
rs27 | 0:f0fbbfdca478 | 79 | top = COMMAND_MAX; // obere Suchgerenze |
rs27 | 0:f0fbbfdca478 | 80 | ch = com_line[0]; // hole erstes Suchzeichen |
rs27 | 0:f0fbbfdca478 | 81 | |
rs27 | 0:f0fbbfdca478 | 82 | do |
rs27 | 0:f0fbbfdca478 | 83 | { |
rs27 | 0:f0fbbfdca478 | 84 | i = (top + bottom) >> 1; // suche in der Mitte des Feldes beginnen |
rs27 | 0:f0fbbfdca478 | 85 | tch = command [i][0]; // Vergleichszeichen laden |
rs27 | 0:f0fbbfdca478 | 86 | if (tch == ch) break; // Zeichen gefunden |
rs27 | 0:f0fbbfdca478 | 87 | if (tch > ch) top = i; // nach unten suchen |
rs27 | 0:f0fbbfdca478 | 88 | else bottom = i; // nach oben suchen |
rs27 | 0:f0fbbfdca478 | 89 | if (bottom != 0 && top == bottom + 1) break; // kein Buchstabe gef. |
rs27 | 0:f0fbbfdca478 | 90 | |
rs27 | 0:f0fbbfdca478 | 91 | } while (i > 0 && i < COMMAND_MAX - 1); |
rs27 | 0:f0fbbfdca478 | 92 | |
rs27 | 0:f0fbbfdca478 | 93 | if (tch != ch) |
rs27 | 0:f0fbbfdca478 | 94 | { |
rs27 | 0:f0fbbfdca478 | 95 | pc.printf("\nParser Kommando nicht gefunden\n"); |
rs27 | 0:f0fbbfdca478 | 96 | return; // Kommando nicht gefunden wurde |
rs27 | 0:f0fbbfdca478 | 97 | } |
rs27 | 0:f0fbbfdca478 | 98 | |
rs27 | 0:f0fbbfdca478 | 99 | // das erst Wort soll von den Übergabeparametern isoliert werden |
rs27 | 0:f0fbbfdca478 | 100 | |
rs27 | 0:f0fbbfdca478 | 101 | for (i = 0; com_line[i] != ' ' && com_line[i] != 0; i++); |
rs27 | 0:f0fbbfdca478 | 102 | len = i; |
rs27 | 0:f0fbbfdca478 | 103 | |
rs27 | 0:f0fbbfdca478 | 104 | |
rs27 | 0:f0fbbfdca478 | 105 | if (i == 0) return; |
rs27 | 0:f0fbbfdca478 | 106 | |
rs27 | 0:f0fbbfdca478 | 107 | // die Übergabparameter ermitteln und in als Indexzeiger in |
rs27 | 0:f0fbbfdca478 | 108 | // 'ComLinePtr' abspeichern |
rs27 | 0:f0fbbfdca478 | 109 | |
rs27 | 0:f0fbbfdca478 | 110 | for ( ; com_line[i] == ' ' && com_line[i] != 0; i++); |
rs27 | 0:f0fbbfdca478 | 111 | ComLinePtr = i; |
rs27 | 0:f0fbbfdca478 | 112 | |
rs27 | 0:f0fbbfdca478 | 113 | // die binäre Suche nach den restlichen Zeichen wird hier fortgesetzt |
rs27 | 0:f0fbbfdca478 | 114 | |
rs27 | 0:f0fbbfdca478 | 115 | do |
rs27 | 0:f0fbbfdca478 | 116 | { |
rs27 | 0:f0fbbfdca478 | 117 | i = (top + bottom) >> 1; // berechnen des Suchplatzes |
rs27 | 0:f0fbbfdca478 | 118 | //printf_P (PSTR("\n\rVergleich 1 com_line = [%s] und Länge = [%d]"),com_line,len); |
rs27 | 0:f0fbbfdca478 | 119 | //strcpy_P (temp, &command[i][0]); |
rs27 | 0:f0fbbfdca478 | 120 | //printf_P (PSTR("\n\rVergleich 2 command[i] = [%s] und Index = [%d]"),temp,i); |
rs27 | 0:f0fbbfdca478 | 121 | res = strncmp(com_line, &command[i][0], len); |
rs27 | 0:f0fbbfdca478 | 122 | //printf_P (PSTR("\n\rVergleich 3 res = [%d]"),res); |
rs27 | 0:f0fbbfdca478 | 123 | if (res == 0) break; // Zeichen gefunden |
rs27 | 0:f0fbbfdca478 | 124 | if (res > 0) |
rs27 | 0:f0fbbfdca478 | 125 | bottom = i; // nach unten suchen |
rs27 | 0:f0fbbfdca478 | 126 | else |
rs27 | 0:f0fbbfdca478 | 127 | top = i; // nach oben suchen |
rs27 | 0:f0fbbfdca478 | 128 | if (bottom != 0 && top == bottom + 1) break; |
rs27 | 0:f0fbbfdca478 | 129 | |
rs27 | 0:f0fbbfdca478 | 130 | } while (i > 0 && i < COMMAND_MAX - 1); |
rs27 | 0:f0fbbfdca478 | 131 | |
rs27 | 0:f0fbbfdca478 | 132 | |
rs27 | 0:f0fbbfdca478 | 133 | if (res) |
rs27 | 0:f0fbbfdca478 | 134 | { |
rs27 | 0:f0fbbfdca478 | 135 | pc.printf("\nParser Kommando nicht gefunden.\n"); |
rs27 | 0:f0fbbfdca478 | 136 | } |
rs27 | 0:f0fbbfdca478 | 137 | else |
rs27 | 0:f0fbbfdca478 | 138 | { |
rs27 | 0:f0fbbfdca478 | 139 | pc.printf("\nAufruf von Funktion %d",i); |
rs27 | 0:f0fbbfdca478 | 140 | |
rs27 | 0:f0fbbfdca478 | 141 | switch(i) // Programmaufruf |
rs27 | 0:f0fbbfdca478 | 142 | { |
rs27 | 4:83dbae473d1f | 143 | case 0: cycle(); break; |
rs27 | 4:83dbae473d1f | 144 | case 1: date(); break; |
rs27 | 4:83dbae473d1f | 145 | case 2: del(); break; |
rs27 | 4:83dbae473d1f | 146 | case 3: dir(); break; |
rs27 | 4:83dbae473d1f | 147 | case 4: func_drops(); break; |
rs27 | 4:83dbae473d1f | 148 | case 5: dump(); break; |
rs27 | 4:83dbae473d1f | 149 | case 6: fill(); break; |
rs27 | 4:83dbae473d1f | 150 | case 7: go(); break; |
rs27 | 4:83dbae473d1f | 151 | case 8: help(); break; |
rs27 | 4:83dbae473d1f | 152 | case 9: list(); break; |
rs27 | 4:83dbae473d1f | 153 | case 10: set(); break; |
rs27 | 4:83dbae473d1f | 154 | case 11: soll(); break; |
rs27 | 4:83dbae473d1f | 155 | case 12: stop(); break; |
rs27 | 4:83dbae473d1f | 156 | case 13: time(); break; |
rs27 | 0:f0fbbfdca478 | 157 | } |
rs27 | 0:f0fbbfdca478 | 158 | } |
rs27 | 0:f0fbbfdca478 | 159 | } |
rs27 | 0:f0fbbfdca478 | 160 | |
rs27 | 0:f0fbbfdca478 | 161 | |
rs27 | 0:f0fbbfdca478 | 162 | |
rs27 | 0:f0fbbfdca478 | 163 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 164 | // eine Zeile aus dem Eingangsbuffer lesen |
rs27 | 0:f0fbbfdca478 | 165 | |
rs27 | 1:19313470f629 | 166 | void get_line(void) |
rs27 | 0:f0fbbfdca478 | 167 | { |
rs27 | 0:f0fbbfdca478 | 168 | char ch; |
rs27 | 0:f0fbbfdca478 | 169 | uint8_t i; |
rs27 | 0:f0fbbfdca478 | 170 | |
rs27 | 0:f0fbbfdca478 | 171 | get_ch(); |
rs27 | 0:f0fbbfdca478 | 172 | if (cr_flag) // Neue Eingabezeile |
rs27 | 0:f0fbbfdca478 | 173 | { |
rs27 | 0:f0fbbfdca478 | 174 | if (com_line[0] != 0) |
rs27 | 0:f0fbbfdca478 | 175 | { |
rs27 | 0:f0fbbfdca478 | 176 | // uart_puts(com_line); // zum Testen => später wird der parcer aufgerufen |
rs27 | 0:f0fbbfdca478 | 177 | // Zeichenkette in Großbuchstaben umwandeln |
rs27 | 0:f0fbbfdca478 | 178 | |
rs27 | 0:f0fbbfdca478 | 179 | // printf_P (PSTR("\n monitor ")); |
rs27 | 0:f0fbbfdca478 | 180 | for (i = 0; com_line[i] != 0; i++) |
rs27 | 0:f0fbbfdca478 | 181 | { |
rs27 | 0:f0fbbfdca478 | 182 | ch = com_line[i]; |
rs27 | 0:f0fbbfdca478 | 183 | ch = toupper(ch); // Nur Großbuchstaben |
rs27 | 0:f0fbbfdca478 | 184 | com_line[i] = ch; |
rs27 | 0:f0fbbfdca478 | 185 | // pc.printf(("\n[%02x] %c"),ch,ch); |
rs27 | 0:f0fbbfdca478 | 186 | if (ch == ' ') i = COM_LINE_LEN; |
rs27 | 0:f0fbbfdca478 | 187 | } |
rs27 | 0:f0fbbfdca478 | 188 | // pc.printf(("\n")); |
rs27 | 0:f0fbbfdca478 | 189 | parser(); // Parcer wird aufgerufen |
rs27 | 0:f0fbbfdca478 | 190 | } |
rs27 | 0:f0fbbfdca478 | 191 | |
rs27 | 0:f0fbbfdca478 | 192 | for (i=0; i < COM_LINE_LEN; com_line[i++] = 0); |
rs27 | 0:f0fbbfdca478 | 193 | ComLinePtr = ComLineTop = 0; |
rs27 | 0:f0fbbfdca478 | 194 | cr_flag = 0; |
rs27 | 0:f0fbbfdca478 | 195 | } |
rs27 | 0:f0fbbfdca478 | 196 | } |
rs27 | 0:f0fbbfdca478 | 197 | |
rs27 | 0:f0fbbfdca478 | 198 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 199 | // eine Zeichen aus dem Eingangsbuffer lesen |
rs27 | 0:f0fbbfdca478 | 200 | |
rs27 | 1:19313470f629 | 201 | void get_ch (void) |
rs27 | 0:f0fbbfdca478 | 202 | { |
rs27 | 0:f0fbbfdca478 | 203 | char ch; |
rs27 | 0:f0fbbfdca478 | 204 | |
rs27 | 0:f0fbbfdca478 | 205 | if (!buf.available()) return; // kein Zeichen vorhanden |
rs27 | 0:f0fbbfdca478 | 206 | |
rs27 | 0:f0fbbfdca478 | 207 | ch = buf.get(); // hole das Zeichen |
rs27 | 0:f0fbbfdca478 | 208 | // printf("mon_line: %c %02x\n",ch,ch); // nur zum Test |
rs27 | 0:f0fbbfdca478 | 209 | |
rs27 | 0:f0fbbfdca478 | 210 | switch(ch) |
rs27 | 0:f0fbbfdca478 | 211 | { |
rs27 | 0:f0fbbfdca478 | 212 | case '\r': // CARRIAGE RETURN |
rs27 | 0:f0fbbfdca478 | 213 | cr_flag = true; |
rs27 | 0:f0fbbfdca478 | 214 | break; |
rs27 | 0:f0fbbfdca478 | 215 | |
rs27 | 0:f0fbbfdca478 | 216 | case '\n': // LF empfangen |
rs27 | 0:f0fbbfdca478 | 217 | cr_flag = true; |
rs27 | 0:f0fbbfdca478 | 218 | break; |
rs27 | 0:f0fbbfdca478 | 219 | |
rs27 | 0:f0fbbfdca478 | 220 | default: // Normales Zeichen |
rs27 | 0:f0fbbfdca478 | 221 | if (~iscntrl(ch)) |
rs27 | 0:f0fbbfdca478 | 222 | { |
rs27 | 0:f0fbbfdca478 | 223 | com_line[ComLinePtr] = ch; // Zeichen einfuegen |
rs27 | 0:f0fbbfdca478 | 224 | ComLinePtr++; |
rs27 | 0:f0fbbfdca478 | 225 | } |
rs27 | 0:f0fbbfdca478 | 226 | break; |
rs27 | 0:f0fbbfdca478 | 227 | |
rs27 | 0:f0fbbfdca478 | 228 | } // Ende SWITCH |
rs27 | 0:f0fbbfdca478 | 229 | |
rs27 | 0:f0fbbfdca478 | 230 | if (ComLinePtr >= 80) cr_flag = 1; // Zeilenüberlauf ? |
rs27 | 0:f0fbbfdca478 | 231 | |
rs27 | 0:f0fbbfdca478 | 232 | } |
rs27 | 0:f0fbbfdca478 | 233 | |
rs27 | 0:f0fbbfdca478 | 234 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 235 | // monitor Aufruf |
rs27 | 0:f0fbbfdca478 | 236 | |
rs27 | 1:19313470f629 | 237 | void date(void) |
rs27 | 0:f0fbbfdca478 | 238 | { |
rs27 | 0:f0fbbfdca478 | 239 | pc.printf("\nin date"); |
rs27 | 0:f0fbbfdca478 | 240 | } |
rs27 | 0:f0fbbfdca478 | 241 | |
rs27 | 0:f0fbbfdca478 | 242 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 243 | // monitor Aufruf |
rs27 | 0:f0fbbfdca478 | 244 | |
rs27 | 1:19313470f629 | 245 | void dump(void) |
rs27 | 0:f0fbbfdca478 | 246 | { |
rs27 | 0:f0fbbfdca478 | 247 | pc.printf("\nin dump"); |
rs27 | 0:f0fbbfdca478 | 248 | } |
rs27 | 0:f0fbbfdca478 | 249 | |
rs27 | 0:f0fbbfdca478 | 250 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 251 | // monitor Aufruf |
rs27 | 0:f0fbbfdca478 | 252 | |
rs27 | 1:19313470f629 | 253 | void help(void) |
rs27 | 0:f0fbbfdca478 | 254 | { |
rs27 | 0:f0fbbfdca478 | 255 | pc.printf("\n -- help ------------------------"); |
rs27 | 2:e330478fb0b6 | 256 | pc.printf("\n go [?,f,F,t,Tl] aktivieren der Heizung oder der Tropfen"); |
rs27 | 2:e330478fb0b6 | 257 | pc.printf("\n stop [?,f,F,t,Tl] deaktivieren der Heizung oder der Tropfen"); |
rs27 | 0:f0fbbfdca478 | 258 | pc.printf("\n set index [val] Sensor auswaehlen"); |
rs27 | 2:e330478fb0b6 | 259 | pc.printf("\n soll[val] Sollwertvorgabe fuer den Temperaturfuehler"); |
rs27 | 4:83dbae473d1f | 260 | pc.printf("\n cycle [val] Zeiteinheit fuer die Messung der Tropfen"); |
rs27 | 2:e330478fb0b6 | 261 | pc.printf("\n drops [val] Anzahl der Tropfen pro Zeiteinheit"); |
rs27 | 0:f0fbbfdca478 | 262 | pc.printf("\n"); |
rs27 | 1:19313470f629 | 263 | pc.printf("\n -- files ------------------------"); |
rs27 | 1:19313470f629 | 264 | pc.printf("\n dir >> Dateien anzeigen"); |
rs27 | 1:19313470f629 | 265 | pc.printf("\n list name >> den Inhalte einer Datei anzeigen"); |
rs27 | 1:19313470f629 | 266 | pc.printf("\n del name >> eine Datei loeschen"); |
rs27 | 1:19313470f629 | 267 | pc.printf("\n fill name [zeilen] >> eine Datei anlegen und fuellen"); |
rs27 | 1:19313470f629 | 268 | pc.printf("\n"); |
rs27 | 0:f0fbbfdca478 | 269 | } |
rs27 | 0:f0fbbfdca478 | 270 | |
rs27 | 0:f0fbbfdca478 | 271 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 272 | // monitor Aufruf |
rs27 | 0:f0fbbfdca478 | 273 | |
rs27 | 1:19313470f629 | 274 | void set(void) |
rs27 | 0:f0fbbfdca478 | 275 | { |
rs27 | 1:19313470f629 | 276 | |
rs27 | 1:19313470f629 | 277 | int n; |
rs27 | 1:19313470f629 | 278 | char name[20], wert[20]; |
rs27 | 0:f0fbbfdca478 | 279 | |
rs27 | 1:19313470f629 | 280 | n = sscanf(&com_line[ComLinePtr],"%s %s",name,wert); |
rs27 | 0:f0fbbfdca478 | 281 | |
rs27 | 0:f0fbbfdca478 | 282 | switch (n) |
rs27 | 0:f0fbbfdca478 | 283 | { |
rs27 | 1:19313470f629 | 284 | case -1: pc.printf("\n list config file"); |
rs27 | 1:19313470f629 | 285 | |
rs27 | 1:19313470f629 | 286 | cfg.read("/sd/input.cfg"); |
rs27 | 1:19313470f629 | 287 | |
rs27 | 0:f0fbbfdca478 | 288 | pc.printf("\n Index >> Sonsor 0 bis 7"); |
rs27 | 0:f0fbbfdca478 | 289 | pc.printf("\n wert >> 0 = inaktiv, 1 = Rohwerte, 2 = errechneter Wert"); |
rs27 | 0:f0fbbfdca478 | 290 | break; |
rs27 | 0:f0fbbfdca478 | 291 | |
rs27 | 1:19313470f629 | 292 | case 1: pc.printf("\n list config value"); |
rs27 | 1:19313470f629 | 293 | |
rs27 | 1:19313470f629 | 294 | cfg.read("/sd/input.cfg"); |
rs27 | 1:19313470f629 | 295 | |
rs27 | 1:19313470f629 | 296 | if (cfg.getValue(name, &value[0], sizeof(value))) |
rs27 | 1:19313470f629 | 297 | { |
rs27 | 1:19313470f629 | 298 | pc.printf("\n'%s'='%s'", name, value); |
rs27 | 1:19313470f629 | 299 | } |
rs27 | 0:f0fbbfdca478 | 300 | break; |
rs27 | 0:f0fbbfdca478 | 301 | |
rs27 | 1:19313470f629 | 302 | case 2: pc.printf("\n'%s' = '%s'",name,wert); |
rs27 | 1:19313470f629 | 303 | |
rs27 | 1:19313470f629 | 304 | cfg.setValue(name, wert); |
rs27 | 1:19313470f629 | 305 | cfg.write("/sd/input.cfg"); |
rs27 | 1:19313470f629 | 306 | |
rs27 | 0:f0fbbfdca478 | 307 | break; |
rs27 | 0:f0fbbfdca478 | 308 | } // end switch |
Sven3010 | 3:254f7ffb9b32 | 309 | pc.printf("\n"); |
rs27 | 0:f0fbbfdca478 | 310 | } |
rs27 | 0:f0fbbfdca478 | 311 | |
rs27 | 0:f0fbbfdca478 | 312 | //----------------------------------------------------------------------------- |
rs27 | 2:e330478fb0b6 | 313 | // monitor Aufruf soll |
rs27 | 2:e330478fb0b6 | 314 | // mit diesem Befehl wird der Sollwert für den Temperaturfühler vorgegeben |
rs27 | 2:e330478fb0b6 | 315 | |
rs27 | 2:e330478fb0b6 | 316 | void soll(void) |
rs27 | 2:e330478fb0b6 | 317 | { |
rs27 | 2:e330478fb0b6 | 318 | |
rs27 | 2:e330478fb0b6 | 319 | int n; |
rs27 | 2:e330478fb0b6 | 320 | char wert[20]; |
rs27 | 2:e330478fb0b6 | 321 | |
rs27 | 2:e330478fb0b6 | 322 | n = sscanf(&com_line[ComLinePtr],"%s",wert); |
rs27 | 2:e330478fb0b6 | 323 | |
rs27 | 2:e330478fb0b6 | 324 | switch (n) |
rs27 | 2:e330478fb0b6 | 325 | { |
rs27 | 2:e330478fb0b6 | 326 | case -1: pc.printf("\nSollwert = %f",soll_wert); |
rs27 | 2:e330478fb0b6 | 327 | break; |
rs27 | 2:e330478fb0b6 | 328 | |
rs27 | 2:e330478fb0b6 | 329 | case 1: |
rs27 | 2:e330478fb0b6 | 330 | |
rs27 | 2:e330478fb0b6 | 331 | cfg.setValue("soll", wert); |
rs27 | 2:e330478fb0b6 | 332 | cfg.write("/sd/input.cfg"); |
rs27 | 2:e330478fb0b6 | 333 | |
rs27 | 2:e330478fb0b6 | 334 | soll_wert = atof(wert); |
rs27 | 2:e330478fb0b6 | 335 | |
rs27 | 2:e330478fb0b6 | 336 | pc.printf("\nneuer Sollwert = %f",soll_wert); |
rs27 | 2:e330478fb0b6 | 337 | |
rs27 | 2:e330478fb0b6 | 338 | break; |
rs27 | 2:e330478fb0b6 | 339 | |
rs27 | 2:e330478fb0b6 | 340 | } // end switch |
Sven3010 | 3:254f7ffb9b32 | 341 | pc.printf("\n"); |
rs27 | 2:e330478fb0b6 | 342 | } |
rs27 | 2:e330478fb0b6 | 343 | |
rs27 | 4:83dbae473d1f | 344 | //----------------------------------------------------------------------------- |
rs27 | 4:83dbae473d1f | 345 | // monitor Aufruf cycle |
rs27 | 4:83dbae473d1f | 346 | // mit diesem Befehl wird die Zeit in Sekunden vorgegeben, in der die Tropfenzahl |
rs27 | 4:83dbae473d1f | 347 | // ausgewertet wird |
rs27 | 4:83dbae473d1f | 348 | |
rs27 | 4:83dbae473d1f | 349 | void cycle(void) |
rs27 | 4:83dbae473d1f | 350 | { |
rs27 | 4:83dbae473d1f | 351 | int n; |
rs27 | 4:83dbae473d1f | 352 | char wert[20]; |
rs27 | 4:83dbae473d1f | 353 | |
rs27 | 4:83dbae473d1f | 354 | n = sscanf(&com_line[ComLinePtr],"%s",wert); |
rs27 | 4:83dbae473d1f | 355 | |
rs27 | 4:83dbae473d1f | 356 | switch (n) |
rs27 | 4:83dbae473d1f | 357 | { |
rs27 | 4:83dbae473d1f | 358 | case -1: pc.printf("\nZeit der Messung = %d Sekunden",tropfperiode); |
rs27 | 4:83dbae473d1f | 359 | break; |
rs27 | 4:83dbae473d1f | 360 | |
rs27 | 4:83dbae473d1f | 361 | case 1: |
rs27 | 4:83dbae473d1f | 362 | |
rs27 | 4:83dbae473d1f | 363 | cfg.setValue("cycle", wert); |
rs27 | 4:83dbae473d1f | 364 | cfg.write("/sd/input.cfg"); |
rs27 | 4:83dbae473d1f | 365 | |
rs27 | 4:83dbae473d1f | 366 | tropfperiode = atoi(wert); |
rs27 | 4:83dbae473d1f | 367 | |
rs27 | 4:83dbae473d1f | 368 | pc.printf("\nneue Zeit der Messung = %d Sekunden",tropfperiode); |
rs27 | 4:83dbae473d1f | 369 | |
rs27 | 4:83dbae473d1f | 370 | break; |
rs27 | 4:83dbae473d1f | 371 | |
rs27 | 4:83dbae473d1f | 372 | } // end switch |
rs27 | 4:83dbae473d1f | 373 | |
rs27 | 4:83dbae473d1f | 374 | pc.printf("\n"); |
rs27 | 4:83dbae473d1f | 375 | } |
rs27 | 4:83dbae473d1f | 376 | |
rs27 | 2:e330478fb0b6 | 377 | |
rs27 | 2:e330478fb0b6 | 378 | //----------------------------------------------------------------------------- |
rs27 | 2:e330478fb0b6 | 379 | // monitor Aufruf drops |
rs27 | 2:e330478fb0b6 | 380 | // mit diesem Befehl wird die Anzahl der Tropfen pro Zeiteinheit vorgegeben |
rs27 | 2:e330478fb0b6 | 381 | |
rs27 | 2:e330478fb0b6 | 382 | void func_drops(void) |
rs27 | 2:e330478fb0b6 | 383 | { |
rs27 | 2:e330478fb0b6 | 384 | |
rs27 | 2:e330478fb0b6 | 385 | int n; |
rs27 | 2:e330478fb0b6 | 386 | char wert[20]; |
rs27 | 2:e330478fb0b6 | 387 | |
rs27 | 2:e330478fb0b6 | 388 | n = sscanf(&com_line[ComLinePtr],"%s",wert); |
rs27 | 2:e330478fb0b6 | 389 | |
rs27 | 2:e330478fb0b6 | 390 | switch (n) |
rs27 | 2:e330478fb0b6 | 391 | { |
rs27 | 2:e330478fb0b6 | 392 | case -1: pc.printf("\nAnzahl Tropfen = %d",drops); |
rs27 | 2:e330478fb0b6 | 393 | break; |
rs27 | 2:e330478fb0b6 | 394 | |
rs27 | 2:e330478fb0b6 | 395 | case 1: |
rs27 | 2:e330478fb0b6 | 396 | cfg.setValue("drops", wert); |
rs27 | 2:e330478fb0b6 | 397 | cfg.write("/sd/input.cfg"); |
rs27 | 2:e330478fb0b6 | 398 | |
rs27 | 2:e330478fb0b6 | 399 | drops = atoi(wert); |
rs27 | 2:e330478fb0b6 | 400 | |
rs27 | 2:e330478fb0b6 | 401 | pc.printf("\nneue Anzahl der Tropfen = %d",drops); |
rs27 | 2:e330478fb0b6 | 402 | |
rs27 | 2:e330478fb0b6 | 403 | break; |
rs27 | 2:e330478fb0b6 | 404 | |
rs27 | 2:e330478fb0b6 | 405 | } // end switch |
Sven3010 | 3:254f7ffb9b32 | 406 | pc.printf("\n"); |
rs27 | 2:e330478fb0b6 | 407 | } |
rs27 | 2:e330478fb0b6 | 408 | //----------------------------------------------------------------------------- |
rs27 | 2:e330478fb0b6 | 409 | // monitor Aufruf go |
rs27 | 2:e330478fb0b6 | 410 | // Wird die Heizung oder der Tropfenspender eingeschaltet. |
rs27 | 2:e330478fb0b6 | 411 | |
rs27 | 2:e330478fb0b6 | 412 | void go(void) |
rs27 | 2:e330478fb0b6 | 413 | { |
rs27 | 2:e330478fb0b6 | 414 | char ch; |
rs27 | 2:e330478fb0b6 | 415 | |
Sven3010 | 3:254f7ffb9b32 | 416 | sscanf(&com_line[ComLinePtr],"%c",&ch); |
rs27 | 2:e330478fb0b6 | 417 | |
Sven3010 | 3:254f7ffb9b32 | 418 | switch (ch) |
rs27 | 2:e330478fb0b6 | 419 | { |
rs27 | 2:e330478fb0b6 | 420 | |
rs27 | 6:e5f5e56ffc50 | 421 | case '1': magnet.set(0); break; |
rs27 | 6:e5f5e56ffc50 | 422 | case '2': magnet.set(1); break; |
rs27 | 6:e5f5e56ffc50 | 423 | case '3': magnet.set(2); break; |
rs27 | 6:e5f5e56ffc50 | 424 | case '4': magnet.set(3); break; |
rs27 | 6:e5f5e56ffc50 | 425 | case '5': magnet.set(4); break; |
rs27 | 6:e5f5e56ffc50 | 426 | case '6': magnet.set(5); break; |
rs27 | 6:e5f5e56ffc50 | 427 | case '7': magnet.set(6); break; |
rs27 | 6:e5f5e56ffc50 | 428 | case '8': magnet.set(7); break; |
rs27 | 6:e5f5e56ffc50 | 429 | case '9': magnet.set(8); break; |
rs27 | 6:e5f5e56ffc50 | 430 | |
rs27 | 2:e330478fb0b6 | 431 | case '?': |
rs27 | 2:e330478fb0b6 | 432 | if (t_flag) pc.printf("Temperatur aktiv"); |
rs27 | 2:e330478fb0b6 | 433 | else pc.printf("Temperatur inaktiv"); |
rs27 | 2:e330478fb0b6 | 434 | |
rs27 | 2:e330478fb0b6 | 435 | if (f_flag) pc.printf("Tropfen freigeschaltet"); |
rs27 | 2:e330478fb0b6 | 436 | else pc.printf("Tropfen gesperrt"); |
rs27 | 2:e330478fb0b6 | 437 | |
rs27 | 2:e330478fb0b6 | 438 | break; |
rs27 | 2:e330478fb0b6 | 439 | case 't': |
rs27 | 2:e330478fb0b6 | 440 | case 'T': |
rs27 | 2:e330478fb0b6 | 441 | cfg.setValue("t_flag", "1"); |
rs27 | 2:e330478fb0b6 | 442 | cfg.write("/sd/input.cfg"); |
rs27 | 2:e330478fb0b6 | 443 | |
rs27 | 2:e330478fb0b6 | 444 | t_flag = true; |
rs27 | 2:e330478fb0b6 | 445 | pc.printf("\nTemperatursteuerung ist aktiv"); |
rs27 | 2:e330478fb0b6 | 446 | |
rs27 | 2:e330478fb0b6 | 447 | break; |
rs27 | 2:e330478fb0b6 | 448 | |
rs27 | 2:e330478fb0b6 | 449 | case 'f': |
rs27 | 2:e330478fb0b6 | 450 | case 'F': |
rs27 | 2:e330478fb0b6 | 451 | cfg.setValue("f_flag", "1"); |
rs27 | 2:e330478fb0b6 | 452 | cfg.write("/sd/input.cfg"); |
rs27 | 2:e330478fb0b6 | 453 | |
rs27 | 2:e330478fb0b6 | 454 | f_flag = true; |
rs27 | 6:e5f5e56ffc50 | 455 | //com.putc('1'); |
rs27 | 6:e5f5e56ffc50 | 456 | magnet.set(0); |
rs27 | 2:e330478fb0b6 | 457 | pc.printf("\nTropfen freigeben"); |
rs27 | 2:e330478fb0b6 | 458 | |
rs27 | 2:e330478fb0b6 | 459 | break; |
rs27 | 2:e330478fb0b6 | 460 | |
rs27 | 4:83dbae473d1f | 461 | default: pc.printf("\nBefehl go kennt nur die Zeichen ?,t,T,f,F"); |
rs27 | 4:83dbae473d1f | 462 | break; |
rs27 | 2:e330478fb0b6 | 463 | |
rs27 | 2:e330478fb0b6 | 464 | } // end switch |
Sven3010 | 3:254f7ffb9b32 | 465 | pc.printf("\n"); |
rs27 | 2:e330478fb0b6 | 466 | } |
rs27 | 2:e330478fb0b6 | 467 | |
rs27 | 2:e330478fb0b6 | 468 | |
rs27 | 2:e330478fb0b6 | 469 | //----------------------------------------------------------------------------- |
rs27 | 2:e330478fb0b6 | 470 | // monitor Aufruf stop |
rs27 | 2:e330478fb0b6 | 471 | // Wird die Heizung oder der Tropfenspender ausgeschaltet. |
rs27 | 2:e330478fb0b6 | 472 | |
rs27 | 2:e330478fb0b6 | 473 | void stop(void) |
rs27 | 2:e330478fb0b6 | 474 | { |
rs27 | 2:e330478fb0b6 | 475 | char ch; |
rs27 | 2:e330478fb0b6 | 476 | |
Sven3010 | 3:254f7ffb9b32 | 477 | sscanf(&com_line[ComLinePtr],"%c",&ch); |
rs27 | 2:e330478fb0b6 | 478 | |
Sven3010 | 3:254f7ffb9b32 | 479 | switch (ch) |
rs27 | 2:e330478fb0b6 | 480 | { |
rs27 | 2:e330478fb0b6 | 481 | |
rs27 | 6:e5f5e56ffc50 | 482 | case '1': magnet.reset(0); break; |
rs27 | 6:e5f5e56ffc50 | 483 | case '2': magnet.reset(1); break; |
rs27 | 6:e5f5e56ffc50 | 484 | case '3': magnet.reset(2); break; |
rs27 | 6:e5f5e56ffc50 | 485 | case '4': magnet.reset(3); break; |
rs27 | 6:e5f5e56ffc50 | 486 | case '5': magnet.reset(4); break; |
rs27 | 6:e5f5e56ffc50 | 487 | case '6': magnet.reset(5); break; |
rs27 | 6:e5f5e56ffc50 | 488 | case '7': magnet.reset(6); break; |
rs27 | 6:e5f5e56ffc50 | 489 | case '8': magnet.reset(7); break; |
rs27 | 6:e5f5e56ffc50 | 490 | case '9': magnet.reset(8); break; |
rs27 | 6:e5f5e56ffc50 | 491 | |
rs27 | 2:e330478fb0b6 | 492 | case '?': |
rs27 | 2:e330478fb0b6 | 493 | if (t_flag) pc.printf("Temperatur aktiviert"); |
rs27 | 2:e330478fb0b6 | 494 | else pc.printf("Temperatur deaktiviert"); |
rs27 | 2:e330478fb0b6 | 495 | |
rs27 | 2:e330478fb0b6 | 496 | if (f_flag) pc.printf("Tropfen freigeschaltet"); |
rs27 | 2:e330478fb0b6 | 497 | else pc.printf("Tropfen gesperrt"); |
rs27 | 2:e330478fb0b6 | 498 | |
rs27 | 2:e330478fb0b6 | 499 | break; |
rs27 | 2:e330478fb0b6 | 500 | case 't': |
rs27 | 2:e330478fb0b6 | 501 | case 'T': |
rs27 | 2:e330478fb0b6 | 502 | cfg.setValue("t_flag", "0"); |
rs27 | 2:e330478fb0b6 | 503 | cfg.write("/sd/input.cfg"); |
rs27 | 2:e330478fb0b6 | 504 | |
Sven3010 | 3:254f7ffb9b32 | 505 | t_flag = false; |
rs27 | 2:e330478fb0b6 | 506 | pc.printf("\nTemperatursteuerung ist deaktiviert"); |
rs27 | 2:e330478fb0b6 | 507 | |
rs27 | 2:e330478fb0b6 | 508 | break; |
rs27 | 2:e330478fb0b6 | 509 | |
rs27 | 2:e330478fb0b6 | 510 | case 'f': |
rs27 | 2:e330478fb0b6 | 511 | case 'F': |
rs27 | 2:e330478fb0b6 | 512 | cfg.setValue("f_flag", "0"); |
rs27 | 2:e330478fb0b6 | 513 | cfg.write("/sd/input.cfg"); |
rs27 | 2:e330478fb0b6 | 514 | |
Sven3010 | 3:254f7ffb9b32 | 515 | f_flag = false; |
rs27 | 2:e330478fb0b6 | 516 | com.putc('9'); |
rs27 | 2:e330478fb0b6 | 517 | pc.printf("\nTropfen gesperrt"); |
rs27 | 2:e330478fb0b6 | 518 | |
rs27 | 2:e330478fb0b6 | 519 | break; |
rs27 | 2:e330478fb0b6 | 520 | |
rs27 | 4:83dbae473d1f | 521 | default: |
rs27 | 4:83dbae473d1f | 522 | pc.printf("\nBefehl stop kennt nur die Zeichen ?,t,T,f,F '%c' %x", ch, ch); |
rs27 | 4:83dbae473d1f | 523 | break; |
rs27 | 2:e330478fb0b6 | 524 | |
rs27 | 2:e330478fb0b6 | 525 | } // end switch |
rs27 | 4:83dbae473d1f | 526 | |
rs27 | 4:83dbae473d1f | 527 | pc.printf("\n"); |
rs27 | 2:e330478fb0b6 | 528 | } |
rs27 | 2:e330478fb0b6 | 529 | //----------------------------------------------------------------------------- |
rs27 | 0:f0fbbfdca478 | 530 | // monitor Aufruf |
rs27 | 0:f0fbbfdca478 | 531 | |
rs27 | 1:19313470f629 | 532 | void time(void) |
rs27 | 0:f0fbbfdca478 | 533 | { |
rs27 | 0:f0fbbfdca478 | 534 | pc.printf("\nin timer"); |
rs27 | 0:f0fbbfdca478 | 535 | } |
rs27 | 0:f0fbbfdca478 | 536 | |
rs27 | 1:19313470f629 | 537 | //----------------------------------------------------------------------------- |
rs27 | 1:19313470f629 | 538 | // monitor Aufruf dir |
rs27 | 1:19313470f629 | 539 | // |
rs27 | 1:19313470f629 | 540 | // weiter Infos siehe auch |
rs27 | 1:19313470f629 | 541 | // http://elm-chan.org/fsw/ff/00index_e.html |
rs27 | 1:19313470f629 | 542 | // |
rs27 | 1:19313470f629 | 543 | void dir(void) |
rs27 | 1:19313470f629 | 544 | { |
rs27 | 1:19313470f629 | 545 | long size; |
rs27 | 1:19313470f629 | 546 | |
rs27 | 1:19313470f629 | 547 | DIR *d; |
rs27 | 1:19313470f629 | 548 | struct dirent *p; |
rs27 | 1:19313470f629 | 549 | |
rs27 | 1:19313470f629 | 550 | d = opendir("/sd"); |
rs27 | 1:19313470f629 | 551 | if (d != NULL) |
rs27 | 1:19313470f629 | 552 | { |
rs27 | 1:19313470f629 | 553 | while ((p = readdir(d)) != NULL) |
rs27 | 1:19313470f629 | 554 | { |
rs27 | 1:19313470f629 | 555 | sprintf(buffer,"/sd/%s",p->d_name); |
rs27 | 1:19313470f629 | 556 | pc.printf("\n %s", p->d_name); |
rs27 | 1:19313470f629 | 557 | FILE * f = fopen(buffer, "r"); |
rs27 | 1:19313470f629 | 558 | fseek(f, 0, SEEK_END); // seek to end of file |
rs27 | 1:19313470f629 | 559 | size = ftell(f); // get current file pointer |
rs27 | 1:19313470f629 | 560 | pc.printf(" %ld bytes ",size); |
rs27 | 1:19313470f629 | 561 | |
rs27 | 1:19313470f629 | 562 | time_t fattime = get_fattime(); |
rs27 | 1:19313470f629 | 563 | strftime(buffer, 40, "%a,%d %m %Y.%H:%M:%S", localtime(&fattime)); |
rs27 | 1:19313470f629 | 564 | pc.printf(" %s ", buffer); |
rs27 | 1:19313470f629 | 565 | |
rs27 | 1:19313470f629 | 566 | fclose(f); |
rs27 | 1:19313470f629 | 567 | } |
rs27 | 1:19313470f629 | 568 | |
rs27 | 1:19313470f629 | 569 | } |
rs27 | 1:19313470f629 | 570 | else |
rs27 | 1:19313470f629 | 571 | { |
rs27 | 1:19313470f629 | 572 | pc.printf("\nCould not open directory!\n"); |
rs27 | 1:19313470f629 | 573 | } |
rs27 | 1:19313470f629 | 574 | closedir(d); |
rs27 | 1:19313470f629 | 575 | |
rs27 | 1:19313470f629 | 576 | |
rs27 | 1:19313470f629 | 577 | FATFS* fs; |
rs27 | 1:19313470f629 | 578 | DWORD fre_clust; |
rs27 | 1:19313470f629 | 579 | f_getfree("0:",&fre_clust,&fs); |
rs27 | 1:19313470f629 | 580 | const float frs = float(fs->csize)*float(fs->free_clust) |
rs27 | 1:19313470f629 | 581 | #if _MAX_SS != 512 |
rs27 | 1:19313470f629 | 582 | *(fs->ssize); |
rs27 | 1:19313470f629 | 583 | #else |
rs27 | 1:19313470f629 | 584 | *512; |
rs27 | 1:19313470f629 | 585 | #endif |
rs27 | 1:19313470f629 | 586 | pc.printf("\n\nfree space = %f GB",frs/1073741824.0); |
rs27 | 1:19313470f629 | 587 | |
rs27 | 1:19313470f629 | 588 | pc.printf("\ndone\n"); |
rs27 | 1:19313470f629 | 589 | } |
rs27 | 1:19313470f629 | 590 | |
rs27 | 1:19313470f629 | 591 | //----------------------------------------------------------------------------- |
rs27 | 1:19313470f629 | 592 | // monitor Aufruf list |
rs27 | 1:19313470f629 | 593 | |
rs27 | 1:19313470f629 | 594 | void list(void) |
rs27 | 1:19313470f629 | 595 | { |
rs27 | 1:19313470f629 | 596 | char dname[25]; |
rs27 | 1:19313470f629 | 597 | int ch; |
rs27 | 1:19313470f629 | 598 | |
rs27 | 1:19313470f629 | 599 | sscanf(&com_line[ComLinePtr],"%s",dname); |
rs27 | 1:19313470f629 | 600 | sprintf(buffer,"/sd/%s",dname); |
rs27 | 1:19313470f629 | 601 | pc.printf("\nlist, file %s \n",buffer); |
rs27 | 1:19313470f629 | 602 | FILE * fp = fopen(buffer, "r"); |
rs27 | 1:19313470f629 | 603 | if(fp == NULL) |
rs27 | 1:19313470f629 | 604 | { |
rs27 | 1:19313470f629 | 605 | pc.printf("\nCould not open file for read\n\r"); |
rs27 | 1:19313470f629 | 606 | return; |
rs27 | 1:19313470f629 | 607 | } |
rs27 | 1:19313470f629 | 608 | |
rs27 | 1:19313470f629 | 609 | // mit fgets werden die Zeile einzeln gelesen, wenn die Länge < 64 Zeichen ist |
rs27 | 1:19313470f629 | 610 | |
rs27 | 1:19313470f629 | 611 | while (1) // list src to pc |
rs27 | 1:19313470f629 | 612 | { |
rs27 | 1:19313470f629 | 613 | ch = fgetc(fp); // until src EOF read. |
rs27 | 1:19313470f629 | 614 | if (ch == EOF) break; |
rs27 | 1:19313470f629 | 615 | pc.putc(ch); |
rs27 | 1:19313470f629 | 616 | } |
rs27 | 1:19313470f629 | 617 | |
rs27 | 1:19313470f629 | 618 | fclose(fp); |
rs27 | 1:19313470f629 | 619 | |
rs27 | 1:19313470f629 | 620 | pc.printf("\ndone\n"); |
rs27 | 1:19313470f629 | 621 | } |
rs27 | 1:19313470f629 | 622 | |
rs27 | 1:19313470f629 | 623 | //----------------------------------------------------------------------------- |
rs27 | 1:19313470f629 | 624 | // monitor Aufruf del |
rs27 | 1:19313470f629 | 625 | |
rs27 | 1:19313470f629 | 626 | void del(void) |
rs27 | 1:19313470f629 | 627 | { |
rs27 | 1:19313470f629 | 628 | char dname[25]; |
rs27 | 1:19313470f629 | 629 | char buffer[40]; |
rs27 | 1:19313470f629 | 630 | |
rs27 | 1:19313470f629 | 631 | sscanf(&com_line[ComLinePtr],"%s",dname); |
rs27 | 1:19313470f629 | 632 | sprintf(buffer,"/sd/%s",dname); |
rs27 | 1:19313470f629 | 633 | pc.printf("\ndelete file %s",buffer); |
rs27 | 1:19313470f629 | 634 | remove(buffer); |
rs27 | 1:19313470f629 | 635 | pc.printf("\ndone"); |
rs27 | 1:19313470f629 | 636 | } |
rs27 | 1:19313470f629 | 637 | |
rs27 | 1:19313470f629 | 638 | //----------------------------------------------------------------------------- |
rs27 | 1:19313470f629 | 639 | // monitor Aufruf fill |
rs27 | 1:19313470f629 | 640 | |
rs27 | 1:19313470f629 | 641 | void fill(void) |
rs27 | 1:19313470f629 | 642 | { |
rs27 | 1:19313470f629 | 643 | char dname[25]; |
rs27 | 1:19313470f629 | 644 | char buffer[40]; |
rs27 | 1:19313470f629 | 645 | int n = 20; |
rs27 | 1:19313470f629 | 646 | |
rs27 | 1:19313470f629 | 647 | sscanf(&com_line[ComLinePtr],"%s %d",dname,&n); |
rs27 | 1:19313470f629 | 648 | sprintf(buffer,"/sd/%s",dname); |
rs27 | 1:19313470f629 | 649 | pc.printf("\nfill file %s \n",buffer); |
rs27 | 1:19313470f629 | 650 | FILE *fp = fopen(buffer, "w"); |
rs27 | 1:19313470f629 | 651 | if(fp == NULL) |
rs27 | 1:19313470f629 | 652 | { |
rs27 | 1:19313470f629 | 653 | pc.printf("Could not open file for write\n"); |
rs27 | 1:19313470f629 | 654 | } |
rs27 | 1:19313470f629 | 655 | for (int i = 0; i<n; i++) |
rs27 | 1:19313470f629 | 656 | { |
rs27 | 1:19313470f629 | 657 | fprintf(fp, "\nschreibe eine Zeile %d ",i); |
rs27 | 1:19313470f629 | 658 | } |
rs27 | 1:19313470f629 | 659 | fclose(fp); |
rs27 | 1:19313470f629 | 660 | pc.printf("\ndone\n"); |
rs27 | 1:19313470f629 | 661 | } |
rs27 | 1:19313470f629 | 662 | |
rs27 | 1:19313470f629 | 663 |