This is a test program for my Pachube API driver classes.
Dependencies: mbed ThermistorPack Pachube EthernetNetIf
main.cpp@1:3c57da48fc0c, 2010-10-14 (annotated)
- Committer:
- shintamainjp
- Date:
- Thu Oct 14 11:32:57 2010 +0000
- Revision:
- 1:3c57da48fc0c
- Parent:
- 0:20bfb9085fda
Hi. Mr.Jeff Mourich-san. Here is a test program for your case. Please try this :) [Updated a variable name.]
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:3c57da48fc0c | 44 | * @param interval_min probing interval time. |
shintamainjp | 0:20bfb9085fda | 45 | */ |
shintamainjp | 1:3c57da48fc0c | 46 | void probe_temperatures(const int interval_min) { |
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 | 1:3c57da48fc0c | 75 | * This is not exactlly same as interval_min[min.]. |
shintamainjp | 1:3c57da48fc0c | 76 | * But I think this codes are good starting point for you. |
shintamainjp | 0:20bfb9085fda | 77 | */ |
shintamainjp | 1:3c57da48fc0c | 78 | for (int i = 0; i < interval_min; 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 | 1:3c57da48fc0c | 94 | const int IntervalMinutes = 5; |
shintamainjp | 1:3c57da48fc0c | 95 | probe_temperatures(IntervalMinutes); |
shintamainjp | 0:20bfb9085fda | 96 | } |