diff --git a/src/main/java/info/istlab/IoTP/ScriptRunner.java b/src/main/java/info/istlab/IoTP/ScriptRunner.java index 921040d..6b1ae2c 100644 --- a/src/main/java/info/istlab/IoTP/ScriptRunner.java +++ b/src/main/java/info/istlab/IoTP/ScriptRunner.java @@ -44,6 +44,7 @@ // System.out.println(scriptfile); ArrayList comlist = new ArrayList(); if (App.isWindows) { + SerialWindow.check(); comlist.add("cmd"); comlist.add("/c"); comlist.add("start"); diff --git a/src/main/java/info/istlab/IoTP/SerialSelector.java b/src/main/java/info/istlab/IoTP/SerialSelector.java index 5a11987..90a3176 100644 --- a/src/main/java/info/istlab/IoTP/SerialSelector.java +++ b/src/main/java/info/istlab/IoTP/SerialSelector.java @@ -44,6 +44,7 @@ SerialPort selectedsp = SerialPort.getCommPort(e.getActionCommand()); SerialWindow sw = new SerialWindow(selectedsp); SerialWindow.hash.put(selectedsp.getSystemPortName(), sw); + App.serialName = e.getActionCommand(); frame.setVisible(false); } diff --git a/src/main/java/info/istlab/IoTP/SerialWindow.java b/src/main/java/info/istlab/IoTP/SerialWindow.java index f7a49d9..b3be63b 100644 --- a/src/main/java/info/istlab/IoTP/SerialWindow.java +++ b/src/main/java/info/istlab/IoTP/SerialWindow.java @@ -36,6 +36,28 @@ hash = new Hashtable(); } + public static void check(){ + SerialPort[] ports = SerialPort.getCommPorts(); + ArrayList splist_valid = new ArrayList(); + for (SerialPort sp : ports) { + String name = sp.getSystemPortName(); + if (name.startsWith("cu.usbserial") || name.startsWith("COM")) { + splist_valid.add(sp); + } + } + if (splist_valid.size()==1){ + SerialPort sp = splist_valid.get(0); + SerialWindow sw = new SerialWindow(sp); + hash.put(sp.getSystemPortName(), sw); + App.serialName = sp.getSystemPortName(); + } else if (splist_valid.size()==0){ + JOptionPane.showMessageDialog(null, "No available serial ports."); + } else { + SerialSelector.show(splist_valid.toArray(new SerialPort[]{})); + } + + } + public static void invoke() { SerialPort[] ports = SerialPort.getCommPorts(); ArrayList splist_valid = new ArrayList();