/** * @param args * @throws IOException */ public static void main(String args[]) throws IOException { // Enable Debugging System.setProperty("DEBUG", "1"); // Instantiate the Test Controller new TestDeviceManagerProtocol(); // ******************************************** // Prompt to enter a command // ******************************************** System.out.println("Type exit to quit"); System.out.print("SYSTEM>"); BufferedReader keyboardInput; keyboardInput = new BufferedReader(new InputStreamReader(System.in)); String command = ""; try { while (!command.equalsIgnoreCase("exit")) { command = keyboardInput.readLine(); if (!command.equalsIgnoreCase("exit")) { System.out.print("\nSYSTEM>"); } } } finally { System.out.println("\nDisconnecting from ProtocolFactory"); try { ProtocolFactory.shutdown(); } catch (Exception e) { } ; } }
TestDeviceManagerProtocol() { // private member variables ProxyX10Appliance applianceProxy; ProxyX10MotionSensor motionSensorProxy; // fetch the EventGenerator eventGenerator = EventGeneratorFactory.getEventGenerator(); eventGenerator.addEventListener(this); // initialize the ProtocolFactory System.out.println("Attempting to initialize the ProtocolFactory\n"); try { ProtocolFactory.initProtocols(); } catch (Exception e) { System.out.println("\nExiting program due to trouble initializing ProtocolFactory"); System.exit(-1); } // Initialize the DeviceManager DeviceManager deviceManager = DeviceManagerFactory.getDeviceManager(); // Instantiate the MotionSensor object motionSensorProxy = new ProxyX10MotionSensor("Motion C16", 'C', 16); motionSensorProxy.addAppliance("Appliance C1"); motionSensorProxy.setDetectionPeriodEnabled(false); Calendar startTime = Calendar.getInstance(); startTime.set(Calendar.HOUR_OF_DAY, 18); startTime.set(Calendar.MINUTE, 0); motionSensorProxy.setStartTime(startTime); Calendar endTime = Calendar.getInstance(); endTime.set(Calendar.HOUR_OF_DAY, 19); endTime.set(Calendar.MINUTE, 0); motionSensorProxy.setEndTime(endTime); motionSensorProxy.setInactivityTimeEnabled(true); motionSensorProxy.setInactivityTime(10); deviceManager.addDevice(motionSensorProxy); // Instantiate the Appliance object applianceProxy = new ProxyX10Appliance("App C1", 'C', 1); applianceProxy.setTriggerTimerEnabled(false); deviceManager.addDevice(applianceProxy); try { Thread.sleep(3000); } catch (Exception e) { } System.out.println("Attempt to turn ON ApplianceProxy"); applianceProxy.setState(X10DeviceState.ON); deviceManager.updateDevice(applianceProxy); try { Thread.sleep(3000); } catch (Exception e) { } System.out.println("Attempt to turn Off ApplianceProxy"); applianceProxy.setState(X10DeviceState.OFF); deviceManager.updateDevice(applianceProxy); // Add more devices ProxyX10Appliance applianceProxy2 = new ProxyX10Appliance("Appliance C2", 'C', 2); applianceProxy2.setTriggerTimerEnabled(false); deviceManager.addDevice(applianceProxy2); ProxyX10Appliance applianceProxy3 = new ProxyX10Appliance("Appliance C3", 'C', 3); applianceProxy3.setTriggerTimerEnabled(false); deviceManager.addDevice(applianceProxy3); // Create an onTime Calendar onTime = Calendar.getInstance(); onTime.set(Calendar.HOUR_OF_DAY, 10); onTime.set(Calendar.MINUTE, 12); onTime.set(Calendar.SECOND, 00); onTime.set(Calendar.MILLISECOND, 0); // Create an offTime Calendar offTime = Calendar.getInstance(); offTime.set(Calendar.HOUR_OF_DAY, 12); offTime.set(Calendar.MINUTE, 13); offTime.set(Calendar.SECOND, 00); offTime.set(Calendar.MILLISECOND, 0); // Test creation of ProxyX10Appliance ProxyX10Appliance applianceProxy4 = new ProxyX10Appliance("Appliance A2", 'A', 2); applianceProxy4.setOnTime(onTime); applianceProxy4.setOffTime(offTime); applianceProxy4.setTriggerTimerEnabled(true); deviceManager.addDevice(applianceProxy4); applianceProxy4.setState(X10DeviceState.ON); deviceManager.updateDevice(applianceProxy4); try { Thread.sleep(3000); } catch (Exception e) { } applianceProxy4.setState(X10DeviceState.ON); deviceManager.updateDevice(applianceProxy4); // Test getDevices ArrayList<X10Device> deviceList = new ArrayList<X10Device>(); System.out.println("Next Line should be INFO"); deviceList = deviceManager.getDevices(); int count = 1; for (X10Device device : deviceList) { System.out.println("Here are the contents of the Arraylist"); System.out.println("Item " + count + " is named " + device.getName()); count++; } }