IEEE1888(FIAP)のライブラリです まだWRITEプロトコルしかサポートしていません。 EthernetNetIf,HTTPClientライブラリが必要です。

Committer:
yueee_yt
Date:
Sun Jan 01 14:31:16 2012 +0000
Revision:
0:819284d7b7d9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yueee_yt 0:819284d7b7d9 1 // IEEE1888 / FIAP Uploader Library for Arduino
yueee_yt 0:819284d7b7d9 2 //
yueee_yt 0:819284d7b7d9 3 // 2011/09/19 ver.1 H.Inoue & H.Ochiai
yueee_yt 0:819284d7b7d9 4 // 2011/12/31 Ver.1 for mbed Y.Tauchi
yueee_yt 0:819284d7b7d9 5
yueee_yt 0:819284d7b7d9 6 // --------- FIAP.h ---------
yueee_yt 0:819284d7b7d9 7 #ifndef MBED_FIAP_H
yueee_yt 0:819284d7b7d9 8 #define MBED_FIAP_H
yueee_yt 0:819284d7b7d9 9
yueee_yt 0:819284d7b7d9 10 #include "mbed.h"
yueee_yt 0:819284d7b7d9 11 #include "HTTPClient.h"
yueee_yt 0:819284d7b7d9 12
yueee_yt 0:819284d7b7d9 13 // return code of post method
yueee_yt 0:819284d7b7d9 14 #define FIAP_UPLOAD_OK 0 // Succeeded
yueee_yt 0:819284d7b7d9 15 #define FIAP_UPLOAD_CONNFAIL 1 // Connection faild (Socket I/O error)
yueee_yt 0:819284d7b7d9 16 #define FIAP_UPLOAD_DNSERR 2 // DNS error
yueee_yt 0:819284d7b7d9 17 #define FIAP_UPLOAD_HTTPERR 3 // HTTP Server error (The response was not "200 OK")
yueee_yt 0:819284d7b7d9 18 #define FIAP_UPLOAD_FIAPERR 4 // FIAP Server error
yueee_yt 0:819284d7b7d9 19
yueee_yt 0:819284d7b7d9 20 // point element
yueee_yt 0:819284d7b7d9 21
yueee_yt 0:819284d7b7d9 22 /** fiap_element
yueee_yt 0:819284d7b7d9 23 *
yueee_yt 0:819284d7b7d9 24 *@param cid Point ID
yueee_yt 0:819284d7b7d9 25 *@param value Data
yueee_yt 0:819284d7b7d9 26 *@param t DateTime
yueee_yt 0:819284d7b7d9 27 *@param timezone Timezone ie JST="+09:00"
yueee_yt 0:819284d7b7d9 28 */
yueee_yt 0:819284d7b7d9 29 struct fiap_element {
yueee_yt 0:819284d7b7d9 30 const char* cid; // Set PointID
yueee_yt 0:819284d7b7d9 31 string value; // Set Value
yueee_yt 0:819284d7b7d9 32 struct tm *t; // Set DateTime
yueee_yt 0:819284d7b7d9 33 char* timezone; // Set Timezon JST="+09:00"
yueee_yt 0:819284d7b7d9 34 };
yueee_yt 0:819284d7b7d9 35
yueee_yt 0:819284d7b7d9 36 /** FIAP Class
yueee_yt 0:819284d7b7d9 37 *
yueee_yt 0:819284d7b7d9 38 * for mbed
yueee_yt 0:819284d7b7d9 39 *
yueee_yt 0:819284d7b7d9 40 *Example:
yueee_yt 0:819284d7b7d9 41 *@code
yueee_yt 0:819284d7b7d9 42 * #include "mbed.h"
yueee_yt 0:819284d7b7d9 43 * #include "EthernetNetIf.h"
yueee_yt 0:819284d7b7d9 44 * #include "NTPClient.h"
yueee_yt 0:819284d7b7d9 45 * #include "fiap.h"
yueee_yt 0:819284d7b7d9 46 *
yueee_yt 0:819284d7b7d9 47 * #define ntp_server "ntp server address"
yueee_yt 0:819284d7b7d9 48 *
yueee_yt 0:819284d7b7d9 49 * DigitalOut led1(LED1);
yueee_yt 0:819284d7b7d9 50 * DigitalOut led2(LED2);
yueee_yt 0:819284d7b7d9 51 * DigitalOut led3(LED3);
yueee_yt 0:819284d7b7d9 52 * DigitalOut led4(LED4);
yueee_yt 0:819284d7b7d9 53 *
yueee_yt 0:819284d7b7d9 54 * EthernetNetIf eth;
yueee_yt 0:819284d7b7d9 55 * NTPClient ntp;
yueee_yt 0:819284d7b7d9 56 * FIAP ieee1888("http://192.168.1.5/axis2/services/FIAPStorage","http://test.fiap.org/mbed_hello/");
yueee_yt 0:819284d7b7d9 57 *
yueee_yt 0:819284d7b7d9 58 * char timezone[] = "+09:00"; // JST
yueee_yt 0:819284d7b7d9 59 *
yueee_yt 0:819284d7b7d9 60 * struct fiap_element element[]={
yueee_yt 0:819284d7b7d9 61 * {"P1",NULL,NULL,timezone},
yueee_yt 0:819284d7b7d9 62 * {"P2",NULL,NULL,timezone},
yueee_yt 0:819284d7b7d9 63 * };
yueee_yt 0:819284d7b7d9 64 *
yueee_yt 0:819284d7b7d9 65 * int main() {
yueee_yt 0:819284d7b7d9 66 * led1=led2=led3=led4=0;
yueee_yt 0:819284d7b7d9 67 * ieee1888.debug_mode=true;
yueee_yt 0:819284d7b7d9 68 * //EthernetNetIf initialize
yueee_yt 0:819284d7b7d9 69 * EthernetErr ethErr = eth.setup();
yueee_yt 0:819284d7b7d9 70 * if (ethErr) {
yueee_yt 0:819284d7b7d9 71 * // lcd.locate(0,1);
yueee_yt 0:819284d7b7d9 72 * // lcd.printf("Error %d in setup.\n", ethErr);
yueee_yt 0:819284d7b7d9 73 * return -1;
yueee_yt 0:819284d7b7d9 74 * }
yueee_yt 0:819284d7b7d9 75 * led1=1;
yueee_yt 0:819284d7b7d9 76 * //NTPClient initia,lize
yueee_yt 0:819284d7b7d9 77 * Host server(IpAddr(), 123, ntp_server);
yueee_yt 0:819284d7b7d9 78 * NTPResult Ntpr=ntp.setTime(server);
yueee_yt 0:819284d7b7d9 79 * //UTC-->JST +9Hour(32400Sec)
yueee_yt 0:819284d7b7d9 80 * time_t ctTime;
yueee_yt 0:819284d7b7d9 81 * ctTime = time(NULL);
yueee_yt 0:819284d7b7d9 82 * ctTime+=32400;
yueee_yt 0:819284d7b7d9 83 * set_time(ctTime);
yueee_yt 0:819284d7b7d9 84 * led2=1;
yueee_yt 0:819284d7b7d9 85 *
yueee_yt 0:819284d7b7d9 86 * //post
yueee_yt 0:819284d7b7d9 87 * int i,j;
yueee_yt 0:819284d7b7d9 88 * for (j=0; j<10; j++) {
yueee_yt 0:819284d7b7d9 89 * //data initialize
yueee_yt 0:819284d7b7d9 90 * time_t seconds = time(NULL);
yueee_yt 0:819284d7b7d9 91 * for (i=0; i<2; i++) {
yueee_yt 0:819284d7b7d9 92 * char data[5];
yueee_yt 0:819284d7b7d9 93 * int s=j*pow((double)10,i);
yueee_yt 0:819284d7b7d9 94 * sprintf(data,"%03d",s);
yueee_yt 0:819284d7b7d9 95 * element[i].value=data;
yueee_yt 0:819284d7b7d9 96 * element[i].t=localtime(&seconds);
yueee_yt 0:819284d7b7d9 97 * }
yueee_yt 0:819284d7b7d9 98 * //do post
yueee_yt 0:819284d7b7d9 99 * int ret=ieee1888.post(element,2);
yueee_yt 0:819284d7b7d9 100 * if(ret!=0){
yueee_yt 0:819284d7b7d9 101 * while (1) {
yueee_yt 0:819284d7b7d9 102 * led3=!led3;
yueee_yt 0:819284d7b7d9 103 * wait(0.5);
yueee_yt 0:819284d7b7d9 104 * }
yueee_yt 0:819284d7b7d9 105 * return 0;
yueee_yt 0:819284d7b7d9 106 * }
yueee_yt 0:819284d7b7d9 107 * wait(1);
yueee_yt 0:819284d7b7d9 108 * }
yueee_yt 0:819284d7b7d9 109 * //finish
yueee_yt 0:819284d7b7d9 110 * while (1) {
yueee_yt 0:819284d7b7d9 111 * led4=!led4;
yueee_yt 0:819284d7b7d9 112 * wait(0.5);
yueee_yt 0:819284d7b7d9 113 * }
yueee_yt 0:819284d7b7d9 114 * }
yueee_yt 0:819284d7b7d9 115 *@endcode
yueee_yt 0:819284d7b7d9 116 */
yueee_yt 0:819284d7b7d9 117 class FIAP {
yueee_yt 0:819284d7b7d9 118 public:
yueee_yt 0:819284d7b7d9 119 /** Create fiap object
yueee_yt 0:819284d7b7d9 120 * @param Storage FIAP Storage Addrees (ie. "http://fiap.org/axis2/services/FIAPStorage")
yueee_yt 0:819284d7b7d9 121 * @param PointSetId Point Set ID(ie. http://test.fiap.jp/bldg_1/3F/)
yueee_yt 0:819284d7b7d9 122 */
yueee_yt 0:819284d7b7d9 123 FIAP(string Storage,string PointSetId);
yueee_yt 0:819284d7b7d9 124
yueee_yt 0:819284d7b7d9 125 /** post
yueee_yt 0:819284d7b7d9 126 * @param v data vaule
yueee_yt 0:819284d7b7d9 127 * @param esize number of data
yueee_yt 0:819284d7b7d9 128 */
yueee_yt 0:819284d7b7d9 129 int post(struct fiap_element* v, unsigned int esize);
yueee_yt 0:819284d7b7d9 130
yueee_yt 0:819284d7b7d9 131 /** debug_mode
yueee_yt 0:819284d7b7d9 132 * Output XML and Error
yueee_yt 0:819284d7b7d9 133 */
yueee_yt 0:819284d7b7d9 134 bool debug_mode;
yueee_yt 0:819284d7b7d9 135
yueee_yt 0:819284d7b7d9 136 private:
yueee_yt 0:819284d7b7d9 137 string _fiap_storage;
yueee_yt 0:819284d7b7d9 138 string _fiap_id_prefix;
yueee_yt 0:819284d7b7d9 139 string _soap_header;
yueee_yt 0:819284d7b7d9 140 string _soap_footer;
yueee_yt 0:819284d7b7d9 141 };
yueee_yt 0:819284d7b7d9 142
yueee_yt 0:819284d7b7d9 143 #endif