FIAPライブラリ 構造体の内容が変わっています
Dependents: temp_FIAP temp_FIAP_fetch tepco_demand BlueUSB_f_IEEE1888 ... more
fiap.h@0:d34a9148b19e, 2012-08-20 (annotated)
- Committer:
- yueee_yt
- Date:
- Mon Aug 20 00:40:00 2012 +0000
- Revision:
- 0:d34a9148b19e
- Child:
- 1:87095f0753a9
Ver2.0?beeta
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yueee_yt | 0:d34a9148b19e | 1 | // IEEE1888 / FIAP Uploader Library for Arduino |
yueee_yt | 0:d34a9148b19e | 2 | // |
yueee_yt | 0:d34a9148b19e | 3 | // 2011/09/19 ver.1 H.Inoue & H.Ochiai |
yueee_yt | 0:d34a9148b19e | 4 | // 2011/12/31 Ver.1 for mbed Y.Tauchi |
yueee_yt | 0:d34a9148b19e | 5 | |
yueee_yt | 0:d34a9148b19e | 6 | // --------- FIAP.h --------- |
yueee_yt | 0:d34a9148b19e | 7 | #ifndef MBED_FIAP_H |
yueee_yt | 0:d34a9148b19e | 8 | #define MBED_FIAP_H |
yueee_yt | 0:d34a9148b19e | 9 | |
yueee_yt | 0:d34a9148b19e | 10 | #include "mbed.h" |
yueee_yt | 0:d34a9148b19e | 11 | #include "HTTPClient.h" |
yueee_yt | 0:d34a9148b19e | 12 | |
yueee_yt | 0:d34a9148b19e | 13 | // return code of post method |
yueee_yt | 0:d34a9148b19e | 14 | #define FIAP_UPLOAD_OK 0 // Succeeded |
yueee_yt | 0:d34a9148b19e | 15 | #define FIAP_UPLOAD_CONNFAIL 1 // Connection faild (Socket I/O error) |
yueee_yt | 0:d34a9148b19e | 16 | #define FIAP_UPLOAD_DNSERR 2 // DNS error |
yueee_yt | 0:d34a9148b19e | 17 | #define FIAP_UPLOAD_HTTPERR 3 // HTTP Server error (The response was not "200 OK") |
yueee_yt | 0:d34a9148b19e | 18 | #define FIAP_UPLOAD_FIAPERR 4 // FIAP Server error |
yueee_yt | 0:d34a9148b19e | 19 | |
yueee_yt | 0:d34a9148b19e | 20 | // point element |
yueee_yt | 0:d34a9148b19e | 21 | |
yueee_yt | 0:d34a9148b19e | 22 | /** fiap_element |
yueee_yt | 0:d34a9148b19e | 23 | * |
yueee_yt | 0:d34a9148b19e | 24 | *@param cid Point ID |
yueee_yt | 0:d34a9148b19e | 25 | *@param value Data |
yueee_yt | 0:d34a9148b19e | 26 | *@param t DateTime |
yueee_yt | 0:d34a9148b19e | 27 | *@param timezone Timezone ie JST="+09:00" |
yueee_yt | 0:d34a9148b19e | 28 | */ |
yueee_yt | 0:d34a9148b19e | 29 | struct fiap_element { |
yueee_yt | 0:d34a9148b19e | 30 | const char* cid; // Set PointID |
yueee_yt | 0:d34a9148b19e | 31 | char* value; // Set Value |
yueee_yt | 0:d34a9148b19e | 32 | uint16_t year; // Year |
yueee_yt | 0:d34a9148b19e | 33 | uint8_t month; // Month 1 - 12 |
yueee_yt | 0:d34a9148b19e | 34 | uint8_t day; // Day 1 - 31 |
yueee_yt | 0:d34a9148b19e | 35 | uint8_t hour; // Hour 0 - 23 |
yueee_yt | 0:d34a9148b19e | 36 | uint8_t minute; // Minute 0 - 59 |
yueee_yt | 0:d34a9148b19e | 37 | uint8_t second; // Second 0 - 59 |
yueee_yt | 0:d34a9148b19e | 38 | //struct tm *t; // Set DateTime |
yueee_yt | 0:d34a9148b19e | 39 | char* timezone; // Set Timezon JST="+09:00" |
yueee_yt | 0:d34a9148b19e | 40 | }; |
yueee_yt | 0:d34a9148b19e | 41 | |
yueee_yt | 0:d34a9148b19e | 42 | /** FIAP Class |
yueee_yt | 0:d34a9148b19e | 43 | * |
yueee_yt | 0:d34a9148b19e | 44 | * for mbed |
yueee_yt | 0:d34a9148b19e | 45 | * |
yueee_yt | 0:d34a9148b19e | 46 | *Example: |
yueee_yt | 0:d34a9148b19e | 47 | *@code |
yueee_yt | 0:d34a9148b19e | 48 | * #include "mbed.h" |
yueee_yt | 0:d34a9148b19e | 49 | * #include "EthernetNetIf.h" |
yueee_yt | 0:d34a9148b19e | 50 | * #include "NTPClient.h" |
yueee_yt | 0:d34a9148b19e | 51 | * #include "fiap.h" |
yueee_yt | 0:d34a9148b19e | 52 | * |
yueee_yt | 0:d34a9148b19e | 53 | * #define ntp_server "ntp server address" |
yueee_yt | 0:d34a9148b19e | 54 | * |
yueee_yt | 0:d34a9148b19e | 55 | * DigitalOut led1(LED1); |
yueee_yt | 0:d34a9148b19e | 56 | * DigitalOut led2(LED2); |
yueee_yt | 0:d34a9148b19e | 57 | * DigitalOut led3(LED3); |
yueee_yt | 0:d34a9148b19e | 58 | * DigitalOut led4(LED4); |
yueee_yt | 0:d34a9148b19e | 59 | * |
yueee_yt | 0:d34a9148b19e | 60 | * EthernetNetIf eth; |
yueee_yt | 0:d34a9148b19e | 61 | * NTPClient ntp; |
yueee_yt | 0:d34a9148b19e | 62 | * FIAP ieee1888("http://192.168.1.5/axis2/services/FIAPStorage","http://test.fiap.org/mbed_hello/"); |
yueee_yt | 0:d34a9148b19e | 63 | * |
yueee_yt | 0:d34a9148b19e | 64 | * char timezone[] = "+09:00"; // JST |
yueee_yt | 0:d34a9148b19e | 65 | * |
yueee_yt | 0:d34a9148b19e | 66 | * struct fiap_element element[]={ |
yueee_yt | 0:d34a9148b19e | 67 | * {"P1",NULL,NULL,timezone}, |
yueee_yt | 0:d34a9148b19e | 68 | * {"P2",NULL,NULL,timezone}, |
yueee_yt | 0:d34a9148b19e | 69 | * }; |
yueee_yt | 0:d34a9148b19e | 70 | * |
yueee_yt | 0:d34a9148b19e | 71 | * int main() { |
yueee_yt | 0:d34a9148b19e | 72 | * led1=led2=led3=led4=0; |
yueee_yt | 0:d34a9148b19e | 73 | * ieee1888.debug_mode=true; |
yueee_yt | 0:d34a9148b19e | 74 | * //EthernetNetIf initialize |
yueee_yt | 0:d34a9148b19e | 75 | * EthernetErr ethErr = eth.setup(); |
yueee_yt | 0:d34a9148b19e | 76 | * if (ethErr) { |
yueee_yt | 0:d34a9148b19e | 77 | * // lcd.locate(0,1); |
yueee_yt | 0:d34a9148b19e | 78 | * // lcd.printf("Error %d in setup.\n", ethErr); |
yueee_yt | 0:d34a9148b19e | 79 | * return -1; |
yueee_yt | 0:d34a9148b19e | 80 | * } |
yueee_yt | 0:d34a9148b19e | 81 | * led1=1; |
yueee_yt | 0:d34a9148b19e | 82 | * //NTPClient initia,lize |
yueee_yt | 0:d34a9148b19e | 83 | * Host server(IpAddr(), 123, ntp_server); |
yueee_yt | 0:d34a9148b19e | 84 | * NTPResult Ntpr=ntp.setTime(server); |
yueee_yt | 0:d34a9148b19e | 85 | * //UTC-->JST +9Hour(32400Sec) |
yueee_yt | 0:d34a9148b19e | 86 | * time_t ctTime; |
yueee_yt | 0:d34a9148b19e | 87 | * ctTime = time(NULL); |
yueee_yt | 0:d34a9148b19e | 88 | * ctTime+=32400; |
yueee_yt | 0:d34a9148b19e | 89 | * set_time(ctTime); |
yueee_yt | 0:d34a9148b19e | 90 | * led2=1; |
yueee_yt | 0:d34a9148b19e | 91 | * |
yueee_yt | 0:d34a9148b19e | 92 | * //post |
yueee_yt | 0:d34a9148b19e | 93 | * int i,j; |
yueee_yt | 0:d34a9148b19e | 94 | * for (j=0; j<10; j++) { |
yueee_yt | 0:d34a9148b19e | 95 | * //data initialize |
yueee_yt | 0:d34a9148b19e | 96 | * time_t seconds = time(NULL); |
yueee_yt | 0:d34a9148b19e | 97 | * for (i=0; i<2; i++) { |
yueee_yt | 0:d34a9148b19e | 98 | * char data[5]; |
yueee_yt | 0:d34a9148b19e | 99 | * int s=j*pow((double)10,i); |
yueee_yt | 0:d34a9148b19e | 100 | * sprintf(data,"%03d",s); |
yueee_yt | 0:d34a9148b19e | 101 | * element[i].value=data; |
yueee_yt | 0:d34a9148b19e | 102 | * element[i].t=localtime(&seconds); |
yueee_yt | 0:d34a9148b19e | 103 | * } |
yueee_yt | 0:d34a9148b19e | 104 | * //do post |
yueee_yt | 0:d34a9148b19e | 105 | * int ret=ieee1888.post(element,2); |
yueee_yt | 0:d34a9148b19e | 106 | * if(ret!=0){ |
yueee_yt | 0:d34a9148b19e | 107 | * while (1) { |
yueee_yt | 0:d34a9148b19e | 108 | * led3=!led3; |
yueee_yt | 0:d34a9148b19e | 109 | * wait(0.5); |
yueee_yt | 0:d34a9148b19e | 110 | * } |
yueee_yt | 0:d34a9148b19e | 111 | * return 0; |
yueee_yt | 0:d34a9148b19e | 112 | * } |
yueee_yt | 0:d34a9148b19e | 113 | * wait(1); |
yueee_yt | 0:d34a9148b19e | 114 | * } |
yueee_yt | 0:d34a9148b19e | 115 | * //finish |
yueee_yt | 0:d34a9148b19e | 116 | * while (1) { |
yueee_yt | 0:d34a9148b19e | 117 | * led4=!led4; |
yueee_yt | 0:d34a9148b19e | 118 | * wait(0.5); |
yueee_yt | 0:d34a9148b19e | 119 | * } |
yueee_yt | 0:d34a9148b19e | 120 | * } |
yueee_yt | 0:d34a9148b19e | 121 | *@endcode |
yueee_yt | 0:d34a9148b19e | 122 | */ |
yueee_yt | 0:d34a9148b19e | 123 | class FIAP { |
yueee_yt | 0:d34a9148b19e | 124 | public: |
yueee_yt | 0:d34a9148b19e | 125 | /** Create fiap object(for WRITE) |
yueee_yt | 0:d34a9148b19e | 126 | * @param Storage FIAP Storage Addrees (ie. "http://fiap.org/axis2/services/FIAPStorage") |
yueee_yt | 0:d34a9148b19e | 127 | * @param PointSetId Point Set ID(ie. http://test.fiap.jp/bldg_1/3F/) |
yueee_yt | 0:d34a9148b19e | 128 | */ |
yueee_yt | 0:d34a9148b19e | 129 | FIAP(char Storage[],char PointSetId[]); |
yueee_yt | 0:d34a9148b19e | 130 | /** Create fiap object(for FETCH) |
yueee_yt | 0:d34a9148b19e | 131 | * @param Storage FIAP Storage Addrees (ie. "http://fiap.org/axis2/services/FIAPStorage") |
yueee_yt | 0:d34a9148b19e | 132 | */ |
yueee_yt | 0:d34a9148b19e | 133 | FIAP(char Storage[]); |
yueee_yt | 0:d34a9148b19e | 134 | |
yueee_yt | 0:d34a9148b19e | 135 | /** post |
yueee_yt | 0:d34a9148b19e | 136 | * @param v data vaule |
yueee_yt | 0:d34a9148b19e | 137 | * @param esize number of data |
yueee_yt | 0:d34a9148b19e | 138 | */ |
yueee_yt | 0:d34a9148b19e | 139 | int post(struct fiap_element* v, unsigned int esize); |
yueee_yt | 0:d34a9148b19e | 140 | |
yueee_yt | 0:d34a9148b19e | 141 | /** fetch_maximum |
yueee_yt | 0:d34a9148b19e | 142 | * @param cid Point ID s |
yueee_yt | 0:d34a9148b19e | 143 | * @param v Return Values |
yueee_yt | 0:d34a9148b19e | 144 | * @param esize <=2 |
yueee_yt | 0:d34a9148b19e | 145 | * @return network_error |
yueee_yt | 0:d34a9148b19e | 146 | */ |
yueee_yt | 0:d34a9148b19e | 147 | int fetch_last_data(struct fiap_element* v,unsigned int esize); |
yueee_yt | 0:d34a9148b19e | 148 | int fetch_last_data(struct fiap_element * v); |
yueee_yt | 0:d34a9148b19e | 149 | |
yueee_yt | 0:d34a9148b19e | 150 | /** debug_mode |
yueee_yt | 0:d34a9148b19e | 151 | * Output XML and Error |
yueee_yt | 0:d34a9148b19e | 152 | */ |
yueee_yt | 0:d34a9148b19e | 153 | bool debug_mode; |
yueee_yt | 0:d34a9148b19e | 154 | |
yueee_yt | 0:d34a9148b19e | 155 | private: |
yueee_yt | 0:d34a9148b19e | 156 | char _fiap_storage[100]; |
yueee_yt | 0:d34a9148b19e | 157 | char _fiap_id_prefix[100]; |
yueee_yt | 0:d34a9148b19e | 158 | char _soap_header[256]; |
yueee_yt | 0:d34a9148b19e | 159 | char _soap_footer[256]; |
yueee_yt | 0:d34a9148b19e | 160 | char _soap_action[100]; |
yueee_yt | 0:d34a9148b19e | 161 | }; |
yueee_yt | 0:d34a9148b19e | 162 | |
yueee_yt | 0:d34a9148b19e | 163 | #endif |