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 pachube.c
mark2r2 0:08a4d61cd84c 4
mark2r2 0:08a4d61cd84c 5 *************************************************************/
mark2r2 0:08a4d61cd84c 6 #include "PachubeV2CSV.h"
mark2r2 0:08a4d61cd84c 7 #include "TextLCD.h"
mark2r2 0:08a4d61cd84c 8 #include "appconf.h"
mark2r2 0:08a4d61cd84c 9 #define PACHUBE_CODE_OK 200
mark2r2 0:08a4d61cd84c 10 #define CONFIG_FILENAME "/local/PACHUBE.CFG"
mark2r2 0:08a4d61cd84c 11
mark2r2 0:08a4d61cd84c 12 extern float uSv;
mark2r2 0:08a4d61cd84c 13 extern float cpm;
mark2r2 0:08a4d61cd84c 14 extern TextLCD lcd;
mark2r2 0:08a4d61cd84c 15 extern int mode;
mark2r2 0:08a4d61cd84c 16 extern appconf_t appconf;
mark2r2 0:08a4d61cd84c 17 extern float long_cpm;
mark2r2 0:08a4d61cd84c 18 extern float long_uSv;
mark2r2 0:08a4d61cd84c 19
mark2r2 0:08a4d61cd84c 20 void convertDoubleToChar(double val, char *buf, size_t bufsiz) {
mark2r2 0:08a4d61cd84c 21 snprintf(buf, bufsiz, "%f", val);
mark2r2 0:08a4d61cd84c 22 }
mark2r2 0:08a4d61cd84c 23
mark2r2 0:08a4d61cd84c 24 void pachube_setup(appconf_t *appconf){
mark2r2 0:08a4d61cd84c 25 lcd.cls();
mark2r2 0:08a4d61cd84c 26 lcd.locate(0, 0);
mark2r2 0:08a4d61cd84c 27 lcd.printf("cfg file Reading...");
mark2r2 0:08a4d61cd84c 28 lcd.locate(0, 1);
mark2r2 0:08a4d61cd84c 29 lcd.printf("Setup: ");
mark2r2 0:08a4d61cd84c 30 appconf_init(appconf);
mark2r2 0:08a4d61cd84c 31 if (appconf_read(CONFIG_FILENAME, appconf) != 0) {
mark2r2 0:08a4d61cd84c 32 lcd.printf("[NG]");
mark2r2 0:08a4d61cd84c 33 error("Failure to read a configuration file.\n");
mark2r2 0:08a4d61cd84c 34 }
mark2r2 0:08a4d61cd84c 35 else{
mark2r2 0:08a4d61cd84c 36 lcd.printf("[OK]");
mark2r2 0:08a4d61cd84c 37 wait(1);
mark2r2 0:08a4d61cd84c 38 }
mark2r2 0:08a4d61cd84c 39 printf("pachube apikey %s\n",appconf->apikey);
mark2r2 0:08a4d61cd84c 40 }
mark2r2 0:08a4d61cd84c 41
mark2r2 0:08a4d61cd84c 42 int web_post(PachubeV2CSV *web, int feed_id, int stream_no, double value, HTTPClient *pClient) {
mark2r2 0:08a4d61cd84c 43 char value_text[16];
mark2r2 0:08a4d61cd84c 44 convertDoubleToChar(value, value_text, sizeof(value_text));
mark2r2 0:08a4d61cd84c 45 char stream_no_text[8];
mark2r2 0:08a4d61cd84c 46 stream_no_text[0] = "0123456789"[stream_no];
mark2r2 0:08a4d61cd84c 47 stream_no_text[1] = '\0';
mark2r2 0:08a4d61cd84c 48 return web->updateDataStream(feed_id, stream_no_text, std::string(value_text), pClient);
mark2r2 0:08a4d61cd84c 49
mark2r2 0:08a4d61cd84c 50 }
mark2r2 0:08a4d61cd84c 51
mark2r2 0:08a4d61cd84c 52 void pachube_output(PachubeV2CSV* web, HTTPClient *pClient){
mark2r2 0:08a4d61cd84c 53 int feed_id = atoi(appconf.feedid);
mark2r2 0:08a4d61cd84c 54
mark2r2 0:08a4d61cd84c 55 if (appconf.stream_nsv0 >= 0) {
mark2r2 0:08a4d61cd84c 56 if (web_post(web, feed_id, appconf.stream_nsv0,(double)uSv*1000, pClient) != PACHUBE_CODE_OK) {
mark2r2 0:08a4d61cd84c 57 lcd.printf("Checking Pachube status:x");
mark2r2 0:08a4d61cd84c 58 printf("upload failed -stream1 \n");
mark2r2 0:08a4d61cd84c 59 wait(3);
mark2r2 0:08a4d61cd84c 60 } else {
mark2r2 0:08a4d61cd84c 61 printf("upload -stream1 \r\n");
mark2r2 0:08a4d61cd84c 62 }
mark2r2 0:08a4d61cd84c 63 }
mark2r2 0:08a4d61cd84c 64
mark2r2 0:08a4d61cd84c 65 if (appconf.stream_cpm0 >= 0) {
mark2r2 0:08a4d61cd84c 66 if (web_post(web, feed_id, appconf.stream_cpm0, (double)cpm, pClient) != PACHUBE_CODE_OK){
mark2r2 0:08a4d61cd84c 67 lcd.printf("Checking Pachube status:x");
mark2r2 0:08a4d61cd84c 68 printf("upload failed -stream2 \n");
mark2r2 0:08a4d61cd84c 69 wait(3);
mark2r2 0:08a4d61cd84c 70 } else {
mark2r2 0:08a4d61cd84c 71 printf("upload -stream2 \r\n");
mark2r2 0:08a4d61cd84c 72 }
mark2r2 0:08a4d61cd84c 73 }
mark2r2 0:08a4d61cd84c 74
mark2r2 0:08a4d61cd84c 75 if (appconf.stream_nsvlong0 >= 0) {
mark2r2 0:08a4d61cd84c 76 if (web_post(web, feed_id, appconf.stream_nsvlong0, (double)long_uSv*1000, pClient) != PACHUBE_CODE_OK){ // 2011/08/23
mark2r2 0:08a4d61cd84c 77 lcd.printf("Checking Pachube status:x");
mark2r2 0:08a4d61cd84c 78 printf("upload failed -stream3 \n");
mark2r2 0:08a4d61cd84c 79 wait(3);
mark2r2 0:08a4d61cd84c 80 } else {
mark2r2 0:08a4d61cd84c 81 printf("upload -stream3 \r\n");
mark2r2 0:08a4d61cd84c 82 }
mark2r2 0:08a4d61cd84c 83 }
mark2r2 0:08a4d61cd84c 84 if (appconf.stream_cpmlong0 >= 0) {
mark2r2 0:08a4d61cd84c 85 if (web_post(web, feed_id, appconf.stream_cpmlong0, (double)long_cpm, pClient) != PACHUBE_CODE_OK){ // 2011/08/23
mark2r2 0:08a4d61cd84c 86 lcd.printf("Checking Pachube status:x");
mark2r2 0:08a4d61cd84c 87 printf("upload failed -stream4 \n");
mark2r2 0:08a4d61cd84c 88 wait(3);
mark2r2 0:08a4d61cd84c 89 } else {
mark2r2 0:08a4d61cd84c 90 printf("upload -stream4 \r\n");
mark2r2 0:08a4d61cd84c 91 }
mark2r2 0:08a4d61cd84c 92 }
mark2r2 0:08a4d61cd84c 93 }