Practical library series : Configuration File

Languages

日本語版はこちら: 実用ライブラリシリーズ:設定ファイル

Overview

Some applications need variable configurations.

For example, The configuration of account information for Twitter...

It's not good for publish if I implemented a program with a account information for Twitter, and it's not secure.

So, in this document we will show you a configuration file helper class for local file system on mbed.

You can use a variable configuration with it.

Basic concept

Features

Library

Class structure

The class is only

ConfigFile

in this library.

Projects

The library project is ConfigFile. And the test program is ConfigFile_TestProgram.

The library project ConfigFile hasn't mbed library in the project. So you can import the link of the library.

You can run the test program ConfigFile_TestProgram if you want to check the functions.

How to use it?

Configuration file

We need a configuration file.

#
# Configuration file for mbed.
#

MyKey1=This is a value for key1.
MyKey2=Value 2

Message1 = This is a test message no.1
 Message2  =  This is a test message no.2
  Message3   =   This is a test message no.3

Reading

This example codes read a file named input.cfg on mbed local file system.

#include "mbed.h"
#include "ConfigFile.h"
 
LocalFileSystem local("local");
ConfigFile cfg;

int main(void) {
    char *key = "MyKey";
    char value[BUFSIZ];
    /*
     * Read a configuration file from a mbed.
     */
    if (!cfg.read("/local/input.cfg")) {
        error("Failure to read a configuration file.\n");
    }

    /*
     * Get a configuration value.
     */
    if (cfg.getValue(key, &value[0], sizeof(value))) {
        printf("'%s'='%s'\n", key, value);
    }
}

Writing

This example codes write a configuration to a file.

#include "mbed.h"
#include "ConfigFile.h"
 
LocalFileSystem local("local");
ConfigFile cfg;

int main(void) {

    /*
     * Set a configuration value.
     */
    if (!cfg.setValue("MyKey", "TestValue")) {
        error("Failure to set a value.\n");
    }    

    /*
     * Write to a file.
     */
    if (!cfg.read("/local/output.cfg")) {
        error("Failure to write a configuration file.\n");
    }
}

Summary

You can use this library class if you want to read configuration variables or store a configuration variables.


2 comments

22 Sep 2010

Good Utility,

Thanks,

 

Warm Regards,

Boseji

http://m8051.blogspot.com

23 Sep 2010

Dear Mr. Boseji-san

Thank you for your comments. :)

Best regards

Shin.

Please log in to post a comment.