2018 revision to classic DataBus AVC code.

Dependencies:   LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell

Config.h

Committer:
shimniok
Date:
2018-12-05
Revision:
7:1f2661b840ed
Parent:
6:83a6666a62d7
Child:
8:ba70bb062aa0

File content as of revision 7:1f2661b840ed:

#ifndef __CONFIG_H
#define __CONFIG_H

#include "mbed.h"

#define MAXSTR 10
#define MAXTBL 30

union Value {
    double d;
    int i;
};
    
typedef struct {
    char key[MAXSTR];
    char format;
    Value value;
} ConfigEntry;

class Config {
public:
    enum{INT, DOUBLE} format;
    Config();
    int load(char *filename);
    int assign(char *key, char *value);
    void add(char *key, char format);
    void attach(Callback<void(char *)>, char *key, char format);
    
private:
    static const int MAXBUF=128;
    char buf[MAXBUF];
    ConfigEntry table[MAXTBL];
    int itable;
    int lookup(char *key);
};

#endif