/** Class IoTZigbee
*
- * @author Ali Younis <ayounis @ uci.edu>
+ * @author Ali Younis <ayounis @ uci.edu>, Changwoo Lee, Jiawei Gu
* @version 1.0
* @since 2016-04-12
*/
-public class IoTZigbee {
+public final class IoTZigbee {
public final int SOCKET_SEND_BUFFER_SIZE = 1024;
public final int SOCKET_RECEIVE_BUFFER_SIZE = 1024;
socket.send(sendPacket);
}
+ //made by Jiawei
+ public void sendLockOrUnlockDoorRequest(int packetId, int clusterId, int profileId, int deviceEndpoint, int value) throws IOException {
+ String message = "type: zcl_lock_or_unlock_door_request\n";
+ message += "packet_id: " + String.format("%04x", packetId) + "\n";
+ message += "value: " + String.format("%01x", value) + "\n";
+ message += "cluster_id: " + String.format("%04x", clusterId) + "\n";
+ message += "profile_id: " + String.format("%04x", profileId) + "\n";
+ message += "device_address_long: " + zigbeeAddress.getAddress() + "\n";
+ message += "device_endpoint: " + String.format("%02x", deviceEndpoint) + "\n";
+ DatagramPacket sendPacket = new DatagramPacket(message.getBytes(), message.getBytes().length, InetAddress.getByName(strHostAddress), iDstPort);
+ socket.send(sendPacket);
+ }
+
+ //made by Jiawei
+ public void sendReadDoorStatusRequest(int packetId, int clusterId, int profileId, int deviceEndpoint, int framecontrol, int commandframe, int attribute_id) throws IOException {
+ String message = "type: zcl_read_door_status_request\n";
+ message += "packet_id: " + String.format("%04x", packetId) + "\n";
+ message += "framecontrol: " + String.format("%02x", framecontrol) + "\n";
+ message += "cluster_id: " + String.format("%04x", clusterId) + "\n";
+ message += "profile_id: " + String.format("%04x", profileId) + "\n";
+ message += "device_address_long: " + zigbeeAddress.getAddress() + "\n";
+ message += "device_endpoint: " + String.format("%02x", deviceEndpoint) + "\n";
+ message += "commandframe: " + String.format("%02x", commandframe) + "\n";
+ message += "attribute_id: " + String.format("%04x", attribute_id) + "\n";
+ DatagramPacket sendPacket = new DatagramPacket(message.getBytes(), message.getBytes().length, InetAddress.getByName(strHostAddress), iDstPort);
+ socket.send(sendPacket);
+ }
+
//made by changwoo
public void sendBroadcastingRouteRecordRequest(int packetId) throws IOException {
String message = "type: zdo_broadcast_route_record_request\n";
socket.send(sendPacket);
}
- public void sendConfigureReportingCommand(int packetId, int clusterId, int profileId, int deviceEndpoint, int attributeId, int dataType, int minReportingInterval, int maxReportingInterval, byte[] reportableChange) throws IOException {
+ public void sendConfigureReportingCommand(int packetId, int clusterId, int profileId, int src_endpoint, int dest_endpoint, int attributeId, int dataType, int minReportingInterval, int maxReportingInterval, byte[] reportableChange) throws IOException {
String message = "type: zcl_configure_reporting\n";
message += "packet_id: " + String.format("%04x", packetId) + "\n";
message += "device_address_long: " + zigbeeAddress.getAddress() + "\n";
message += "cluster_id: " + String.format("%04x", clusterId) + "\n";
message += "profile_id: " + String.format("%04x", profileId) + "\n";
- message += "device_endpoint: " + String.format("%02x", deviceEndpoint) + "\n";
+ message += "src_endpoint: " + String.format("%02x", src_endpoint) + "\n";
+ message += "device_endpoint: " + String.format("%02x", dest_endpoint) + "\n";
message += "attribute_id: " + String.format("%04x", attributeId) + "\n";
message += "data_type: " + String.format("%02x", dataType) + "\n";
message += "min_reporting_interval: " + String.format("%04x", minReportingInterval) + "\n";
socket.send(sendPacket);
}
+ public void sendConfigureReportingCommand(int packetId, int clusterId, int profileId, int dest_endpoint, int attributeId, int dataType, int minReportingInterval, int maxReportingInterval, byte[] reportableChange) throws IOException {
+ sendConfigureReportingCommand(packetId, clusterId, profileId, 0x00, dest_endpoint, attributeId, dataType, minReportingInterval, maxReportingInterval, reportableChange);
+ }
+
public void registerCallback(IoTZigbeeCallback callbackTo) {
callbackList.add(callbackTo);
}