FIAPライブラリ 構造体の内容が変わっています
Dependents: temp_FIAP temp_FIAP_fetch tepco_demand BlueUSB_f_IEEE1888 ... more
Diff: fiap.h
- Revision:
- 0:d34a9148b19e
- Child:
- 1:87095f0753a9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fiap.h Mon Aug 20 00:40:00 2012 +0000 @@ -0,0 +1,163 @@ +// IEEE1888 / FIAP Uploader Library for Arduino +// +// 2011/09/19 ver.1 H.Inoue & H.Ochiai +// 2011/12/31 Ver.1 for mbed Y.Tauchi + +// --------- FIAP.h --------- +#ifndef MBED_FIAP_H +#define MBED_FIAP_H + +#include "mbed.h" +#include "HTTPClient.h" + +// return code of post method +#define FIAP_UPLOAD_OK 0 // Succeeded +#define FIAP_UPLOAD_CONNFAIL 1 // Connection faild (Socket I/O error) +#define FIAP_UPLOAD_DNSERR 2 // DNS error +#define FIAP_UPLOAD_HTTPERR 3 // HTTP Server error (The response was not "200 OK") +#define FIAP_UPLOAD_FIAPERR 4 // FIAP Server error + +// point element + +/** fiap_element + * + *@param cid Point ID + *@param value Data + *@param t DateTime + *@param timezone Timezone ie JST="+09:00" + */ +struct fiap_element { + const char* cid; // Set PointID + char* value; // Set Value + uint16_t year; // Year + uint8_t month; // Month 1 - 12 + uint8_t day; // Day 1 - 31 + uint8_t hour; // Hour 0 - 23 + uint8_t minute; // Minute 0 - 59 + uint8_t second; // Second 0 - 59 + //struct tm *t; // Set DateTime + char* timezone; // Set Timezon JST="+09:00" +}; + +/** FIAP Class + * + * for mbed + * + *Example: + *@code + * #include "mbed.h" + * #include "EthernetNetIf.h" + * #include "NTPClient.h" + * #include "fiap.h" + * + * #define ntp_server "ntp server address" + * + * DigitalOut led1(LED1); + * DigitalOut led2(LED2); + * DigitalOut led3(LED3); + * DigitalOut led4(LED4); + * + * EthernetNetIf eth; + * NTPClient ntp; + * FIAP ieee1888("http://192.168.1.5/axis2/services/FIAPStorage","http://test.fiap.org/mbed_hello/"); + * + * char timezone[] = "+09:00"; // JST + * + * struct fiap_element element[]={ + * {"P1",NULL,NULL,timezone}, + * {"P2",NULL,NULL,timezone}, + * }; + * + * int main() { + * led1=led2=led3=led4=0; + * ieee1888.debug_mode=true; + * //EthernetNetIf initialize + * EthernetErr ethErr = eth.setup(); + * if (ethErr) { + * // lcd.locate(0,1); + * // lcd.printf("Error %d in setup.\n", ethErr); + * return -1; + * } + * led1=1; + * //NTPClient initia,lize + * Host server(IpAddr(), 123, ntp_server); + * NTPResult Ntpr=ntp.setTime(server); + * //UTC-->JST +9Hour(32400Sec) + * time_t ctTime; + * ctTime = time(NULL); + * ctTime+=32400; + * set_time(ctTime); + * led2=1; + * + * //post + * int i,j; + * for (j=0; j<10; j++) { + * //data initialize + * time_t seconds = time(NULL); + * for (i=0; i<2; i++) { + * char data[5]; + * int s=j*pow((double)10,i); + * sprintf(data,"%03d",s); + * element[i].value=data; + * element[i].t=localtime(&seconds); + * } + * //do post + * int ret=ieee1888.post(element,2); + * if(ret!=0){ + * while (1) { + * led3=!led3; + * wait(0.5); + * } + * return 0; + * } + * wait(1); + * } + * //finish + * while (1) { + * led4=!led4; + * wait(0.5); + * } + * } + *@endcode + */ +class FIAP { +public: + /** Create fiap object(for WRITE) + * @param Storage FIAP Storage Addrees (ie. "http://fiap.org/axis2/services/FIAPStorage") + * @param PointSetId Point Set ID(ie. http://test.fiap.jp/bldg_1/3F/) + */ + FIAP(char Storage[],char PointSetId[]); + /** Create fiap object(for FETCH) + * @param Storage FIAP Storage Addrees (ie. "http://fiap.org/axis2/services/FIAPStorage") + */ + FIAP(char Storage[]); + + /** post + * @param v data vaule + * @param esize number of data + */ + int post(struct fiap_element* v, unsigned int esize); + + /** fetch_maximum + * @param cid Point ID s + * @param v Return Values + * @param esize <=2 + * @return network_error + */ + int fetch_last_data(struct fiap_element* v,unsigned int esize); + int fetch_last_data(struct fiap_element * v); + + /** debug_mode + * Output XML and Error + */ + bool debug_mode; + +private: + char _fiap_storage[100]; + char _fiap_id_prefix[100]; + char _soap_header[256]; + char _soap_footer[256]; + char _soap_action[100]; +}; + +#endif