Esempio n. 1
0
//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.
}
Esempio n. 2
0
//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.
}