FIAPライブラリ 構造体の内容が変わっています

Dependents:   temp_FIAP temp_FIAP_fetch tepco_demand BlueUSB_f_IEEE1888 ... more

Committer:
yueee_yt
Date:
Wed Aug 22 00:04:32 2012 +0000
Revision:
5:f0b636449aa3
Parent:
4:edbcc1833b58
Child:
6:52e95ea60ec1
fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yueee_yt 0:d34a9148b19e 1 #include "fiap.h"
yueee_yt 0:d34a9148b19e 2 #include "mbed.h"
yueee_yt 0:d34a9148b19e 3 #include "stdio.h"
yueee_yt 0:d34a9148b19e 4 #include "spdomparser.hpp"
yueee_yt 0:d34a9148b19e 5 #include "spxmlnode.hpp"
yueee_yt 0:d34a9148b19e 6 #include "spxmlhandle.hpp"
yueee_yt 0:d34a9148b19e 7
yueee_yt 2:2ba00be13585 8 char outBuffer[1500+1]= {0};
yueee_yt 0:d34a9148b19e 9 char _soap_text[800];
yueee_yt 0:d34a9148b19e 10 char uuid[37];
yueee_yt 2:2ba00be13585 11 // HTTPClient http;
yueee_yt 2:2ba00be13585 12 // HTTPText InData("text/html", 800);
yueee_yt 2:2ba00be13585 13 // HTTPStream stream;
yueee_yt 0:d34a9148b19e 14 //char str[50];
yueee_yt 0:d34a9148b19e 15 //int yy,mo,dd,hh,mm,ss;
yueee_yt 0:d34a9148b19e 16 //char requestBuffer[50];
yueee_yt 0:d34a9148b19e 17 //int i,ii,ll;
yueee_yt 0:d34a9148b19e 18 //HTTPResult r;
yueee_yt 0:d34a9148b19e 19 //FIAP::FIAP(string Storage,string PointSetId) {
yueee_yt 0:d34a9148b19e 20
yueee_yt 2:2ba00be13585 21 void FIAP::post_xml_initialize(void)
yueee_yt 2:2ba00be13585 22 {
yueee_yt 0:d34a9148b19e 23 strcpy(_soap_header,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
yueee_yt 2:2ba00be13585 24 strcat(_soap_header,"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">");
yueee_yt 2:2ba00be13585 25 strcat(_soap_header,"<soapenv:Body>");
yueee_yt 2:2ba00be13585 26 strcat(_soap_header,"<ns2:dataRQ xmlns:ns2=\"http://soap.fiap.org/\">");
yueee_yt 2:2ba00be13585 27 strcat(_soap_header,"<transport xmlns=\"http://gutp.jp/fiap/2009/11/\">");
yueee_yt 2:2ba00be13585 28 strcat(_soap_header,"<body>");
yueee_yt 2:2ba00be13585 29 strcpy(_soap_footer,"</body>");
yueee_yt 2:2ba00be13585 30 strcat(_soap_footer,"</transport>");
yueee_yt 0:d34a9148b19e 31 strcat(_soap_footer,"</ns2:dataRQ>");
yueee_yt 0:d34a9148b19e 32 strcat(_soap_footer,"</soapenv:Body>");
yueee_yt 0:d34a9148b19e 33 strcat(_soap_footer,"</soapenv:Envelope>");
yueee_yt 0:d34a9148b19e 34 strcat(_soap_footer,"\r\n\r\n");
yueee_yt 0:d34a9148b19e 35 strcpy(_soap_action,"\"http://soap.fiap.org/data\"");
yueee_yt 0:d34a9148b19e 36 }
yueee_yt 2:2ba00be13585 37 void FIAP::fetch_xml_initialize(void)
yueee_yt 2:2ba00be13585 38 {
yueee_yt 0:d34a9148b19e 39 strcpy(_soap_header,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
yueee_yt 2:2ba00be13585 40 strcat(_soap_header,"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">");
yueee_yt 2:2ba00be13585 41 strcat(_soap_header,"<soapenv:Body>");
yueee_yt 2:2ba00be13585 42 strcat(_soap_header,"<ns2:queryRQ xmlns:ns2=\"http://soap.fiap.org/\">");
yueee_yt 2:2ba00be13585 43 strcat(_soap_header,"<transport xmlns=\"http://gutp.jp/fiap/2009/11/\">");
yueee_yt 2:2ba00be13585 44 strcat(_soap_header,"<header>");
yueee_yt 0:d34a9148b19e 45 strcpy(_soap_footer,"</header>");
yueee_yt 0:d34a9148b19e 46 strcat(_soap_footer,"</transport>");
yueee_yt 0:d34a9148b19e 47 strcat(_soap_footer,"</ns2:queryRQ>");
yueee_yt 0:d34a9148b19e 48 strcat(_soap_footer,"</soapenv:Body>");
yueee_yt 0:d34a9148b19e 49 strcat(_soap_footer,"</soapenv:Envelope>");
yueee_yt 0:d34a9148b19e 50 strcat(_soap_footer,"\r\n\r\n");
yueee_yt 0:d34a9148b19e 51 strcpy(_soap_action,"\"http://soap.fiap.org/query\"");
yueee_yt 0:d34a9148b19e 52 }
yueee_yt 0:d34a9148b19e 53
yueee_yt 2:2ba00be13585 54 FIAP::FIAP(char Storage[])
yueee_yt 2:2ba00be13585 55 {
yueee_yt 2:2ba00be13585 56 debug_mode=false;
yueee_yt 2:2ba00be13585 57 strcpy(_fiap_storage,Storage);
yueee_yt 2:2ba00be13585 58 }
yueee_yt 2:2ba00be13585 59
yueee_yt 2:2ba00be13585 60 int FIAP::fetch_last_data(struct fiap_element* v,unsigned int esize)
yueee_yt 2:2ba00be13585 61 {
yueee_yt 0:d34a9148b19e 62 HTTPClient http;
yueee_yt 0:d34a9148b19e 63 int i,ii,ll;
yueee_yt 2:2ba00be13585 64 fetch_xml_initialize();
yueee_yt 0:d34a9148b19e 65 strcpy( _soap_text, _soap_header);
yueee_yt 0:d34a9148b19e 66 sprintf(uuid,"%04x%04x-%04x-%04x-%04x-%04x%04x%04x",rand()%0x10000,rand()%0x10000,rand()%0x10000,rand()%1000|0x4000,rand()%0x1000|0x8000,rand()%0x10000,rand()%10000,(rand()+1)%0x10000);
yueee_yt 0:d34a9148b19e 67 strcat( _soap_text , "<query id=\"");
yueee_yt 0:d34a9148b19e 68 strcat( _soap_text , uuid);
yueee_yt 0:d34a9148b19e 69 strcat( _soap_text , "\" type=\"storage\">");
yueee_yt 0:d34a9148b19e 70 for (i=0; i<esize; i++) {
yueee_yt 0:d34a9148b19e 71 strcat(_soap_text , "<key id=\"");
yueee_yt 0:d34a9148b19e 72 strcat(_soap_text , v[i].cid);
yueee_yt 0:d34a9148b19e 73 strcat(_soap_text , "\" attrName=\"time\" select=\"maximum\"/>");
yueee_yt 0:d34a9148b19e 74 }
yueee_yt 0:d34a9148b19e 75 strcat(_soap_text , "</query>");
yueee_yt 0:d34a9148b19e 76 strcat(_soap_text , _soap_footer);
yueee_yt 0:d34a9148b19e 77 if (debug_mode) {
yueee_yt 0:d34a9148b19e 78 printf(_fiap_storage);
yueee_yt 0:d34a9148b19e 79 printf("\r\n");
yueee_yt 0:d34a9148b19e 80 printf(_soap_text);
yueee_yt 0:d34a9148b19e 81 printf("<<< Request(end)\n");
yueee_yt 0:d34a9148b19e 82 }
yueee_yt 2:2ba00be13585 83 //HTTPText InData("text/html", 800);
yueee_yt 2:2ba00be13585 84 //InData.set(_soap_text);
yueee_yt 2:2ba00be13585 85 HTTPText InData(_soap_text);
yueee_yt 3:7b144e1a52db 86 char rstr[800];
yueee_yt 3:7b144e1a52db 87 HTTPText stream(rstr,800);
yueee_yt 2:2ba00be13585 88 //stream.readNext((byte*)outBuffer,1500);
yueee_yt 4:edbcc1833b58 89 if (debug_mode)printf("post.start \n\r");
yueee_yt 2:2ba00be13585 90 HTTPResult r = http.postXML(_fiap_storage,"http://soap.fiap.org/query",InData,&stream);
yueee_yt 4:edbcc1833b58 91 if (debug_mode) printf("post.end \n\r");
yueee_yt 5:f0b636449aa3 92 if (debug_mode){
yueee_yt 5:f0b636449aa3 93 printf("****\n\r");
yueee_yt 5:f0b636449aa3 94 printf(rstr);
yueee_yt 5:f0b636449aa3 95 printf("\n\r****\n\r");
yueee_yt 5:f0b636449aa3 96 }
yueee_yt 3:7b144e1a52db 97 if(!r) {
yueee_yt 3:7b144e1a52db 98 if (debug_mode)printf("Success \n");
yueee_yt 3:7b144e1a52db 99 } else {
yueee_yt 3:7b144e1a52db 100
yueee_yt 3:7b144e1a52db 101 if (r==HTTP_PROCESSING) {
yueee_yt 3:7b144e1a52db 102 if (debug_mode)printf("Processing \n");
yueee_yt 3:7b144e1a52db 103 return -1;
yueee_yt 3:7b144e1a52db 104 }
yueee_yt 3:7b144e1a52db 105 if (r==HTTP_PARSE) {
yueee_yt 3:7b144e1a52db 106 if (debug_mode) printf("URI Parse error \n");
yueee_yt 3:7b144e1a52db 107 return -1;
yueee_yt 3:7b144e1a52db 108 }
yueee_yt 3:7b144e1a52db 109 if (r==HTTP_DNS) {
yueee_yt 3:7b144e1a52db 110 if (debug_mode) printf("Could not resolve name\n");
yueee_yt 3:7b144e1a52db 111 return -1;
yueee_yt 3:7b144e1a52db 112 }
yueee_yt 3:7b144e1a52db 113 if (r==HTTP_PRTCL) {
yueee_yt 3:7b144e1a52db 114 if (debug_mode)printf("Protocol error\n");
yueee_yt 3:7b144e1a52db 115 return -1;
yueee_yt 3:7b144e1a52db 116 }
yueee_yt 3:7b144e1a52db 117 if (r==HTTP_NOTFOUND) {
yueee_yt 3:7b144e1a52db 118 if (debug_mode)printf("HTTP 404 Error\n");
yueee_yt 3:7b144e1a52db 119 return -1;
yueee_yt 3:7b144e1a52db 120 }
yueee_yt 3:7b144e1a52db 121 if (r==HTTP_REFUSED) {
yueee_yt 3:7b144e1a52db 122 if (debug_mode) printf("HTTP 403 Error \n");
yueee_yt 3:7b144e1a52db 123 return -1;
yueee_yt 3:7b144e1a52db 124 }
yueee_yt 3:7b144e1a52db 125 if (r==HTTP_ERROR) {
yueee_yt 3:7b144e1a52db 126 if (debug_mode)printf("HTTP xxx error %d \n ",r);
yueee_yt 3:7b144e1a52db 127 return -1;
yueee_yt 3:7b144e1a52db 128 }
yueee_yt 3:7b144e1a52db 129 if (r==HTTP_TIMEOUT) {
yueee_yt 3:7b144e1a52db 130 if (debug_mode)printf("Connection timeout\n");
yueee_yt 3:7b144e1a52db 131 return -1;
yueee_yt 3:7b144e1a52db 132 }
yueee_yt 3:7b144e1a52db 133 if (r==HTTP_CONN) {
yueee_yt 3:7b144e1a52db 134 if (debug_mode)printf("Connection error\n");
yueee_yt 3:7b144e1a52db 135 return -1;
yueee_yt 3:7b144e1a52db 136 }
yueee_yt 0:d34a9148b19e 137 }
yueee_yt 0:d34a9148b19e 138 SP_XmlNodeList * points;
yueee_yt 3:7b144e1a52db 139 if (strlen(rstr)>0) {
yueee_yt 0:d34a9148b19e 140 if (debug_mode)printf("\n\r data Get Ok\n\r");
yueee_yt 0:d34a9148b19e 141 SP_XmlDomParser parser;
yueee_yt 3:7b144e1a52db 142 parser.append(rstr,strlen(rstr));
yueee_yt 0:d34a9148b19e 143 //stream.readNext((byte*)outBuffer,4096);
yueee_yt 0:d34a9148b19e 144 SP_XmlHandle rootHandle(parser.getDocument()->getRootElement());
yueee_yt 0:d34a9148b19e 145 SP_XmlHandle transport = rootHandle.getChild(0).getChild(0).getChild(0);
yueee_yt 0:d34a9148b19e 146 SP_XmlElementNode * fiapError = transport.getChild("header").getChild("error").toElement();
yueee_yt 2:2ba00be13585 147 int yy,mo,dd,hh,mm,ss;
yueee_yt 2:2ba00be13585 148 char str[50];
yueee_yt 4:edbcc1833b58 149 if (debug_mode) printf ("%s \n",transport.toElement()->getName());
yueee_yt 2:2ba00be13585 150 if (fiapError==NULL) {
yueee_yt 2:2ba00be13585 151 SP_XmlElementNode * values =transport.getChild("body").toElement();
yueee_yt 2:2ba00be13585 152 points=(SP_XmlNodeList *)values->getChildren() ;
yueee_yt 2:2ba00be13585 153 int j=points->getLength();
yueee_yt 2:2ba00be13585 154 if (debug_mode) printf("GetValues of No %d \n\r",j);
yueee_yt 2:2ba00be13585 155 SP_XmlElementNode *data_point_node,*data_value_node;
yueee_yt 2:2ba00be13585 156 SP_XmlCDataNode *data_value_cnode;
yueee_yt 2:2ba00be13585 157 for (i=0; i<j; i++) {
yueee_yt 2:2ba00be13585 158 SP_XmlHandle data_handle(points->get(i));//Point
yueee_yt 2:2ba00be13585 159 data_point_node=data_handle.toElement();
yueee_yt 2:2ba00be13585 160 data_value_node=data_handle.getChild("value").toElement();
yueee_yt 2:2ba00be13585 161 data_value_cnode=data_handle.getChild("value").getChild(0).toCData();
yueee_yt 2:2ba00be13585 162 if (debug_mode) printf("PointID=%s \r\n",data_point_node->getAttrValue("id"));
yueee_yt 2:2ba00be13585 163 if (debug_mode) printf("date=%s \r\n",data_value_node->getAttrValue("time"));
yueee_yt 2:2ba00be13585 164 if (debug_mode) printf("data=%s \r\n",data_value_cnode->getText());
yueee_yt 2:2ba00be13585 165 for (ii=0; ii<esize; ii++) {
yueee_yt 2:2ba00be13585 166 if (strcmp(v[ii].cid,data_point_node->getAttrValue("id"))==0) {
yueee_yt 2:2ba00be13585 167 sprintf(str,"%s",data_value_node->getAttrValue("time"));
yueee_yt 2:2ba00be13585 168 ll=sscanf(str,"%d-%d-%dT%d:%d:%d.",&yy,&mo,&dd,&hh,&mm,&ss);
yueee_yt 2:2ba00be13585 169 if (debug_mode)printf("date convert no %d (%d/%d/%d %d:%d:%d) \r\n",ll,yy,mo,dd,hh,mm,ss);
yueee_yt 2:2ba00be13585 170 v[ii].year=yy;
yueee_yt 2:2ba00be13585 171 v[ii].month=mo;
yueee_yt 2:2ba00be13585 172 v[ii].day=dd;
yueee_yt 2:2ba00be13585 173 v[ii].hour=hh;
yueee_yt 2:2ba00be13585 174 v[ii].minute=mm;
yueee_yt 2:2ba00be13585 175 v[ii].second=ss;
yueee_yt 2:2ba00be13585 176 sprintf(v[ii].value,"%s",data_value_cnode->getText());
yueee_yt 2:2ba00be13585 177 }
yueee_yt 2:2ba00be13585 178 }
yueee_yt 2:2ba00be13585 179 }
yueee_yt 2:2ba00be13585 180 } else {
yueee_yt 2:2ba00be13585 181 printf("ERROR\n\r");
yueee_yt 2:2ba00be13585 182 }
yueee_yt 2:2ba00be13585 183 } else {
yueee_yt 2:2ba00be13585 184 if (debug_mode)printf("error\n\r");
yueee_yt 2:2ba00be13585 185 }
yueee_yt 2:2ba00be13585 186 return 0;
yueee_yt 2:2ba00be13585 187 }
yueee_yt 0:d34a9148b19e 188
yueee_yt 2:2ba00be13585 189 int FIAP::fetch_last_data(struct fiap_element *v)
yueee_yt 2:2ba00be13585 190 {
yueee_yt 2:2ba00be13585 191 HTTPClient http;
yueee_yt 2:2ba00be13585 192 int ll;
yueee_yt 3:7b144e1a52db 193 char rstr[800];
yueee_yt 2:2ba00be13585 194 fetch_xml_initialize();
yueee_yt 2:2ba00be13585 195 strcpy(_soap_text, _soap_header);
yueee_yt 2:2ba00be13585 196 sprintf(uuid,"%04x%04x-%04x-%04x-%04x-%04x%04x%04x",rand()%0x10000,rand()%0x10000,rand()%0x10000,rand()%1000|0x4000,rand()%0x1000|0x8000,rand()%0x10000,rand()%10000,(rand()+1)%0x10000);
yueee_yt 2:2ba00be13585 197 strcat(_soap_text , "<query id=\"");
yueee_yt 2:2ba00be13585 198 strcat(_soap_text , uuid);
yueee_yt 2:2ba00be13585 199 strcat(_soap_text , "\" type=\"storage\">");
yueee_yt 2:2ba00be13585 200 strcat(_soap_text , "<key id=\"");
yueee_yt 2:2ba00be13585 201 strcat(_soap_text , v->cid);
yueee_yt 2:2ba00be13585 202 strcat(_soap_text , "\" attrName=\"time\" select=\"maximum\"/>");
yueee_yt 2:2ba00be13585 203 strcat(_soap_text , "</query>");
yueee_yt 2:2ba00be13585 204 strcat(_soap_text , _soap_footer);
yueee_yt 2:2ba00be13585 205 if (debug_mode) {
yueee_yt 2:2ba00be13585 206 printf("\r\n");
yueee_yt 2:2ba00be13585 207 printf(_fiap_storage);
yueee_yt 2:2ba00be13585 208 printf("\r\n");
yueee_yt 2:2ba00be13585 209 printf(_soap_text);
yueee_yt 2:2ba00be13585 210 printf("<<< Request(end)\n");
yueee_yt 2:2ba00be13585 211 }
yueee_yt 2:2ba00be13585 212 // http.setRequestHeader("Content-Type","text/xml; charset=UTF-8");
yueee_yt 2:2ba00be13585 213 // http.setRequestHeader("SOAPAction","\"http://soap.fiap.org/query\"");
yueee_yt 2:2ba00be13585 214 HTTPText InData(_soap_text);
yueee_yt 3:7b144e1a52db 215 HTTPText stream(rstr,800);
yueee_yt 2:2ba00be13585 216 // stream.readNext((byte*)outBuffer,strlen(outBuffer));
yueee_yt 4:edbcc1833b58 217 if (debug_mode)printf("post.start \n\r");
yueee_yt 2:2ba00be13585 218 HTTPResult r = http.postXML(_fiap_storage,"http://soap.fiap.org/query",InData,&stream);
yueee_yt 4:edbcc1833b58 219 if (debug_mode)printf("post.end \n\r");
yueee_yt 3:7b144e1a52db 220 if(!r) {
yueee_yt 3:7b144e1a52db 221 if (debug_mode)printf("Success \n");
yueee_yt 3:7b144e1a52db 222 } else {
yueee_yt 3:7b144e1a52db 223 if (r==HTTP_PROCESSING) {
yueee_yt 3:7b144e1a52db 224 if (debug_mode)printf("Processing \n");
yueee_yt 3:7b144e1a52db 225 return -1;
yueee_yt 3:7b144e1a52db 226 }
yueee_yt 3:7b144e1a52db 227 if (r==HTTP_PARSE) {
yueee_yt 3:7b144e1a52db 228 if (debug_mode) printf("URI Parse error \n");
yueee_yt 3:7b144e1a52db 229 return -1;
yueee_yt 3:7b144e1a52db 230 }
yueee_yt 3:7b144e1a52db 231 if (r==HTTP_DNS) {
yueee_yt 3:7b144e1a52db 232 if (debug_mode) printf("Could not resolve name\n");
yueee_yt 3:7b144e1a52db 233 return -1;
yueee_yt 3:7b144e1a52db 234 }
yueee_yt 3:7b144e1a52db 235 if (r==HTTP_PRTCL) {
yueee_yt 3:7b144e1a52db 236 if (debug_mode)printf("Protocol error\n");
yueee_yt 3:7b144e1a52db 237 return -1;
yueee_yt 3:7b144e1a52db 238 }
yueee_yt 3:7b144e1a52db 239 if (r==HTTP_NOTFOUND) {
yueee_yt 3:7b144e1a52db 240 if (debug_mode)printf("HTTP 404 Error\n");
yueee_yt 3:7b144e1a52db 241 return -1;
yueee_yt 3:7b144e1a52db 242 }
yueee_yt 3:7b144e1a52db 243 if (r==HTTP_REFUSED) {
yueee_yt 3:7b144e1a52db 244 if (debug_mode) printf("HTTP 403 Error \n");
yueee_yt 3:7b144e1a52db 245 return -1;
yueee_yt 3:7b144e1a52db 246 }
yueee_yt 3:7b144e1a52db 247 if (r==HTTP_ERROR) {
yueee_yt 3:7b144e1a52db 248 if (debug_mode)printf("HTTP xxx error %d \n ",r);
yueee_yt 3:7b144e1a52db 249 return -1;
yueee_yt 3:7b144e1a52db 250 }
yueee_yt 3:7b144e1a52db 251 if (r==HTTP_TIMEOUT) {
yueee_yt 3:7b144e1a52db 252 if (debug_mode)printf("Connection timeout\n");
yueee_yt 3:7b144e1a52db 253 return -1;
yueee_yt 3:7b144e1a52db 254 }
yueee_yt 3:7b144e1a52db 255 if (r==HTTP_CONN) {
yueee_yt 3:7b144e1a52db 256 if (debug_mode)printf("Connection error\n");
yueee_yt 3:7b144e1a52db 257 return -1;
yueee_yt 3:7b144e1a52db 258 }
yueee_yt 2:2ba00be13585 259 }
yueee_yt 2:2ba00be13585 260 SP_XmlNodeList * points;
yueee_yt 3:7b144e1a52db 261 if (strlen(rstr)>0) {
yueee_yt 2:2ba00be13585 262 if (debug_mode)printf("\n\r data Get Ok\n\r");
yueee_yt 5:f0b636449aa3 263
yueee_yt 2:2ba00be13585 264 SP_XmlDomParser parser;
yueee_yt 5:f0b636449aa3 265
yueee_yt 3:7b144e1a52db 266 // if (debug_mode)printf("stream readlen = %d \n\r",stream.readLen());
yueee_yt 3:7b144e1a52db 267 // outBuffer[stream.readLen()]=0;
yueee_yt 4:edbcc1833b58 268 if (debug_mode)printf("check0\n\r");
yueee_yt 3:7b144e1a52db 269 parser.append(rstr,strlen(rstr));
yueee_yt 4:edbcc1833b58 270 if (debug_mode)printf("check1\n\r");
yueee_yt 2:2ba00be13585 271 SP_XmlHandle rootHandle(parser.getDocument()->getRootElement());
yueee_yt 2:2ba00be13585 272 SP_XmlHandle transport = rootHandle.getChild(0).getChild(0).getChild(0);
yueee_yt 2:2ba00be13585 273 SP_XmlElementNode * fiapError = transport.getChild("header").getChild("error").toElement();
yueee_yt 2:2ba00be13585 274 int yy,mo,dd,hh,mm,ss;
yueee_yt 0:d34a9148b19e 275 char str[50];
yueee_yt 4:edbcc1833b58 276 if (debug_mode)printf ("%s \n\r",transport.toElement()->getName());
yueee_yt 0:d34a9148b19e 277 if (fiapError==NULL) {
yueee_yt 0:d34a9148b19e 278 SP_XmlElementNode * values =transport.getChild("body").toElement();
yueee_yt 0:d34a9148b19e 279 points=(SP_XmlNodeList *)values->getChildren() ;
yueee_yt 0:d34a9148b19e 280 // points=values->getChildren();
yueee_yt 0:d34a9148b19e 281 int j=points->getLength();
yueee_yt 0:d34a9148b19e 282 if (debug_mode) printf("GetValues of No %d \n\r",j);
yueee_yt 0:d34a9148b19e 283 SP_XmlElementNode *data_point_node,*data_value_node;
yueee_yt 0:d34a9148b19e 284 SP_XmlCDataNode *data_value_cnode;
yueee_yt 0:d34a9148b19e 285 SP_XmlHandle data_handle(points->get(0));//Point
yueee_yt 0:d34a9148b19e 286 data_point_node=data_handle.toElement();
yueee_yt 0:d34a9148b19e 287 data_value_node=data_handle.getChild("value").toElement();
yueee_yt 0:d34a9148b19e 288 data_value_cnode=data_handle.getChild("value").getChild(0).toCData();
yueee_yt 0:d34a9148b19e 289 if (debug_mode) printf("PointID=%s \r\n",data_point_node->getAttrValue("id"));
yueee_yt 0:d34a9148b19e 290 if (debug_mode) printf("date=%s \r\n",data_value_node->getAttrValue("time"));
yueee_yt 0:d34a9148b19e 291 if (debug_mode) printf("data=%s \r\n",data_value_cnode->getText());
yueee_yt 0:d34a9148b19e 292 sprintf(str,"%s",data_value_node->getAttrValue("time"));
yueee_yt 0:d34a9148b19e 293 ll=sscanf(str,"%d-%d-%dT%d:%d:%d.",&yy,&mo,&dd,&hh,&mm,&ss);
yueee_yt 0:d34a9148b19e 294 if (debug_mode)printf("date convert no %d (%d/%d/%d %d:%d:%d) \r\n",ll,yy,mo,dd,hh,mm,ss);
yueee_yt 0:d34a9148b19e 295 v->year=yy;
yueee_yt 0:d34a9148b19e 296 v->month=mo;
yueee_yt 0:d34a9148b19e 297 v->day=dd;
yueee_yt 0:d34a9148b19e 298 v->hour=hh;
yueee_yt 0:d34a9148b19e 299 v->minute=mm;
yueee_yt 0:d34a9148b19e 300 v->second=ss;
yueee_yt 0:d34a9148b19e 301 sprintf(v->value,"%s", data_value_cnode->getText());
yueee_yt 0:d34a9148b19e 302 } else {
yueee_yt 0:d34a9148b19e 303 printf("ERROR\n\r");
yueee_yt 0:d34a9148b19e 304 }
yueee_yt 0:d34a9148b19e 305 } else {
yueee_yt 0:d34a9148b19e 306 if (debug_mode)printf("error\n\r");
yueee_yt 0:d34a9148b19e 307 }
yueee_yt 0:d34a9148b19e 308 return 0;
yueee_yt 0:d34a9148b19e 309 }
yueee_yt 0:d34a9148b19e 310
yueee_yt 2:2ba00be13585 311
yueee_yt 2:2ba00be13585 312
yueee_yt 2:2ba00be13585 313 int FIAP::post(struct fiap_element* v, unsigned int esize)
yueee_yt 2:2ba00be13585 314 {
yueee_yt 0:d34a9148b19e 315 HTTPClient http;
yueee_yt 0:d34a9148b19e 316 int i;
yueee_yt 5:f0b636449aa3 317 char rstr[800];
yueee_yt 0:d34a9148b19e 318 char requestBuffer[50];
yueee_yt 2:2ba00be13585 319 post_xml_initialize();
yueee_yt 2:2ba00be13585 320 strcpy(_soap_text,_soap_header);
yueee_yt 0:d34a9148b19e 321 for (i=0; i<esize; i++) {
yueee_yt 0:d34a9148b19e 322 sprintf(requestBuffer,"%04d-%02d-%02dT%02d:%02d:%02d.0000000",v[i].year,v[i].month,v[i].day,v[i].hour,v[i].minute,v[i].second);
yueee_yt 0:d34a9148b19e 323 strcat(_soap_text , "<point id=\"");
yueee_yt 0:d34a9148b19e 324 strcat(_soap_text , _fiap_id_prefix);
yueee_yt 2:2ba00be13585 325 strcat(_soap_text , v[i].cid);
yueee_yt 0:d34a9148b19e 326 strcat( _soap_text, "\">");
yueee_yt 2:2ba00be13585 327 strcat(_soap_text , "<value time=\"");
yueee_yt 2:2ba00be13585 328 strcat(_soap_text , requestBuffer);
yueee_yt 2:2ba00be13585 329 strcat(_soap_text , v[i].timezone);
yueee_yt 2:2ba00be13585 330 strcat(_soap_text , "\">");
yueee_yt 2:2ba00be13585 331 strcat(_soap_text , v[i].value);
yueee_yt 2:2ba00be13585 332 strcat(_soap_text , "</value>");
yueee_yt 2:2ba00be13585 333 strcat(_soap_text , "</point>");
yueee_yt 0:d34a9148b19e 334 }
yueee_yt 2:2ba00be13585 335 strcat(_soap_text , _soap_footer);
yueee_yt 0:d34a9148b19e 336 if (debug_mode) {
yueee_yt 0:d34a9148b19e 337 printf(_soap_text);
yueee_yt 0:d34a9148b19e 338 printf("<<< Request(end)\n");
yueee_yt 0:d34a9148b19e 339 }
yueee_yt 2:2ba00be13585 340 // http.setRequestHeader("Content-Type","text/xml; charset=UTF-8");
yueee_yt 2:2ba00be13585 341 // http.setRequestHeader("SOAPAction","\"http://soap.fiap.org/data\"");
yueee_yt 0:d34a9148b19e 342 // InData=new HTTPText();
yueee_yt 2:2ba00be13585 343 HTTPText InData(_soap_text);
yueee_yt 5:f0b636449aa3 344 HTTPText OutData(rstr,800);
yueee_yt 2:2ba00be13585 345 HTTPResult r = http.postXML(_fiap_storage,"http://soap.fiap.org/data",InData,&OutData);
yueee_yt 3:7b144e1a52db 346 if(!r) {
yueee_yt 3:7b144e1a52db 347 if (debug_mode)printf("Success \n");
yueee_yt 5:f0b636449aa3 348 if (debug_mode){
yueee_yt 5:f0b636449aa3 349 printf("****\n\r");
yueee_yt 5:f0b636449aa3 350 printf(rstr);
yueee_yt 5:f0b636449aa3 351 printf("\n\r****\n\r");
yueee_yt 5:f0b636449aa3 352 }
yueee_yt 3:7b144e1a52db 353 } else {
yueee_yt 3:7b144e1a52db 354 if (r==HTTP_PROCESSING) {
yueee_yt 3:7b144e1a52db 355 if (debug_mode)printf("Processing \n");
yueee_yt 3:7b144e1a52db 356 return -1;
yueee_yt 3:7b144e1a52db 357 }
yueee_yt 3:7b144e1a52db 358 if (r==HTTP_PARSE) {
yueee_yt 3:7b144e1a52db 359 if (debug_mode) printf("URI Parse error \n");
yueee_yt 3:7b144e1a52db 360 return -1;
yueee_yt 3:7b144e1a52db 361 }
yueee_yt 3:7b144e1a52db 362 if (r==HTTP_DNS) {
yueee_yt 3:7b144e1a52db 363 if (debug_mode) printf("Could not resolve name\n");
yueee_yt 3:7b144e1a52db 364 return -1;
yueee_yt 3:7b144e1a52db 365 }
yueee_yt 3:7b144e1a52db 366 if (r==HTTP_PRTCL) {
yueee_yt 3:7b144e1a52db 367 if (debug_mode)printf("Protocol error\n");
yueee_yt 3:7b144e1a52db 368 return -1;
yueee_yt 3:7b144e1a52db 369 }
yueee_yt 3:7b144e1a52db 370 if (r==HTTP_NOTFOUND) {
yueee_yt 3:7b144e1a52db 371 if (debug_mode)printf("HTTP 404 Error\n");
yueee_yt 3:7b144e1a52db 372 return -1;
yueee_yt 3:7b144e1a52db 373 }
yueee_yt 3:7b144e1a52db 374 if (r==HTTP_REFUSED) {
yueee_yt 3:7b144e1a52db 375 if (debug_mode) printf("HTTP 403 Error \n");
yueee_yt 3:7b144e1a52db 376 return -1;
yueee_yt 3:7b144e1a52db 377 }
yueee_yt 3:7b144e1a52db 378 if (r==HTTP_ERROR) {
yueee_yt 3:7b144e1a52db 379 if (debug_mode)printf("HTTP xxx error \n");
yueee_yt 3:7b144e1a52db 380 return -1;
yueee_yt 3:7b144e1a52db 381 }
yueee_yt 3:7b144e1a52db 382 if (r==HTTP_TIMEOUT) {
yueee_yt 3:7b144e1a52db 383 if (debug_mode)printf("Connection timeout\n");
yueee_yt 3:7b144e1a52db 384 return -1;
yueee_yt 3:7b144e1a52db 385 }
yueee_yt 3:7b144e1a52db 386 if (r==HTTP_CONN) {
yueee_yt 3:7b144e1a52db 387 if (debug_mode)printf("Connection error\n");
yueee_yt 3:7b144e1a52db 388 return -1;
yueee_yt 3:7b144e1a52db 389 }
yueee_yt 0:d34a9148b19e 390 }
yueee_yt 0:d34a9148b19e 391 return 0;
yueee_yt 0:d34a9148b19e 392 }