mbed Weather Platform firmware http://mbed.org/users/okini3939/notebook/mbed-weather-platform-firmware/
Dependencies: ChaNFSSD EthernetNetIf I2CLEDDisp Agentbed ChaNFSUSB ILinterpreter mbed BMP085 WeatherMeters ConfigFile ChaNFS I2CLCD
file.cpp
- Committer:
- okini3939
- Date:
- 2011-07-04
- Revision:
- 0:bdb53686c194
- Child:
- 1:6c7141895545
File content as of revision 0:bdb53686c194:
#include "mbed.h" #include "weather.h" #include "SDHCFileSystem.h" #include "MSCFileSystem.h" #include "ConfigFile.h" static SDFileSystem sd(p5, p6, p7, p8, "sd"); static LocalFileSystem *local; static MSCFileSystem *usb; static DigitalIn sd_cd(p21); ConfigFile cfg; static char filename[30] = ""; int write_log (const char *buf) { FILE *fp; if (filename[0] == 0) return 0; LED_FILE_ON; fp = fopen(filename, "a"); if (fp) { fprintf(fp, buf); fclose(fp); } else { LED_FILE_OFF; return -1; } LED_FILE_OFF; return 0; } int init_file () { int seq = 0; char buf[128], buf2[10] = ""; FILE *fp; if (cfg.getValue("FILE", buf, sizeof(buf))) { if (strncmp(buf, "SD", 2) == 0) { strcpy(buf2, "/sd/"); } else if (strncmp(buf, "USB", 3) == 0) { usb = new MSCFileSystem("usb"); if (usb == NULL) return -1; strcpy(buf2, "/usb/"); } else { return -1; } // seq num strcpy(filename, buf2); strcat(filename, "weather.seq"); fp = fopen(filename, "r"); if (fp) { fscanf(fp, "%d", &seq); fclose(fp); } seq ++; // save seq num fp = fopen(filename, "w"); if (fp) { fprintf(fp, "%d", seq); fclose(fp); } // csv filename sprintf(filename, "%sw%05d.csv", buf2, seq); pc.printf("CSV Filename: %s\r\n", filename); } return 0; } int init_conf () { // load config LED_FILE_ON; if (cfg.read("/sd/" CONFIG_FILE)) { // from sd LED_FILE_OFF; cfg.setValue("DIR", "/sd/"); } else { local = new LocalFileSystem("local"); if (local == NULL) return -1; if (cfg.read("/local/" CONFIG_FILE)) { // from usb LED_FILE_OFF; cfg.setValue("DIR", "/local/"); } else { // none LED_FILE_OFF; return -1; } } #ifdef DEBUG pc.printf("Configration: %d\r\n", cfg.getCount()); #endif return 0; } char* chop (char *s) { int i; for (i = strlen(s) - 1; i >= 0; i --) { if (s[i] == ' ' || s[i] == '\n' || s[i] == '\r') { s[i] = 0; } else { break; } } return s; }