This is a test program for my Pachube API driver classes.

Dependencies:   mbed ThermistorPack Pachube EthernetNetIf

Committer:
shintamainjp
Date:
Wed Oct 13 21:58:32 2010 +0000
Revision:
0:20bfb9085fda
Child:
1:3c57da48fc0c
Hi. Mr.Jeff Mourich-san. Here is a test program for your case. Please try this :)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:20bfb9085fda 1 /**
shintamainjp 0:20bfb9085fda 2 * A test program for Pachube API interface driver. (Version 0.0.1)
shintamainjp 0:20bfb9085fda 3 *
shintamainjp 0:20bfb9085fda 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
shintamainjp 0:20bfb9085fda 5 * http://shinta.main.jp/
shintamainjp 0:20bfb9085fda 6 */
shintamainjp 0:20bfb9085fda 7
shintamainjp 0:20bfb9085fda 8 #include "mbed.h"
shintamainjp 0:20bfb9085fda 9 #include "PachubeV2CSV.h"
shintamainjp 0:20bfb9085fda 10 #include "EthernetNetIf.h"
shintamainjp 0:20bfb9085fda 11 #include "HTTPClient.h"
shintamainjp 0:20bfb9085fda 12 #include "ThermistorMCP9701.h"
shintamainjp 0:20bfb9085fda 13
shintamainjp 0:20bfb9085fda 14 #define API_KEY "YourAPIKey"
shintamainjp 0:20bfb9085fda 15 #define FEED_ID 99999
shintamainjp 0:20bfb9085fda 16 #define STREAM_ID1 "TempNo.1"
shintamainjp 0:20bfb9085fda 17 #define STREAM_ID2 "TempNo.2"
shintamainjp 0:20bfb9085fda 18 #define STREAM_ID3 "TempNo.3"
shintamainjp 0:20bfb9085fda 19 #define STREAM_ID4 "TempNo.4"
shintamainjp 0:20bfb9085fda 20 #define STREAM_ID5 "TempNo.5"
shintamainjp 0:20bfb9085fda 21
shintamainjp 0:20bfb9085fda 22 PachubeV2CSV web(API_KEY);
shintamainjp 0:20bfb9085fda 23 EthernetNetIf eth;
shintamainjp 0:20bfb9085fda 24 ThermistorMCP9701 thermistor1(p15);
shintamainjp 0:20bfb9085fda 25 ThermistorMCP9701 thermistor2(p16);
shintamainjp 0:20bfb9085fda 26 ThermistorMCP9701 thermistor3(p17);
shintamainjp 0:20bfb9085fda 27 ThermistorMCP9701 thermistor4(p19);
shintamainjp 0:20bfb9085fda 28 ThermistorMCP9701 thermistor5(p20);
shintamainjp 0:20bfb9085fda 29
shintamainjp 0:20bfb9085fda 30 /**
shintamainjp 0:20bfb9085fda 31 * Convert double to char.
shintamainjp 0:20bfb9085fda 32 *
shintamainjp 0:20bfb9085fda 33 * @param val Value.
shintamainjp 0:20bfb9085fda 34 * @param buf A pointer to a buffer.
shintamainjp 0:20bfb9085fda 35 * @param bufsiz The buffer size.
shintamainjp 0:20bfb9085fda 36 */
shintamainjp 0:20bfb9085fda 37 void convertDoubleToChar(double val, char *buf, size_t bufsiz) {
shintamainjp 0:20bfb9085fda 38 snprintf(buf, bufsiz, "%f", val);
shintamainjp 0:20bfb9085fda 39 }
shintamainjp 0:20bfb9085fda 40
shintamainjp 0:20bfb9085fda 41 /**
shintamainjp 0:20bfb9085fda 42 * Probe temperatures.
shintamainjp 0:20bfb9085fda 43 *
shintamainjp 0:20bfb9085fda 44 * @param SPM Sample Per Minutes.
shintamainjp 0:20bfb9085fda 45 */
shintamainjp 0:20bfb9085fda 46 void probe_temperatures(const int SPM) {
shintamainjp 0:20bfb9085fda 47 int cnt = 0;
shintamainjp 0:20bfb9085fda 48 while (1) {
shintamainjp 0:20bfb9085fda 49 char val1[16];
shintamainjp 0:20bfb9085fda 50 char val2[16];
shintamainjp 0:20bfb9085fda 51 char val3[16];
shintamainjp 0:20bfb9085fda 52 char val4[16];
shintamainjp 0:20bfb9085fda 53 char val5[16];
shintamainjp 0:20bfb9085fda 54 convertDoubleToChar(thermistor1.read(), val1, sizeof(val1));
shintamainjp 0:20bfb9085fda 55 convertDoubleToChar(thermistor2.read(), val2, sizeof(val2));
shintamainjp 0:20bfb9085fda 56 convertDoubleToChar(thermistor3.read(), val3, sizeof(val3));
shintamainjp 0:20bfb9085fda 57 convertDoubleToChar(thermistor4.read(), val4, sizeof(val4));
shintamainjp 0:20bfb9085fda 58 convertDoubleToChar(thermistor5.read(), val5, sizeof(val5));
shintamainjp 0:20bfb9085fda 59 if (cnt == 0) {
shintamainjp 0:20bfb9085fda 60 printf("createNewDataStream(%d)\n", web.createNewDataStream(FEED_ID, STREAM_ID1, std::string(val1)));
shintamainjp 0:20bfb9085fda 61 printf("createNewDataStream(%d)\n", web.createNewDataStream(FEED_ID, STREAM_ID2, std::string(val2)));
shintamainjp 0:20bfb9085fda 62 printf("createNewDataStream(%d)\n", web.createNewDataStream(FEED_ID, STREAM_ID3, std::string(val3)));
shintamainjp 0:20bfb9085fda 63 printf("createNewDataStream(%d)\n", web.createNewDataStream(FEED_ID, STREAM_ID4, std::string(val4)));
shintamainjp 0:20bfb9085fda 64 printf("createNewDataStream(%d)\n", web.createNewDataStream(FEED_ID, STREAM_ID5, std::string(val5)));
shintamainjp 0:20bfb9085fda 65 } else {
shintamainjp 0:20bfb9085fda 66 printf("updateDataStream(%d)\n", web.updateDataStream(FEED_ID, STREAM_ID1, std::string(val1)));
shintamainjp 0:20bfb9085fda 67 printf("updateDataStream(%d)\n", web.updateDataStream(FEED_ID, STREAM_ID2, std::string(val2)));
shintamainjp 0:20bfb9085fda 68 printf("updateDataStream(%d)\n", web.updateDataStream(FEED_ID, STREAM_ID3, std::string(val3)));
shintamainjp 0:20bfb9085fda 69 printf("updateDataStream(%d)\n", web.updateDataStream(FEED_ID, STREAM_ID4, std::string(val4)));
shintamainjp 0:20bfb9085fda 70 printf("updateDataStream(%d)\n", web.updateDataStream(FEED_ID, STREAM_ID5, std::string(val5)));
shintamainjp 0:20bfb9085fda 71 }
shintamainjp 0:20bfb9085fda 72 cnt++;
shintamainjp 0:20bfb9085fda 73
shintamainjp 0:20bfb9085fda 74 /*
shintamainjp 0:20bfb9085fda 75 * This is not exactlly SPM[min.].
shintamainjp 0:20bfb9085fda 76 * But this is good for your starting points I think.
shintamainjp 0:20bfb9085fda 77 */
shintamainjp 0:20bfb9085fda 78 for (int i = 0; i < SPM; i++) {
shintamainjp 0:20bfb9085fda 79 /*
shintamainjp 0:20bfb9085fda 80 * Wait 60 seconds.
shintamainjp 0:20bfb9085fda 81 */
shintamainjp 0:20bfb9085fda 82 wait(60);
shintamainjp 0:20bfb9085fda 83 printf("%d[min.]\n", i + 1);
shintamainjp 0:20bfb9085fda 84 }
shintamainjp 0:20bfb9085fda 85 }
shintamainjp 0:20bfb9085fda 86 }
shintamainjp 0:20bfb9085fda 87
shintamainjp 0:20bfb9085fda 88 /**
shintamainjp 0:20bfb9085fda 89 * Entry point.
shintamainjp 0:20bfb9085fda 90 */
shintamainjp 0:20bfb9085fda 91 int main() {
shintamainjp 0:20bfb9085fda 92 eth.setup();
shintamainjp 0:20bfb9085fda 93
shintamainjp 0:20bfb9085fda 94 const int SamplePerMinutes = 5;
shintamainjp 0:20bfb9085fda 95 probe_temperatures(SamplePerMinutes);
shintamainjp 0:20bfb9085fda 96 }