World Wide Data Logger using mbed.

Dependencies:   mbed ThermistorPack Pachube ConfigFile EthernetNetIf TextLCD SDFileSystem

Committer:
shintamainjp
Date:
Mon Apr 04 21:33:25 2011 +0000
Revision:
0:798c62ea70a3
Initial version.

Who changed what in which revision?

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