Advertisement
Guest User

Untitled

a guest
Oct 21st, 2020
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. package sample;
  2.  
  3. import javafx.fxml.FXML;
  4. import javafx.scene.control.Button;
  5. import javafx.scene.control.TextField;
  6. import jssc.SerialPort;
  7. import jssc.SerialPortException;
  8.  
  9.  
  10. public class Controller {
  11.  
  12. @FXML
  13. private TextField winCOm1;
  14.  
  15. @FXML
  16. private Button btnCom1;
  17.  
  18. @FXML
  19. private Button btnCom2;
  20.  
  21. @FXML
  22. private Button btnCom3;
  23.  
  24. @FXML
  25. private Button btnCom4;
  26.  
  27. @FXML
  28. private Button btnCom5;
  29.  
  30. @FXML
  31. private Button btnCom6;
  32.  
  33. @FXML
  34. private Button btnCom7;
  35.  
  36. @FXML
  37. private Button btnCom8;
  38.  
  39. @FXML
  40. void initialize() {
  41. btnCom1.setOnAction(event -> {
  42. addStringWinCom1(str);
  43.  
  44. });
  45.  
  46. btnCom2.setOnAction(event -> {
  47. addStringWinCom2(ComPort.getTempValue(bTemp));
  48.  
  49. });
  50.  
  51. btnCom3.setOnAction(event -> {
  52. addStringWinCom3(ComPort.getSciplessByteArray(ComPort.workToComPort(serialPort, array)));
  53.  
  54. });
  55.  
  56. btnCom4.setOnAction(event -> {
  57. addStringWinCom4(str1);
  58.  
  59. });
  60.  
  61. btnCom5.setOnAction(event ->{
  62. if(s == ComPort.workToComPort(serialPort, array)){
  63. addStringWinCom1(str);
  64. }
  65.  
  66.  
  67. });
  68.  
  69. }
  70.  
  71. private void addStringWinCom1(String string) {
  72.  
  73. winCOm1.setText(string);
  74. }
  75.  
  76. private void addStringWinCom2(String string) {
  77. winCOm1.setText(string);
  78. }
  79.  
  80. private void addStringWinCom3(String string) {
  81. winCOm1.setText(string);
  82. }
  83.  
  84. private void addStringWinCom4(String string) {
  85. winCOm1.setText(string);
  86. }
  87.  
  88. private SerialPort serialPort = new SerialPort("COM4");
  89.  
  90. private byte[] array = {(byte) 0xc4, 0x00}; //1-я команда
  91. private byte[] s = ComPort.workToComPort(serialPort, array);
  92. private String str = ComPort.getStringValue(ComPort.workToComPort(serialPort, array));
  93. private String bTemp = str.substring(20);
  94.  
  95. private byte[] com1 = {(byte) 0xc4, 0x01}; //2-я команда
  96. private byte[] s1 = ComPort.workToComPort(serialPort, com1);
  97. private String str1 = ComPort.getStringValue(s1);
  98.  
  99.  
  100. private static class ComPort {
  101.  
  102.  
  103. private static byte[] workToComPort(SerialPort s, byte[] arr) { //приём и и чтение данных с ком порта
  104.  
  105. byte[] data = null;
  106.  
  107. try {
  108. s.openPort();
  109. s.setParams(SerialPort.BAUDRATE_115200,
  110. SerialPort.DATABITS_8,
  111. SerialPort.STOPBITS_1,
  112. SerialPort.PARITY_NONE);
  113. s.writeBytes(arr);
  114. try {
  115. Thread.sleep(1000);
  116. } catch (InterruptedException e) {
  117. e.printStackTrace();
  118. }
  119.  
  120. data = s.readBytes();
  121.  
  122. s.closePort();
  123.  
  124. } catch (SerialPortException e) {
  125. e.printStackTrace();
  126. }
  127. return data;
  128. }
  129.  
  130. private static String getStringValue(byte[] arr) {
  131.  
  132. StringBuilder sb = new StringBuilder();
  133. for (byte b : arr) {
  134. sb.append(String.format("%02X ", b));
  135.  
  136. }
  137. return (sb.toString());
  138. }
  139.  
  140. private static String getTempValue(String string) { //получить значение температуры датчика
  141.  
  142. String x = string.replaceAll("\\s", "");
  143. int num = Integer.parseInt(x, 16);
  144. String y = String.valueOf(num);
  145.  
  146. // int c = (int)s[7];
  147. // String b = String.valueOf(c);
  148.  
  149. return y;
  150. }
  151.  
  152. private static String getSciplessByteArray(byte[] b) { //получить уникальный номер датчика
  153.  
  154. byte[] xResult = new byte[4];
  155. xResult[0] = b[4];
  156. xResult[1] = b[5];
  157. xResult[2] = b[6];
  158. xResult[3] = b[7];
  159.  
  160. StringBuilder sb = new StringBuilder();
  161. for (byte i : xResult) {
  162. sb.append(String.format("%02X ", i));
  163.  
  164. }
  165. return (sb.toString());
  166. }
  167.  
  168. }
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement