package com.modbus.data; import java.text.NumberFormat; import com.base.ComBase; import com.serotonin.modbus4j.ModbusMaster; import com.serotonin.modbus4j.ip.IpParameters; public class MyModbusMaster { public final static int SLAVEID_DEFAULT = 2; public final static int MAX_ERROR_COUNT = 2; //×î´óÁ¬Ðø´íÎó¼ÆÊý private ModbusMaster master; private int errcount; //´íÎó¼ÆÊý ´íÎóÁ¬Ðø³¬¹ýÈý¸öÊ±ÖØÐ»ñÈ¡master private String target_ip; //Ä¿±êip private int slaveId; //É豸ID public MyModbusMaster(String target_ip,int slaveId) { this.target_ip = target_ip; this.slaveId = slaveId; IpParameters params = new IpParameters(); params.setHost(target_ip); this.master = MyModbusFactory.getMaster(params); } public void addErrorCount() { this.errcount++; if(this.errcount > MAX_ERROR_COUNT) { reConnect(); } } public void reConnect() { IpParameters params = new IpParameters(); params.setHost(target_ip); if(this.master != null) { //Çå¿ÕÉÏÒ»¸ömaster this.master.destroy(); } this.errcount = 0; this.master = MyModbusFactory.getMaster(params); } /** * ÅжϻñÈ¡µ½µÄÖµÊÇ·ñΪ¿Õ * @param target * @param source * @return */ public static Object checkNullData(Object target,Object source) { if(null == target) { return source; } try { if(target instanceof Number) { if(source instanceof Integer) { return ((Number) target).intValue(); }else if(source instanceof Float) { return ((Number) target).floatValue(); } } if(target instanceof Boolean) { //ÅжÏBooleanÀàÐÍÊý¾Ý if((Boolean)target) { target = 1; }else { target = 0; } } } catch (Exception e) { e.printStackTrace(); } return target; } public ModbusMaster getMaster() { return master; } public int getErrcount() { return errcount; } public void setMaster(ModbusMaster master) { this.master = master; } public void setErrcount(int errcount) { this.errcount = errcount; } public String getTarget_ip() { return target_ip; } public void setTarget_ip(String target_ip) { this.target_ip = target_ip; } public int getSlaveId() { return slaveId; } public void setSlaveId(int slaveId) { this.slaveId = slaveId; } @Override public String toString() { return "MyModbusMaster [SLAVEID_DEFAULT=" + SLAVEID_DEFAULT + ", master=" + master + ", errcount=" + errcount + ", target_ip=" + target_ip + ", slaveId=" + slaveId + "]"; } }