X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iot2.git;a=blobdiff_plain;f=benchmarks%2Fother%2FZigbeeTest%2FIoTZigbee.java;h=6f0ad6945e830ed80e2bf7185f92325372f70996;hp=4a931d0727ee549afc042c4a81ce502735b8c9d1;hb=29139245e9e467770431976dae4bab726f08ccd1;hpb=f4d00be7711e47df2aa3b78f8d4fc5e35dc4bcf0 diff --git a/benchmarks/other/ZigbeeTest/IoTZigbee.java b/benchmarks/other/ZigbeeTest/IoTZigbee.java index 4a931d0..6f0ad69 100644 --- a/benchmarks/other/ZigbeeTest/IoTZigbee.java +++ b/benchmarks/other/ZigbeeTest/IoTZigbee.java @@ -104,6 +104,34 @@ public class IoTZigbee { 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"; @@ -189,13 +217,14 @@ public class IoTZigbee { 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"; @@ -213,6 +242,10 @@ public class IoTZigbee { 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); @@ -244,6 +277,7 @@ public class IoTZigbee { String message = "type: send_address\n"; message += "packet_id: 00\n"; message += "device_address_long: " + zigbeeAddress.getAddress() + "\n"; + System.out.println(message); DatagramPacket sendPacket = new DatagramPacket(message.getBytes(), message.getBytes().length, InetAddress.getByName(strHostAddress), iDstPort); socket.send(sendPacket); } @@ -311,6 +345,16 @@ public class IoTZigbee { if(packetData.get("attributes").equals("success")) successOrFail=true; callbackMessage = new IoTZigbeeMessageZclZoneStatusChangeNotification(packetId, clusterId, profileId, status, successOrFail); + // made by yuting + }else if (packetData.get("type").equals("zcl_change_switch_response")){ + int packetId = Integer.parseInt(packetData.get("packet_id"), 16); + int clusterId = Integer.parseInt(packetData.get("cluster_id"), 16); + int profileId = Integer.parseInt(packetData.get("profile_id"), 16); + int status = Integer.parseInt(packetData.get("status"), 10); + boolean successOrFail = false; + if(packetData.get("attributes").equals("success")) successOrFail=true; + callbackMessage = new IoTZigbeeMessageZclChangeSwitchResponse(packetId, clusterId, profileId, status, successOrFail); + //made by changwoo } else if (packetData.get("type").equals("zcl_write_attributes_response")) {