FIAPの使用の例(温度ノード)

Dependencies:   EthernetNetIf NTPClient_NetServices TextLCD mbed

Committer:
yueee_yt
Date:
Wed Jan 04 12:49:14 2012 +0000
Revision:
0:e489b051cf96

        

Who changed what in which revision?

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