Lecomte Delys / MatchColors

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ConfigFile.hpp Source File

ConfigFile.hpp

00001 #ifndef CONFIGURATION_FILE_H
00002 #define CONFIGURATION_FILE_H
00003 
00004 #include "mbed.h"
00005 #include "rpc.h"
00006 #include <fstream>
00007 #include <iostream>
00008 
00009 struct configSPI {
00010     PinName mosi;
00011     PinName miso;
00012     PinName sck;
00013 };
00014 
00015 struct configI2C {
00016     PinName sda;
00017     PinName scl;
00018 };
00019 
00020 class ConfigFile
00021 {
00022     public:
00023     /*Constructeur*/
00024     ConfigFile(const char* fileName, uint8_t &level, uint8_t &numLeds, configSPI &spi, configI2C &i2c, PinName &latchPin) {
00025         int l, n;
00026         char configPins[6][3];
00027 
00028         /*Utiliser le système de fichier local*/
00029         LocalFileSystem local("local");
00030 
00031         /*Ouvrir le fichier de configuration*/
00032         FILE* ConfigFile = fopen(fileName, "r");
00033 
00034         if(ConfigFile) {
00035 
00036             /*Lire les données de configuration*/
00037             fscanf(ConfigFile,
00038                    "Difficulte = %d\nNombre de LEDs = %d\n\nMOSI pin = %s\nMISO pin = %s\nSCK pin = %s\nLatch pin = %s\n\nSDA pin = %s\nSCL pin = %s",
00039                    &l, &n, configPins[0], configPins[1], configPins[2], configPins[3], configPins[4], configPins[5]);
00040 
00041             /*Niveau du jeu*/
00042             level = (uint8_t) l;
00043 
00044             /*Nombre de LEDs sur le bandeau*/
00045             numLeds = (uint8_t) n;
00046 
00047             /*SPI*/
00048             spi.mosi = parse_pins(configPins[0]);
00049             spi.miso = parse_pins(configPins[1]);
00050             spi.sck = parse_pins(configPins[2]);
00051 
00052             /*Latch pin*/
00053             latchPin = parse_pins(configPins[3]);
00054 
00055             /*I2C*/
00056             i2c.sda = parse_pins(configPins[4]);
00057             i2c.scl = parse_pins(configPins[5]);
00058 
00059             /*Fermer le fichier de configuration*/
00060             fclose(ConfigFile);
00061 
00062         } else {
00063             std::cerr << "Erreur lors de l'ouverture du fichier de configuration !" << std::endl;
00064         }
00065     }
00066 };
00067 #endif