http://http://diytec.web.fc2.com/mark2r2/

Dependencies:   EthernetNetIf NTPClient_NetServices mbed ConfigFile

Committer:
mark2r2
Date:
Tue Sep 20 12:46:26 2011 +0000
Revision:
0:08a4d61cd84c
V1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mark2r2 0:08a4d61cd84c 1 /*************************************************************
mark2r2 0:08a4d61cd84c 2
mark2r2 0:08a4d61cd84c 3 History
mark2r2 0:08a4d61cd84c 4 2011/08/23 - Add nsvlong0,cpmlong0.
mark2r2 0:08a4d61cd84c 5 2011/08/03 - variable stream number.
mark2r2 0:08a4d61cd84c 6
mark2r2 0:08a4d61cd84c 7
mark2r2 0:08a4d61cd84c 8 *************************************************************/
mark2r2 0:08a4d61cd84c 9 /**
mark2r2 0:08a4d61cd84c 10 * =============================================================================
mark2r2 0:08a4d61cd84c 11 * Application configuration for 'Expansion Board One' example no.2
mark2r2 0:08a4d61cd84c 12 * http://mbed.org/users/shintamainjp/notebook/starboard_expbrd-one_ex2_en/
mark2r2 0:08a4d61cd84c 13 * =============================================================================
mark2r2 0:08a4d61cd84c 14 * Copyright (c) 2010 Shinichiro Nakamura (CuBeatSystems)
mark2r2 0:08a4d61cd84c 15 *
mark2r2 0:08a4d61cd84c 16 * Permission is hereby granted, free of charge, to any person obtaining a copy
mark2r2 0:08a4d61cd84c 17 * of this software and associated documentation files (the "Software"), to deal
mark2r2 0:08a4d61cd84c 18 * in the Software without restriction, including without limitation the rights
mark2r2 0:08a4d61cd84c 19 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
mark2r2 0:08a4d61cd84c 20 * copies of the Software, and to permit persons to whom the Software is
mark2r2 0:08a4d61cd84c 21 * furnished to do so, subject to the following conditions:
mark2r2 0:08a4d61cd84c 22 *
mark2r2 0:08a4d61cd84c 23 * The above copyright notice and this permission notice shall be included in
mark2r2 0:08a4d61cd84c 24 * all copies or substantial portions of the Software.
mark2r2 0:08a4d61cd84c 25 *
mark2r2 0:08a4d61cd84c 26 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
mark2r2 0:08a4d61cd84c 27 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
mark2r2 0:08a4d61cd84c 28 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
mark2r2 0:08a4d61cd84c 29 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
mark2r2 0:08a4d61cd84c 30 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
mark2r2 0:08a4d61cd84c 31 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
mark2r2 0:08a4d61cd84c 32 * THE SOFTWARE.
mark2r2 0:08a4d61cd84c 33 * =============================================================================
mark2r2 0:08a4d61cd84c 34 */
mark2r2 0:08a4d61cd84c 35
mark2r2 0:08a4d61cd84c 36 #include "appconf.h"
mark2r2 0:08a4d61cd84c 37 #include "ConfigFile.h"
mark2r2 0:08a4d61cd84c 38
mark2r2 0:08a4d61cd84c 39 #define KEY_PACHUBE_APIKEY "PACHUBE_APIKEY"
mark2r2 0:08a4d61cd84c 40 #define KEY_PACHUBE_FEEDID "PACHUBE_FEEDID"
mark2r2 0:08a4d61cd84c 41 #define KEY_STREAM_NSV0 "nsv0" // 2011/08/03
mark2r2 0:08a4d61cd84c 42 #define KEY_STREAM_CPM0 "cpm0" // 2011/08/03
mark2r2 0:08a4d61cd84c 43 #ifdef DUALGM
mark2r2 0:08a4d61cd84c 44 #define KEY_STREAM_NSV1 "nsv1" // 2011/08/03
mark2r2 0:08a4d61cd84c 45 #define KEY_STREAM_CPM1 "cpm1" // 2011/08/03
mark2r2 0:08a4d61cd84c 46 #endif
mark2r2 0:08a4d61cd84c 47 #define KEY_STREAM_NSVLONG0 "nsvlong0" // 2011/08/23
mark2r2 0:08a4d61cd84c 48 #define KEY_STREAM_CPMLONG0 "cpmlong0" // 2011/08/23
mark2r2 0:08a4d61cd84c 49
mark2r2 0:08a4d61cd84c 50 //#define KEY_PACHUBE_INTERVAL "PACHUBE_INTERVAL"
mark2r2 0:08a4d61cd84c 51
mark2r2 0:08a4d61cd84c 52 /**
mark2r2 0:08a4d61cd84c 53 * Initialize configuration.
mark2r2 0:08a4d61cd84c 54 *
mark2r2 0:08a4d61cd84c 55 * @param p A pointer to a application config.
mark2r2 0:08a4d61cd84c 56 */
mark2r2 0:08a4d61cd84c 57 void appconf_init(appconf_t *p) {
mark2r2 0:08a4d61cd84c 58 memset(p->apikey, 0, sizeof(p->apikey));
mark2r2 0:08a4d61cd84c 59 memset(p->feedid, 0, sizeof(p->feedid));
mark2r2 0:08a4d61cd84c 60 p->stream_nsv0 = -1; //default value 2011/08/03
mark2r2 0:08a4d61cd84c 61 p->stream_cpm0 = -1; //default value 2011/08/03
mark2r2 0:08a4d61cd84c 62 #ifdef DUALGM
mark2r2 0:08a4d61cd84c 63 p->stream_nsv1 = 2; //default value 2011/08/03
mark2r2 0:08a4d61cd84c 64 p->stream_cpm1 = 3; //default value 2011/08/03
mark2r2 0:08a4d61cd84c 65 #endif
mark2r2 0:08a4d61cd84c 66 p->stream_nsvlong0 = 0; //default value 2011/08/23
mark2r2 0:08a4d61cd84c 67 p->stream_cpmlong0 = 1; //default value 2011/08/23
mark2r2 0:08a4d61cd84c 68
mark2r2 0:08a4d61cd84c 69 // p->interval = 0;
mark2r2 0:08a4d61cd84c 70 }
mark2r2 0:08a4d61cd84c 71
mark2r2 0:08a4d61cd84c 72 /**
mark2r2 0:08a4d61cd84c 73 * Read configuration.
mark2r2 0:08a4d61cd84c 74 *
mark2r2 0:08a4d61cd84c 75 * @param filename Filename.
mark2r2 0:08a4d61cd84c 76 * @param p A pointer to a application config.
mark2r2 0:08a4d61cd84c 77 * @return Return zero if it succeed.
mark2r2 0:08a4d61cd84c 78 */
mark2r2 0:08a4d61cd84c 79 int appconf_read(char *filename, appconf_t *p) {
mark2r2 0:08a4d61cd84c 80 ConfigFile cf;
mark2r2 0:08a4d61cd84c 81 if (!cf.read(filename)) {
mark2r2 0:08a4d61cd84c 82 return -1;
mark2r2 0:08a4d61cd84c 83 }
mark2r2 0:08a4d61cd84c 84 if (!cf.getValue(KEY_PACHUBE_APIKEY, p->apikey, sizeof(p->apikey))) {
mark2r2 0:08a4d61cd84c 85 return -2;
mark2r2 0:08a4d61cd84c 86 }
mark2r2 0:08a4d61cd84c 87 if (!cf.getValue(KEY_PACHUBE_FEEDID, p->feedid, sizeof(p->feedid))) {
mark2r2 0:08a4d61cd84c 88 return -3;
mark2r2 0:08a4d61cd84c 89 }
mark2r2 0:08a4d61cd84c 90 /*
mark2r2 0:08a4d61cd84c 91 char buf[64];
mark2r2 0:08a4d61cd84c 92 if (!cf.getValue(KEY_PACHUBE_INTERVAL, buf, sizeof(buf))) {
mark2r2 0:08a4d61cd84c 93 return -4;
mark2r2 0:08a4d61cd84c 94 } else {
mark2r2 0:08a4d61cd84c 95 if (sscanf(buf, "%d", &(p->interval)) != 1) {
mark2r2 0:08a4d61cd84c 96 return -5;
mark2r2 0:08a4d61cd84c 97 }
mark2r2 0:08a4d61cd84c 98 }
mark2r2 0:08a4d61cd84c 99 */
mark2r2 0:08a4d61cd84c 100 // 2011/08/03 begin
mark2r2 0:08a4d61cd84c 101 char buf[64];
mark2r2 0:08a4d61cd84c 102 if(cf.getValue(KEY_STREAM_NSV0, buf, sizeof(buf))) {
mark2r2 0:08a4d61cd84c 103 if(sscanf(buf, "%d", &(p->stream_nsv0)) !=1) {
mark2r2 0:08a4d61cd84c 104 return -5;
mark2r2 0:08a4d61cd84c 105 }
mark2r2 0:08a4d61cd84c 106 }
mark2r2 0:08a4d61cd84c 107
mark2r2 0:08a4d61cd84c 108 if(cf.getValue(KEY_STREAM_CPM0, buf, sizeof(buf))) {
mark2r2 0:08a4d61cd84c 109 if(sscanf(buf, "%d", &(p->stream_cpm0)) !=1) {
mark2r2 0:08a4d61cd84c 110 return -6;
mark2r2 0:08a4d61cd84c 111 }
mark2r2 0:08a4d61cd84c 112 }
mark2r2 0:08a4d61cd84c 113 #ifdef DUALGM
mark2r2 0:08a4d61cd84c 114 if(cf.getValue(KEY_STREAM_NSV1, buf, sizeof(buf))) {
mark2r2 0:08a4d61cd84c 115 if(sscanf(buf, "%d", &(p->stream_nsv1)) !=1) {
mark2r2 0:08a4d61cd84c 116 return -7;
mark2r2 0:08a4d61cd84c 117 }
mark2r2 0:08a4d61cd84c 118 }
mark2r2 0:08a4d61cd84c 119
mark2r2 0:08a4d61cd84c 120 if(cf.getValue(KEY_STREAM_CPM1, buf, sizeof(buf))) {
mark2r2 0:08a4d61cd84c 121 if(sscanf(buf, "%d", &(p->stream_cpm1)) !=1) {
mark2r2 0:08a4d61cd84c 122 return -8;
mark2r2 0:08a4d61cd84c 123 }
mark2r2 0:08a4d61cd84c 124 }
mark2r2 0:08a4d61cd84c 125 #endif
mark2r2 0:08a4d61cd84c 126 // 2011/08/03 end
mark2r2 0:08a4d61cd84c 127 if(cf.getValue(KEY_STREAM_NSVLONG0, buf, sizeof(buf))) { // 2011/08/23
mark2r2 0:08a4d61cd84c 128 if(sscanf(buf, "%d", &(p->stream_nsvlong0)) !=1) { // 2011/08/23
mark2r2 0:08a4d61cd84c 129 return -9; // 2011/08/23
mark2r2 0:08a4d61cd84c 130 } // 2011/08/23
mark2r2 0:08a4d61cd84c 131 } // 2011/08/23
mark2r2 0:08a4d61cd84c 132 if(cf.getValue(KEY_STREAM_CPMLONG0, buf, sizeof(buf))) { // 2011/08/23
mark2r2 0:08a4d61cd84c 133 if(sscanf(buf, "%d", &(p->stream_cpmlong0)) !=1) { // 2011/08/23
mark2r2 0:08a4d61cd84c 134 return -10; // 2011/08/23
mark2r2 0:08a4d61cd84c 135 } // 2011/08/23
mark2r2 0:08a4d61cd84c 136 } // 2011/08/23
mark2r2 0:08a4d61cd84c 137 return 0;
mark2r2 0:08a4d61cd84c 138 }
mark2r2 0:08a4d61cd84c 139
mark2r2 0:08a4d61cd84c 140 /**
mark2r2 0:08a4d61cd84c 141 * Write configuration.
mark2r2 0:08a4d61cd84c 142 *
mark2r2 0:08a4d61cd84c 143 * @param filename Filename.
mark2r2 0:08a4d61cd84c 144 * @param p A pointer to a application config.
mark2r2 0:08a4d61cd84c 145 * @return Return zero if it succeed.
mark2r2 0:08a4d61cd84c 146 */
mark2r2 0:08a4d61cd84c 147 int appconf_write(char *filename, appconf_t *p) {
mark2r2 0:08a4d61cd84c 148 ConfigFile cf;
mark2r2 0:08a4d61cd84c 149 if (!cf.setValue(KEY_PACHUBE_APIKEY, p->apikey)) {
mark2r2 0:08a4d61cd84c 150 return -1;
mark2r2 0:08a4d61cd84c 151 }
mark2r2 0:08a4d61cd84c 152 if (!cf.setValue(KEY_PACHUBE_FEEDID, p->feedid)) {
mark2r2 0:08a4d61cd84c 153 return -2;
mark2r2 0:08a4d61cd84c 154 }
mark2r2 0:08a4d61cd84c 155 /*
mark2r2 0:08a4d61cd84c 156 char buf[64];
mark2r2 0:08a4d61cd84c 157 snprintf(buf, sizeof(buf) - 1, "%d", p->interval);
mark2r2 0:08a4d61cd84c 158 if (!cf.setValue(KEY_PACHUBE_INTERVAL, buf)) {
mark2r2 0:08a4d61cd84c 159 return -3;
mark2r2 0:08a4d61cd84c 160 }
mark2r2 0:08a4d61cd84c 161 */
mark2r2 0:08a4d61cd84c 162 if (!cf.write(filename)) {
mark2r2 0:08a4d61cd84c 163 return -4;
mark2r2 0:08a4d61cd84c 164 }
mark2r2 0:08a4d61cd84c 165 return 0;
mark2r2 0:08a4d61cd84c 166 }