package context.arch.widget;
import java.io.IOException;
import context.arch.comm.DataObject;
import context.arch.comm.DataObjects;
import context.arch.comm.RequestObject;
import context.arch.comm.language.DecodeException;
import context.arch.comm.language.EncodeException;
import context.arch.comm.language.InvalidDecoderException;
import context.arch.comm.language.InvalidEncoderException;
import context.arch.comm.protocol.InvalidProtocolException;
import context.arch.comm.protocol.ProtocolException;
import context.arch.storage.Attributes;
import context.arch.util.Error;
public abstract class ESP8266Widget extends Widget implements IESP8266Widget {
public static final String UPDATE_ESP8266 = "updateEPS8266";
public static final Integer DEFAULT_ESP8266_PORT = 80;
public static final String DEFAULT_ESP8266_ID = "ESP8266Widget";
protected String esp8266Host;
protected int esp8266Port;
protected String esp8266Id;
public ESP8266Widget(String id, String esp8266Host, int esp8266Port, String esp8266Id) {
super(id,id);
this.esp8266Host = esp8266Host;
this.esp8266Port = esp8266Port;
this.esp8266Id = esp8266Id;
}
public ESP8266Widget(String id, String esp8266Host, int esp8266Port) {
this(id, esp8266Host, esp8266Port, DEFAULT_ESP8266_ID);
}
public ESP8266Widget(String id, String esp8266Host) {
this(id, esp8266Host, DEFAULT_ESP8266_PORT);
}
public ESP8266Widget(String id) {
this(id,null,-1,null);
}
@Override
public DataObject updateESP8266(Attributes attributes) {
DataObjects v = new DataObjects();
v.addElement(new DataObject(ID, esp8266Id));
v.addElement(attributes.toDataObject());
DataObject data = new DataObject(UPDATE_ESP8266, v);
try {
DataObject dataObj = userRequest(new RequestObject(data, UPDATE_ESP8266, esp8266Host, esp8266Port));
return dataObj;
} catch (EncodeException ee) {
System.out.println("BaseObject pollWidget EncodeException: "+ee);
} catch (DecodeException de) {
System.out.println("BaseObject pollWidget DecodeException: "+de);
} catch (InvalidEncoderException iee) {
System.out.println("BaseObject pollWidget InvalidEncoderException: "+iee);
} catch (InvalidDecoderException ide) {
System.out.println("BaseObject pollWidget InvalidDecoderException: "+ide);
} catch (InvalidProtocolException ipe) {
System.out.println("BaseObject pollWidget InvalidProtocolException: "+ipe);
} catch (ProtocolException pe) {
System.out.println("BaseObject pollWidget ProtocolException: "+pe);
} catch (IOException ioe) {
System.out.println("BaseObject pollWidget IOException: "+ioe);
return (new Error(Error.IO_ERROR)).toDataObject();
}
return null;
}
}