diff --git a/plugins/hal-zigbee/src/se/hal/plugin/zigbee/HalZigbeeController.java b/plugins/hal-zigbee/src/se/hal/plugin/zigbee/HalZigbeeController.java index 04a559e2..ff242eb3 100644 --- a/plugins/hal-zigbee/src/se/hal/plugin/zigbee/HalZigbeeController.java +++ b/plugins/hal-zigbee/src/se/hal/plugin/zigbee/HalZigbeeController.java @@ -26,7 +26,7 @@ public class HalZigbeeController implements HalSensorController, HalEventControl private ZigBeePort serialPort; private ZigBeeDataStore dataStore; - private ZigBeeNetworkManager networkManager; + protected ZigBeeNetworkManager networkManager; private HalSensorReportListener sensorListener; private HalEventReportListener eventListener; @@ -50,16 +50,12 @@ public class HalZigbeeController implements HalSensorController, HalEventControl dataStore = new ZigBeeDataStore(); ZigBeeTransportTransmit dongle = getDongle("CC2531"); - ZigBeeNetworkManager networkManager = new ZigBeeNetworkManager(dongle); + networkManager = new ZigBeeNetworkManager(dongle); networkManager.setNetworkDataStore(dataStore); ZigBeeStatus initResponse = networkManager.initialize(); System.out.println("NetworkManager.initialize() returned " + initResponse); - System.out.println("PAN ID = " + networkManager.getZigBeePanId()); - System.out.println("Extended PAN ID = " + networkManager.getZigBeeExtendedPanId()); - System.out.println("Channel = " + networkManager.getZigBeeChannel()); - if (dongle instanceof ZigBeeDongleTiCc2531) { ZigBeeDongleTiCc2531 tiDongle = (ZigBeeDongleTiCc2531) dongle; tiDongle.setLedMode(1, false); @@ -89,7 +85,6 @@ public class HalZigbeeController implements HalSensorController, HalEventControl serialPort.close(); } - // -------------------------- // Hal Overrides // -------------------------- diff --git a/plugins/hal-zigbee/src/se/hal/plugin/zigbee/ZigBeeJSerialCommPort.java b/plugins/hal-zigbee/src/se/hal/plugin/zigbee/ZigBeeJSerialCommPort.java index 8b4d5621..6da11adb 100644 --- a/plugins/hal-zigbee/src/se/hal/plugin/zigbee/ZigBeeJSerialCommPort.java +++ b/plugins/hal-zigbee/src/se/hal/plugin/zigbee/ZigBeeJSerialCommPort.java @@ -179,7 +179,7 @@ public class ZigBeeJSerialCommPort implements ZigBeePort { @Override public void write(int value) { - if (serialPort != null) + if (serialPort == null) throw new RuntimeException("Unable to write, Serial port is not open."); try { @@ -196,10 +196,13 @@ public class ZigBeeJSerialCommPort implements ZigBeePort { @Override public int read(int timeout) { - if (serialPort != null) + if (serialPort == null) throw new RuntimeException("Unable to read, Serial port is not open."); try { + if (serialPort.getReadTimeout() != timeout) + serialPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_BLOCKING, timeout, 0); + return serialInputstream.read(); } catch (IOException e) { logger.error("Was unable to read from serial port.", e); @@ -209,7 +212,7 @@ public class ZigBeeJSerialCommPort implements ZigBeePort { @Override public void purgeRxBuffer() { - if (serialPort != null) + if (serialPort == null) return; try { diff --git a/plugins/hal-zigbee/test/se/hal/plugin/zigbee/HalZigbeeControllerTest.java b/plugins/hal-zigbee/test/se/hal/plugin/zigbee/HalZigbeeControllerTest.java index e4603350..e6996e4f 100644 --- a/plugins/hal-zigbee/test/se/hal/plugin/zigbee/HalZigbeeControllerTest.java +++ b/plugins/hal-zigbee/test/se/hal/plugin/zigbee/HalZigbeeControllerTest.java @@ -40,6 +40,11 @@ public class HalZigbeeControllerTest { HalZigbeeController controller = new HalZigbeeController(); controller.initialize("COM3"); + System.out.println("PAN ID = " + controller.networkManager.getZigBeePanId()); + System.out.println("Extended PAN ID = " + controller.networkManager.getZigBeeExtendedPanId()); + System.out.println("Channel = " + controller.networkManager.getZigBeeChannel()); + controller.networkManager.permitJoin(50); + System.out.println("Press ENTER to exit application."); System.in.read();