From ca0b4614ae545e30b3f65b5414e7e7f535915c86 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Mon, 15 Oct 2012 23:38:17 -0700 Subject: Initial commit --- .classpath | 11 +++ .project | 17 +++++ .settings/org.eclipse.jdt.core.prefs | 11 +++ rxtx/RXTXcomm.jar | Bin 0 -> 60984 bytes rxtx/rxtxParallel.dll | Bin 0 -> 84992 bytes rxtx/rxtxSerial.dll | Bin 0 -> 129536 bytes src/MyClass.java | 16 +++++ src/net/tuschhcm/routercontrol/Preset.java | 39 +++++++++++ src/net/tuschhcm/routercontrol/SwitcherApp.java | 75 +++++++++++++++++++++ src/net/tuschhcm/routercontrol/router/Router.java | 29 ++++++++ .../routercontrol/router/ShinyBow5544Router.java | 37 ++++++++++ src/net/tuschhcm/routercontrol/ui/ConsoleUI.java | 35 ++++++++++ .../tuschhcm/routercontrol/ui/UserInterface.java | 42 ++++++++++++ 13 files changed, 312 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 rxtx/RXTXcomm.jar create mode 100644 rxtx/rxtxParallel.dll create mode 100644 rxtx/rxtxSerial.dll create mode 100644 src/MyClass.java create mode 100644 src/net/tuschhcm/routercontrol/Preset.java create mode 100644 src/net/tuschhcm/routercontrol/SwitcherApp.java create mode 100644 src/net/tuschhcm/routercontrol/router/Router.java create mode 100644 src/net/tuschhcm/routercontrol/router/ShinyBow5544Router.java create mode 100644 src/net/tuschhcm/routercontrol/ui/ConsoleUI.java create mode 100644 src/net/tuschhcm/routercontrol/ui/UserInterface.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..39185dc --- /dev/null +++ b/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..0276cf1 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + RouterControl + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..838bd9d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/rxtx/RXTXcomm.jar b/rxtx/RXTXcomm.jar new file mode 100644 index 0000000..e1e7503 Binary files /dev/null and b/rxtx/RXTXcomm.jar differ diff --git a/rxtx/rxtxParallel.dll b/rxtx/rxtxParallel.dll new file mode 100644 index 0000000..92666dd Binary files /dev/null and b/rxtx/rxtxParallel.dll differ diff --git a/rxtx/rxtxSerial.dll b/rxtx/rxtxSerial.dll new file mode 100644 index 0000000..211e006 Binary files /dev/null and b/rxtx/rxtxSerial.dll differ diff --git a/src/MyClass.java b/src/MyClass.java new file mode 100644 index 0000000..4fac53f --- /dev/null +++ b/src/MyClass.java @@ -0,0 +1,16 @@ +import java.util.Enumeration; + +import gnu.io.CommPortIdentifier; + +public class MyClass { + public static void main(String... args) { + Enumeration ports = CommPortIdentifier.getPortIdentifiers(); + + while (ports.hasMoreElements()) { + CommPortIdentifier port = (CommPortIdentifier) ports.nextElement(); + + System.out.println(port.getName()); + } + } + +} \ No newline at end of file diff --git a/src/net/tuschhcm/routercontrol/Preset.java b/src/net/tuschhcm/routercontrol/Preset.java new file mode 100644 index 0000000..e58fcf9 --- /dev/null +++ b/src/net/tuschhcm/routercontrol/Preset.java @@ -0,0 +1,39 @@ +package net.tuschhcm.routercontrol; + +/** + * Class to represent a router preset. + */ +public class Preset { + + /** + * Load a preset from the given file. + * + * @param filename The file to load. + * @return the Preset object + */ + public static Preset loadPresetFile(String filename) { + // TODO: Implement + return null; + } + + /** + * Get the name of the preset. + * + * @return The preset name + */ + public String getName() { + // TODO: Implement + return null; + } + + /** + * Get an input for the given output. + * + * @param output + * @return Input number, or 0 if no change. + */ + public int getInputForOutput(final int output) { + // TODO: Implement + return 0; + } +} diff --git a/src/net/tuschhcm/routercontrol/SwitcherApp.java b/src/net/tuschhcm/routercontrol/SwitcherApp.java new file mode 100644 index 0000000..648d0b5 --- /dev/null +++ b/src/net/tuschhcm/routercontrol/SwitcherApp.java @@ -0,0 +1,75 @@ +package net.tuschhcm.routercontrol; + +import java.util.HashMap; +import java.util.Map; + +import net.tuschhcm.routercontrol.router.Router; +import net.tuschhcm.routercontrol.router.ShinyBow5544Router; +import net.tuschhcm.routercontrol.ui.ConsoleUI; +import net.tuschhcm.routercontrol.ui.UserInterface; +import net.tuschhcm.routercontrol.ui.UserInterface.Action; + +public class SwitcherApp { + /** + * The router I control. + */ + private final Router mRouter; + + /** + * My user interface. + */ + private final UserInterface mUI; + + /** + * My list of presets. + */ + private final Map mPresets; + + /** + * Create a switcher app. + * @param portName the port name for the router. + */ + public SwitcherApp(final String portName) { + mUI = new ConsoleUI(); + mRouter = new ShinyBow5544Router(portName); + mPresets = new HashMap(); + + // TODO: Load the presets + + // TODO: Setup UI hooks + mUI.setPresetSelectionAction(new Action() { + public void onAction() { + handlePresetSelected(); + } + }); + + // TODO: Send the presets to the UI + } + + /** + * Start the application. + */ + public void run() { + mUI.run(); + } + + /** + * Handles a preset selection. + */ + private void handlePresetSelected() { + int selectedPreset = mUI.getSelectedPreset(); + // TODO: What to do when the preset is selected + } + + /** + * Entry-point for the application. + * @param args Command line arguments + */ + public static void main(String[] args) { + // TODO: Parse command line arguments + String comPort = "COM1"; + + SwitcherApp app = new SwitcherApp(comPort); + app.run(); + } +} diff --git a/src/net/tuschhcm/routercontrol/router/Router.java b/src/net/tuschhcm/routercontrol/router/Router.java new file mode 100644 index 0000000..d6fe2dd --- /dev/null +++ b/src/net/tuschhcm/routercontrol/router/Router.java @@ -0,0 +1,29 @@ +package net.tuschhcm.routercontrol.router; + +/** + * Interface specification for a router + */ +public interface Router { + /** + * Send the given input to the given output. + * + * @param output + * @param input + * + * @throws IllegalArgumentException if input or output are out of range. + */ + public void switchInput(int output, int input) throws IllegalArgumentException; + + /** + * Power on or power off the router + * + * @param True to turn on the router + */ + public void setPower(boolean on); + + /** + * Enable or disable physical controls + * @param enabled true to disable the controls. + */ + public void setLockControls(boolean enabled); +} diff --git a/src/net/tuschhcm/routercontrol/router/ShinyBow5544Router.java b/src/net/tuschhcm/routercontrol/router/ShinyBow5544Router.java new file mode 100644 index 0000000..ee60bfc --- /dev/null +++ b/src/net/tuschhcm/routercontrol/router/ShinyBow5544Router.java @@ -0,0 +1,37 @@ +package net.tuschhcm.routercontrol.router; + +/** + * Router implementation for a ShinyBow SB-5544 + * + */ +public class ShinyBow5544Router implements Router { + + /** + * Create a new ShinyBow router using the given comm port. + * + * @param portName Com port name + */ + public ShinyBow5544Router(final String portName) { + + } + + @Override + public void switchInput(int output, int input) + throws IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public void setPower(boolean on) { + // TODO Auto-generated method stub + + } + + @Override + public void setLockControls(boolean enabled) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/net/tuschhcm/routercontrol/ui/ConsoleUI.java b/src/net/tuschhcm/routercontrol/ui/ConsoleUI.java new file mode 100644 index 0000000..52baa65 --- /dev/null +++ b/src/net/tuschhcm/routercontrol/ui/ConsoleUI.java @@ -0,0 +1,35 @@ +package net.tuschhcm.routercontrol.ui; + +public class ConsoleUI implements UserInterface { + + @Override + public void addPreset(int number, String name) { + // TODO Auto-generated method stub + + } + + @Override + public void setPresetSelectionAction(Action action) { + // TODO Auto-generated method stub + + } + + @Override + public int getSelectedPreset() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void run() { + // TODO Auto-generated method stub + + } + + @Override + public void setControlsLockAction(Action action) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/net/tuschhcm/routercontrol/ui/UserInterface.java b/src/net/tuschhcm/routercontrol/ui/UserInterface.java new file mode 100644 index 0000000..7a441c5 --- /dev/null +++ b/src/net/tuschhcm/routercontrol/ui/UserInterface.java @@ -0,0 +1,42 @@ +package net.tuschhcm.routercontrol.ui; + +/** + * Interface specification for the view. + */ +public interface UserInterface { + /** + * Tell the user interface about a preset. + * + * @param number Preset number + * @param name Preset name + */ + public void addPreset(final int number, final String name); + + /** + * Set the action handler called when a preset is selected. + * @param action + */ + public void setPresetSelectionAction(final Action action); + + /** + * @return the selected preset. + */ + public int getSelectedPreset(); + + /** + * Handle toggling the control lock + */ + public void setControlsLockAction(final Action action); + + /** + * Start the user interface. + */ + public void run(); + + /** + * Interface specification for an action handler. + */ + public interface Action { + public void onAction(); + } +} -- cgit v1.2.3