Hi. This is the feed program for Cosm. (The previous name of the services is Pachube.)

Dependencies:   mbed ThermistorPack Pachube ConfigFile EthernetNetIf TextLCD HTTPClient_ToBeRemoved FatFileSystem SDFileSystem

Committer:
shintamainjp
Date:
Mon Aug 06 12:37:59 2012 +0000
Revision:
0:521ba375aa0f
Pachube renamed to Cosm.

Who changed what in which revision?

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