| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package com.mes.util;
- import com.mes.ui.ConfigParam;
- import com.mes.ui.MesClient;
- import com.mes.util.ytnetty.YtNettyClient;
- import com.mes.util.ytnetty.YtUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.awt.*;
- import java.util.Arrays;
- import java.util.Timer;
- import java.util.TimerTask;
- public class CommonQmDevice {
- public static final Logger log = LoggerFactory.getLogger(SerialPortUtils.class);
- public String device;
- public SerialPortUtils serialPortUtils; // 串口
- public YtNettyClient ytClient; // 网口 中皖英泰
- public boolean isOnline; // 是否在线
- ConfigParam configParam;
- public CommonQmDevice(ConfigParam configParam) {
- this.device = configParam.getDevice();
- this.configParam = configParam;
- if(configParam.getDevice().equals("中皖英泰")){
- try {
- if(ytClient==null) {
- String ip = configParam.getSerialPort();
- String port = configParam.getBaudRate();
- //初始化TCP连接
- ytClient = new YtNettyClient();
- try{
- ytClient.run(ip,Integer.parseInt(port));
- // ytClient.run("192.168.0.253",3036);
- workTimerTask();
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }else{ // 串口
- serialPortUtils = new SerialPortUtils(configParam.getSerialPort(),"","",configParam.getDevice());
- }
- }
- public boolean isOnline() {
- isOnline = false;
- if(device.equals("中皖英泰")){
- isOnline = ytClient.getTcpOnline() == 1;
- }else{ // 串口
- isOnline = serialPortUtils.isOpen;
- }
- return isOnline;
- }
- public void reconnect(){
- if(device.equals("中皖英泰")){
- try {
- ytClient = null;
- String ip = configParam.getSerialPort();
- String port = configParam.getBaudRate();
- //初始化TCP连接
- ytClient = new YtNettyClient();
- try{
- ytClient.run(ip,Integer.parseInt(port));
- // ytClient.run("192.168.0.253",3036);
- workTimerTask();
- }catch (Exception e){
- e.printStackTrace();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }else{ // 串口
- serialPortUtils = new SerialPortUtils(configParam.getSerialPort(),"","",configParam.getDevice());
- }
- }
- public Timer workTimer;
- public void workTimerTask() {
- if(workTimer!=null) {
- workTimer.cancel();
- }
- workTimer = new Timer();
- workTimer.schedule(new TimerTask() {
- public void run() {
- try{
- if (MesClient.work_status == 1) {
- // 循环查询实时结果
- ytClient.future.channel().writeAndFlush(YtUtil.getSendByteBuf(YtUtil.getCurDataCommon()));
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }, 500, 500);
- }
- public boolean start() {
- try{
- if(device.equals("中皖英泰")){
- ytClient.future.channel().writeAndFlush(YtUtil.getSendByteBuf(YtUtil.getStartCommon()));
- }else{ // 串口
- serialPortUtils.start();
- }
- }catch (Exception e){
- e.printStackTrace();
- return false;
- }
- return true;
- }
- }
|