jssc-0.9.patch 3.7 KB

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