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
appconf.cpp
00001 /** 00002 * ============================================================================= 00003 * Application configuration for 'Expansion Board One' example no.2 00004 * http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex2_en/ 00005 * ============================================================================= 00006 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems) 00007 * 00008 * Permission is hereby granted, free of charge, to any person obtaining a copy 00009 * of this software and associated documentation files (the "Software"), to deal 00010 * in the Software without restriction, including without limitation the rights 00011 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00012 * copies of the Software, and to permit persons to whom the Software is 00013 * furnished to do so, subject to the following conditions: 00014 * 00015 * The above copyright notice and this permission notice shall be included in 00016 * all copies or substantial portions of the Software. 00017 * 00018 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00019 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00020 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00021 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00022 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00023 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00024 * THE SOFTWARE. 00025 * ============================================================================= 00026 */ 00027 00028 #include "appconf.h" 00029 #include "ConfigFile.h" 00030 00031 #define KEY_PACHUBE_APIKEY "PACHUBE_APIKEY" 00032 #define KEY_PACHUBE_FEEDID "PACHUBE_FEEDID" 00033 #define KEY_PACHUBE_INTERVAL "PACHUBE_INTERVAL" 00034 00035 /** 00036 * Initialize configuration. 00037 * 00038 * @param p A pointer to a application config. 00039 */ 00040 void appconf_init(appconf_t *p) { 00041 memset(p->apikey, 0, sizeof(p->apikey)); 00042 memset(p->feedid, 0, sizeof(p->feedid)); 00043 p->interval = 0; 00044 } 00045 00046 /** 00047 * Read configuration. 00048 * 00049 * @param filename Filename. 00050 * @param p A pointer to a application config. 00051 * @return Return zero if it succeed. 00052 */ 00053 int appconf_read(char *filename, appconf_t *p) { 00054 ConfigFile cf; 00055 if (!cf.read(filename)) { 00056 return -1; 00057 } 00058 if (!cf.getValue(KEY_PACHUBE_APIKEY, p->apikey, sizeof(p->apikey))) { 00059 return -2; 00060 } 00061 if (!cf.getValue(KEY_PACHUBE_FEEDID, p->feedid, sizeof(p->feedid))) { 00062 return -3; 00063 } 00064 char buf[64]; 00065 if (!cf.getValue(KEY_PACHUBE_INTERVAL, buf, sizeof(buf))) { 00066 return -4; 00067 } else { 00068 if (sscanf(buf, "%d", &(p->interval)) != 1) { 00069 return -5; 00070 } 00071 } 00072 return 0; 00073 } 00074 00075 /** 00076 * Write configuration. 00077 * 00078 * @param filename Filename. 00079 * @param p A pointer to a application config. 00080 * @return Return zero if it succeed. 00081 */ 00082 int appconf_write(char *filename, appconf_t *p) { 00083 ConfigFile cf; 00084 if (!cf.setValue(KEY_PACHUBE_APIKEY, p->apikey)) { 00085 return -1; 00086 } 00087 if (!cf.setValue(KEY_PACHUBE_FEEDID, p->feedid)) { 00088 return -2; 00089 } 00090 char buf[64]; 00091 snprintf(buf, sizeof(buf) - 1, "%d", p->interval); 00092 if (!cf.setValue(KEY_PACHUBE_INTERVAL, buf)) { 00093 return -3; 00094 } 00095 if (!cf.write(filename)) { 00096 return -4; 00097 } 00098 return 0; 00099 }
Generated on Tue Jul 12 2022 18:41:20 by 1.7.2