Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
diff -Bbur jSSC-0.9.0-Release/src/jssc/SerialPort.java jSSC-0.9.0-briar/src/jssc/SerialPort.java
--- jSSC-0.9.0-Release/src/jssc/SerialPort.java 2011-12-21 13:29:10.000000000 +0000
+++ jSSC-0.9.0-briar/src/jssc/SerialPort.java 2012-12-06 15:07:37.786033300 +0000
@@ -30,13 +30,13 @@
*/
public class SerialPort {
- private SerialNativeInterface serialInterface;
- private SerialPortEventListener eventListener;
- private int portHandle;
- private String portName;
- private boolean portOpened = false;
- private boolean maskAssigned = false;
- private boolean eventListenerAdded = false;
+ private volatile SerialNativeInterface serialInterface;
+ private volatile SerialPortEventListener eventListener;
+ private volatile int portHandle;
+ private volatile String portName;
+ private volatile boolean portOpened = false;
+ private volatile boolean maskAssigned = false;
+ private volatile boolean eventListenerAdded = false;
public static final int BAUDRATE_110 = 110;
@@ -915,7 +915,7 @@
private class EventThread extends Thread {
- private boolean threadTerminated = false;
+ private volatile boolean threadTerminated = false;
@Override
public void run() {
diff -Bbur jSSC-0.9.0-Release/src/jssc/SerialPortList.java jSSC-0.9.0-briar/src/jssc/SerialPortList.java
--- jSSC-0.9.0-Release/src/jssc/SerialPortList.java 2011-12-21 13:30:30.000000000 +0000
+++ jSSC-0.9.0-briar/src/jssc/SerialPortList.java 2012-12-06 14:31:50.142033801 +0000
@@ -97,20 +97,15 @@
*/
private static String[] getLinuxPortNames() {
String[] returnArray = new String[]{};
- try {
- Process dmesgProcess = Runtime.getRuntime().exec("dmesg");
- BufferedReader reader = new BufferedReader(new InputStreamReader(dmesgProcess.getInputStream()));
+ File dir = new File("/dev");
+ if(dir.exists() && dir.isDirectory()){
+ File[] files = dir.listFiles();
+ if(files.length > 0){
TreeSet<String> portsTree = new TreeSet<String>();
ArrayList<String> portsList = new ArrayList<String>();
- String buffer = "";
- while((buffer = reader.readLine()) != null && !buffer.isEmpty()){
- if(buffer.matches(".*(ttyS|ttyUSB)[0-9]{1,3}.*")){
- String[] tmp = buffer.split(" ");
- for(String value : tmp){
- if(value.matches("(ttyS|ttyUSB)[0-9]{1,3}")){
- portsTree.add("/dev/" + value);
- }
- }
+ for(File file : files){
+ if(!file.isDirectory() && !file.isFile() && file.getName().matches(".*(ttyS|ttyUSB|ttyACM)[0-9]{1,3}.*")){
+ portsTree.add("/dev/" + file.getName());
}
}
for(String portName : portsTree){
@@ -130,10 +125,7 @@
}
}
returnArray = portsList.toArray(returnArray);
- reader.close();
}
- catch (IOException ex) {
- //Do nothing
}
return returnArray;
}
@@ -179,7 +171,7 @@
TreeSet<String> portsTree = new TreeSet<String>();
ArrayList<String> portsList = new ArrayList<String>();
for(File file : files){
- if(!file.isDirectory() && !file.isFile() && file.getName().matches("tty.(serial.*|usbserial.*)")){
+ if(!file.isDirectory() && !file.isFile() && file.getName().matches("tty.(modem.*|usbmodem.*|serial.*|usbserial.*)")){
portsTree.add("/dev/" + file.getName());
}
}