CommonQmDevice.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.mes.util;
  2. import com.mes.ui.ConfigParam;
  3. import com.mes.ui.MesClient;
  4. import com.mes.util.ytnetty.YtNettyClient;
  5. import com.mes.util.ytnetty.YtUtil;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import java.awt.*;
  9. import java.util.Arrays;
  10. import java.util.Timer;
  11. import java.util.TimerTask;
  12. public class CommonQmDevice {
  13. public static final Logger log = LoggerFactory.getLogger(SerialPortUtils.class);
  14. public String device;
  15. public SerialPortUtils serialPortUtils; // 串口
  16. public YtNettyClient ytClient; // 网口 中皖英泰
  17. public boolean isOnline; // 是否在线
  18. ConfigParam configParam;
  19. public CommonQmDevice(ConfigParam configParam) {
  20. this.device = configParam.getDevice();
  21. this.configParam = configParam;
  22. if(configParam.getDevice().equals("中皖英泰")){
  23. try {
  24. if(ytClient==null) {
  25. String ip = configParam.getSerialPort();
  26. String port = configParam.getBaudRate();
  27. //初始化TCP连接
  28. ytClient = new YtNettyClient();
  29. try{
  30. ytClient.run(ip,Integer.parseInt(port));
  31. // ytClient.run("192.168.0.253",3036);
  32. workTimerTask();
  33. }catch (Exception e){
  34. e.printStackTrace();
  35. }
  36. }
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. }
  40. }else{ // 串口
  41. serialPortUtils = new SerialPortUtils(configParam.getSerialPort(),"","",configParam.getDevice());
  42. }
  43. }
  44. public boolean isOnline() {
  45. isOnline = false;
  46. if(device.equals("中皖英泰")){
  47. isOnline = ytClient.getTcpOnline() == 1;
  48. }else{ // 串口
  49. isOnline = serialPortUtils.isOpen;
  50. }
  51. return isOnline;
  52. }
  53. public void reconnect(){
  54. if(device.equals("中皖英泰")){
  55. try {
  56. ytClient = null;
  57. String ip = configParam.getSerialPort();
  58. String port = configParam.getBaudRate();
  59. //初始化TCP连接
  60. ytClient = new YtNettyClient();
  61. try{
  62. ytClient.run(ip,Integer.parseInt(port));
  63. // ytClient.run("192.168.0.253",3036);
  64. workTimerTask();
  65. }catch (Exception e){
  66. e.printStackTrace();
  67. }
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. }
  71. }else{ // 串口
  72. serialPortUtils = new SerialPortUtils(configParam.getSerialPort(),"","",configParam.getDevice());
  73. }
  74. }
  75. public Timer workTimer;
  76. public void workTimerTask() {
  77. if(workTimer!=null) {
  78. workTimer.cancel();
  79. }
  80. workTimer = new Timer();
  81. workTimer.schedule(new TimerTask() {
  82. public void run() {
  83. try{
  84. if (MesClient.work_status == 1) {
  85. // 循环查询实时结果
  86. ytClient.future.channel().writeAndFlush(YtUtil.getSendByteBuf(YtUtil.getCurDataCommon()));
  87. }
  88. }catch (Exception e){
  89. e.printStackTrace();
  90. }
  91. }
  92. }, 500, 500);
  93. }
  94. public boolean start() {
  95. try{
  96. if(device.equals("中皖英泰")){
  97. ytClient.future.channel().writeAndFlush(YtUtil.getSendByteBuf(YtUtil.getStartCommon()));
  98. }else{ // 串口
  99. serialPortUtils.start();
  100. }
  101. }catch (Exception e){
  102. e.printStackTrace();
  103. return false;
  104. }
  105. return true;
  106. }
  107. }