mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/

Dependencies:   EthernetNetIf SDHCFileSystem I2CLEDDisp Agentbed NTPClient_NetServices mbed BMP085 HTTPClient ConfigFile I2CLCD

Committer:
okini3939
Date:
Wed May 18 15:01:56 2011 +0000
Revision:
0:d7b4484099bf

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:d7b4484099bf 1 /** @file
okini3939 0:d7b4484099bf 2 * @brief mbed Weather Platform
okini3939 0:d7b4484099bf 3 */
okini3939 0:d7b4484099bf 4 #include "mbed.h"
okini3939 0:d7b4484099bf 5 #include "EthernetNetIf.h"
okini3939 0:d7b4484099bf 6 #include "I2CLEDDisp.h"
okini3939 0:d7b4484099bf 7 #include "I2CLCD.h"
okini3939 0:d7b4484099bf 8
okini3939 0:d7b4484099bf 9 #define CONFIG_FILE "weather.cfg"
okini3939 0:d7b4484099bf 10
okini3939 0:d7b4484099bf 11
okini3939 0:d7b4484099bf 12 #define CF_MAXLEN_VALUE 128
okini3939 0:d7b4484099bf 13 #define CF_ACTION_EXPS 10
okini3939 0:d7b4484099bf 14 #define CF_ACTION_NUM 10
okini3939 0:d7b4484099bf 15 #define CF_TWITTER_NUM 5
okini3939 0:d7b4484099bf 16
okini3939 0:d7b4484099bf 17 enum eEXPRESSION {
okini3939 0:d7b4484099bf 18 EXP_NULL,
okini3939 0:d7b4484099bf 19 EXP_EQ,
okini3939 0:d7b4484099bf 20 EXP_NE,
okini3939 0:d7b4484099bf 21 EXP_LE,
okini3939 0:d7b4484099bf 22 EXP_LT,
okini3939 0:d7b4484099bf 23 EXP_GE,
okini3939 0:d7b4484099bf 24 EXP_GT,
okini3939 0:d7b4484099bf 25 EXP_MOD,
okini3939 0:d7b4484099bf 26 EXP_NMOD,
okini3939 0:d7b4484099bf 27 EXP_FALL,
okini3939 0:d7b4484099bf 28 EXP_RISE,
okini3939 0:d7b4484099bf 29 };
okini3939 0:d7b4484099bf 30
okini3939 0:d7b4484099bf 31 enum eINPUTTYPE {
okini3939 0:d7b4484099bf 32 INPUT_MOIST = 0,
okini3939 0:d7b4484099bf 33 INPUT_FALL = 1,
okini3939 0:d7b4484099bf 34 INPUT_RISE = 2,
okini3939 0:d7b4484099bf 35 INPUT_CPM = 4,
okini3939 0:d7b4484099bf 36 };
okini3939 0:d7b4484099bf 37
okini3939 0:d7b4484099bf 38 struct tExpression {
okini3939 0:d7b4484099bf 39 char key;
okini3939 0:d7b4484099bf 40 enum eEXPRESSION expression;
okini3939 0:d7b4484099bf 41 float value;
okini3939 0:d7b4484099bf 42 };
okini3939 0:d7b4484099bf 43
okini3939 0:d7b4484099bf 44 struct tAction {
okini3939 0:d7b4484099bf 45 char action;
okini3939 0:d7b4484099bf 46 char sub;
okini3939 0:d7b4484099bf 47 int count;
okini3939 0:d7b4484099bf 48 struct tExpression exps[CF_ACTION_EXPS];
okini3939 0:d7b4484099bf 49 };
okini3939 0:d7b4484099bf 50
okini3939 0:d7b4484099bf 51 struct Sensor {
okini3939 0:d7b4484099bf 52 float pres, temp, humi, light, anemo, vane, rain, uv, moist, temp2;
okini3939 0:d7b4484099bf 53 };
okini3939 0:d7b4484099bf 54
okini3939 0:d7b4484099bf 55 struct Config {
okini3939 0:d7b4484099bf 56 int interval;
okini3939 0:d7b4484099bf 57 IpAddr ipaddr, netmask, gateway, nameserver;
okini3939 0:d7b4484099bf 58 char ntpserver[32];
okini3939 0:d7b4484099bf 59 int filetype, actionscount;
okini3939 0:d7b4484099bf 60 struct tAction actions[CF_ACTION_NUM];
okini3939 0:d7b4484099bf 61 char pachube_apikey[70], pachube_feedid[8];
okini3939 0:d7b4484099bf 62 char twitter_user[30], twitter_pwd[30], twitter_mesg[CF_TWITTER_NUM][CF_MAXLEN_VALUE];
okini3939 0:d7b4484099bf 63 char stations_id[8], stations_pin[34];
okini3939 0:d7b4484099bf 64 char snmp_commname[30];
okini3939 0:d7b4484099bf 65 char lcd_mesg[CF_MAXLEN_VALUE];
okini3939 0:d7b4484099bf 66 enum I2CLCDType lcdtype;
okini3939 0:d7b4484099bf 67 enum I2CLCDConfig lcdconf;
okini3939 0:d7b4484099bf 68 char leddisp_mesg[CF_MAXLEN_VALUE];
okini3939 0:d7b4484099bf 69 enum eINPUTTYPE inputtype;
okini3939 0:d7b4484099bf 70 };
okini3939 0:d7b4484099bf 71
okini3939 0:d7b4484099bf 72 int config (char *);