//create or update the specified asset. void ATTDevice::AddAsset(int id, String name, String description, bool isActuator, String type) { // Make a HTTP request: _client->println("PUT /asset/" + _deviceId + (char)(id + 48) + " HTTP/1.1"); _client->print(F("Host: ")); _client->println(_serverName); _client->println(F("Content-Type: application/json")); _client->print(F("Auth-ClientKey: "));_client->println(_clientKey); _client->print(F("Auth-ClientId: "));_client->println(_clientId); _client->print(F("Content-Length: ")); { //make every mem op local, so it is unloaded asap int length = name.length() + description.length() + type.length() + _deviceId.length(); if(isActuator) length += 8; else length += 6; if(type[0] == '{') length += 64; else length += 77; _client->println(length); } _client->println(); _client->print(F("{\"name\":\"")); _client->print(name); _client->print(F("\",\"description\":\"")); _client->print(description); _client->print(F("\",\"is\":\"")); if(isActuator) _client->print(F("actuator")); else _client->print(F("sensor")); if(type[0] == '{'){ _client->print(F("\",\"profile\": ")); _client->print(type); } else{ _client->print(F("\",\"profile\": { \"type\":\"")); _client->print(type); _client->print(F("\" }")); } _client->print(F(", \"deviceId\":\"")); _client->print(_deviceId); _client->print(F("\" }")); _client->println(); _client->println(); delay(ETHERNETDELAY); GetHTTPResult(); //get the response from the server and show it. }
//create or update the specified asset. void ATTDevice::AddAsset(int id, String name, String description, bool isActuator, String type) { // Make a HTTP request: { String idStr(id); _client->println("PUT /device/" + _deviceId + "/asset/" + idStr + " HTTP/1.1"); } _client->print(F("Host: ")); _client->println(_serverName); _client->println(F("Content-Type: application/json")); _client->print(F("Auth-ClientKey: "));_client->println(_clientKey); _client->print(F("Auth-ClientId: "));_client->println(_clientId); int typeLength = type.length(); _client->print(F("Content-Length: ")); { //make every mem op local, so it is unloaded asap int length = name.length() + description.length() + typeLength; if(isActuator) length += 8; else length += 6; if (typeLength == 0) length += 39; else if(type[0] == '{') length += 49; else length += 62; _client->println(length); } _client->println(); _client->print(F("{\"name\":\"")); _client->print(name); _client->print(F("\",\"description\":\"")); _client->print(description); _client->print(F("\",\"is\":\"")); if(isActuator) _client->print(F("actuator")); else _client->print(F("sensor")); if(typeLength == 0) _client->print(F("\"")); else if(type[0] == '{'){ _client->print(F("\",\"profile\": ")); _client->print(type); } else{ _client->print(F("\",\"profile\": { \"type\":\"")); _client->print(type); _client->print(F("\" }")); } _client->print(F("}")); _client->println(); _client->println(); unsigned long maxTime = millis() + 1000; while(millis() < maxTime) //wait, but for the minimum amount of time. { if(_client->available()) break; else delay(10); } GetHTTPResult(); //get the response from the server and show it. }