2018 revision to classic DataBus AVC code.
Dependencies: LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell
Config.cpp@4:de7feb458652, 2018-12-03 (annotated)
- Committer:
- shimniok
- Date:
- Mon Dec 03 21:51:14 2018 +0000
- Revision:
- 4:de7feb458652
- Child:
- 5:eff573d4ede7
implemented part of config read/parse
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shimniok | 4:de7feb458652 | 1 | #include "Config.h" |
shimniok | 4:de7feb458652 | 2 | |
shimniok | 4:de7feb458652 | 3 | |
shimniok | 4:de7feb458652 | 4 | int Config::load(char *filename) |
shimniok | 4:de7feb458652 | 5 | { |
shimniok | 4:de7feb458652 | 6 | char buf[MAXBUF]; |
shimniok | 4:de7feb458652 | 7 | char *key; |
shimniok | 4:de7feb458652 | 8 | char *value; |
shimniok | 4:de7feb458652 | 9 | int status=0; |
shimniok | 4:de7feb458652 | 10 | FILE *fp; |
shimniok | 4:de7feb458652 | 11 | |
shimniok | 4:de7feb458652 | 12 | fp = fopen(filename, "r"); |
shimniok | 4:de7feb458652 | 13 | if (fp == NULL) { |
shimniok | 4:de7feb458652 | 14 | status = -1; |
shimniok | 4:de7feb458652 | 15 | } else { |
shimniok | 4:de7feb458652 | 16 | while (!feof(fp)) { |
shimniok | 4:de7feb458652 | 17 | fgets(buf, MAXBUF-1, fp); |
shimniok | 4:de7feb458652 | 18 | if (buf[0] != '#') { |
shimniok | 4:de7feb458652 | 19 | key = strtok(buf, ":"); |
shimniok | 4:de7feb458652 | 20 | value = strtok(NULL, ":"); |
shimniok | 4:de7feb458652 | 21 | if (*key && *value) { |
shimniok | 4:de7feb458652 | 22 | printf("<%s>=<%s>\n", key, value); |
shimniok | 4:de7feb458652 | 23 | // look for key |
shimniok | 4:de7feb458652 | 24 | // parse value |
shimniok | 4:de7feb458652 | 25 | // set options |
shimniok | 4:de7feb458652 | 26 | } |
shimniok | 4:de7feb458652 | 27 | } |
shimniok | 4:de7feb458652 | 28 | } |
shimniok | 4:de7feb458652 | 29 | fclose(fp); |
shimniok | 4:de7feb458652 | 30 | }; |
shimniok | 4:de7feb458652 | 31 | |
shimniok | 4:de7feb458652 | 32 | return status; |
shimniok | 4:de7feb458652 | 33 | } |
shimniok | 4:de7feb458652 | 34 | |
shimniok | 4:de7feb458652 | 35 | |
shimniok | 4:de7feb458652 | 36 | /** Attach a setter for each key. The type of the setter's arg will be |
shimniok | 4:de7feb458652 | 37 | * enforced by the parser when the config file is loaded. |
shimniok | 4:de7feb458652 | 38 | */ |
shimniok | 4:de7feb458652 | 39 | void Config::attach(Callback<void(char *)> set, char *key) { |
shimniok | 4:de7feb458652 | 40 | } |
shimniok | 4:de7feb458652 | 41 | |
shimniok | 4:de7feb458652 | 42 | |
shimniok | 4:de7feb458652 | 43 | void Config::attach(Callback<void(int)> set, char *key) { |
shimniok | 4:de7feb458652 | 44 | } |
shimniok | 4:de7feb458652 | 45 | |
shimniok | 4:de7feb458652 | 46 | void Config::attach(Callback<void(float)> set, char *key) { |
shimniok | 4:de7feb458652 | 47 | } |
shimniok | 4:de7feb458652 | 48 | |
shimniok | 4:de7feb458652 | 49 | void Config::attach(Callback<void(double)> set, char *key) { |
shimniok | 4:de7feb458652 | 50 | } |