http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex1_en/

Dependencies:   mbed RemoteIR SuperTweet ConfigFile EthernetNetIf

Committer:
shintamainjp
Date:
Thu Nov 04 14:33:07 2010 +0000
Revision:
1:c4cfd136f9c7
Parent:
0:db299c5a18ba
Added license terms.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 1:c4cfd136f9c7 1 /**
shintamainjp 1:c4cfd136f9c7 2 * =============================================================================
shintamainjp 1:c4cfd136f9c7 3 * Application configuration for 'Expansion Board One' example no.1
shintamainjp 1:c4cfd136f9c7 4 * http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex1_en/
shintamainjp 1:c4cfd136f9c7 5 * =============================================================================
shintamainjp 1:c4cfd136f9c7 6 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 1:c4cfd136f9c7 7 *
shintamainjp 1:c4cfd136f9c7 8 * Permission is hereby granted, free of charge, to any person obtaining a copy
shintamainjp 1:c4cfd136f9c7 9 * of this software and associated documentation files (the "Software"), to deal
shintamainjp 1:c4cfd136f9c7 10 * in the Software without restriction, including without limitation the rights
shintamainjp 1:c4cfd136f9c7 11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
shintamainjp 1:c4cfd136f9c7 12 * copies of the Software, and to permit persons to whom the Software is
shintamainjp 1:c4cfd136f9c7 13 * furnished to do so, subject to the following conditions:
shintamainjp 1:c4cfd136f9c7 14 *
shintamainjp 1:c4cfd136f9c7 15 * The above copyright notice and this permission notice shall be included in
shintamainjp 1:c4cfd136f9c7 16 * all copies or substantial portions of the Software.
shintamainjp 1:c4cfd136f9c7 17 *
shintamainjp 1:c4cfd136f9c7 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
shintamainjp 1:c4cfd136f9c7 19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
shintamainjp 1:c4cfd136f9c7 20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
shintamainjp 1:c4cfd136f9c7 21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
shintamainjp 1:c4cfd136f9c7 22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
shintamainjp 1:c4cfd136f9c7 23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
shintamainjp 1:c4cfd136f9c7 24 * THE SOFTWARE.
shintamainjp 1:c4cfd136f9c7 25 * =============================================================================
shintamainjp 1:c4cfd136f9c7 26 */
shintamainjp 1:c4cfd136f9c7 27
shintamainjp 0:db299c5a18ba 28 #include "appconf.h"
shintamainjp 0:db299c5a18ba 29 #include "ConfigFile.h"
shintamainjp 0:db299c5a18ba 30
shintamainjp 0:db299c5a18ba 31 #define KEY_SUPERTWEET_ACCOUNT "SUPERTWEET_ACCOUNT"
shintamainjp 0:db299c5a18ba 32 #define KEY_SUPERTWEET_PASSWORD "SUPERTWEET_PASSWORD"
shintamainjp 0:db299c5a18ba 33
shintamainjp 0:db299c5a18ba 34 /**
shintamainjp 0:db299c5a18ba 35 * Initialize configuration.
shintamainjp 0:db299c5a18ba 36 *
shintamainjp 0:db299c5a18ba 37 * @param p A pointer to a application config.
shintamainjp 0:db299c5a18ba 38 */
shintamainjp 0:db299c5a18ba 39 void appconf_init(appconf_t *p) {
shintamainjp 0:db299c5a18ba 40 memset(p->account, 0, sizeof(p->account));
shintamainjp 0:db299c5a18ba 41 memset(p->password, 0, sizeof(p->password));
shintamainjp 0:db299c5a18ba 42 }
shintamainjp 0:db299c5a18ba 43
shintamainjp 0:db299c5a18ba 44 /**
shintamainjp 0:db299c5a18ba 45 * Read configuration.
shintamainjp 0:db299c5a18ba 46 *
shintamainjp 0:db299c5a18ba 47 * @param filename Filename.
shintamainjp 0:db299c5a18ba 48 * @param p A pointer to a application config.
shintamainjp 0:db299c5a18ba 49 * @return Return zero if it succeed.
shintamainjp 0:db299c5a18ba 50 */
shintamainjp 0:db299c5a18ba 51 int appconf_read(char *filename, appconf_t *p) {
shintamainjp 0:db299c5a18ba 52 ConfigFile cf;
shintamainjp 0:db299c5a18ba 53 if (!cf.read(filename)) {
shintamainjp 0:db299c5a18ba 54 return -1;
shintamainjp 0:db299c5a18ba 55 }
shintamainjp 0:db299c5a18ba 56 if (!cf.getValue(KEY_SUPERTWEET_ACCOUNT, p->account, sizeof(p->account))) {
shintamainjp 0:db299c5a18ba 57 return -2;
shintamainjp 0:db299c5a18ba 58 }
shintamainjp 0:db299c5a18ba 59 if (!cf.getValue(KEY_SUPERTWEET_PASSWORD, p->password, sizeof(p->password))) {
shintamainjp 0:db299c5a18ba 60 return -3;
shintamainjp 0:db299c5a18ba 61 }
shintamainjp 0:db299c5a18ba 62 return 0;
shintamainjp 0:db299c5a18ba 63 }
shintamainjp 0:db299c5a18ba 64
shintamainjp 0:db299c5a18ba 65 /**
shintamainjp 0:db299c5a18ba 66 * Write configuration.
shintamainjp 0:db299c5a18ba 67 *
shintamainjp 0:db299c5a18ba 68 * @param filename Filename.
shintamainjp 0:db299c5a18ba 69 * @param p A pointer to a application config.
shintamainjp 0:db299c5a18ba 70 * @return Return zero if it succeed.
shintamainjp 0:db299c5a18ba 71 */
shintamainjp 0:db299c5a18ba 72 int appconf_write(char *filename, appconf_t *p) {
shintamainjp 0:db299c5a18ba 73 ConfigFile cf;
shintamainjp 0:db299c5a18ba 74 if (!cf.setValue(KEY_SUPERTWEET_ACCOUNT, p->account)) {
shintamainjp 0:db299c5a18ba 75 return -1;
shintamainjp 0:db299c5a18ba 76 }
shintamainjp 0:db299c5a18ba 77 if (!cf.setValue(KEY_SUPERTWEET_PASSWORD, p->password)) {
shintamainjp 0:db299c5a18ba 78 return -2;
shintamainjp 0:db299c5a18ba 79 }
shintamainjp 0:db299c5a18ba 80 if (!cf.write(filename)) {
shintamainjp 0:db299c5a18ba 81 return -3;
shintamainjp 0:db299c5a18ba 82 }
shintamainjp 0:db299c5a18ba 83 return 0;
shintamainjp 0:db299c5a18ba 84 }