package com.dy.common.mw.protocol; import com.alibaba.fastjson2.JSON; import java.io.Serial; /** * 数据根 * @author Administrator * */ public class Data implements java.io.Serializable{ @Serial private static final long serialVersionUID = 20160805192500101L; private String commandId ;//命令ID,可能为null private String rtuAddr ;//终端地址 private String meterNo ;//水表号 private String protocol ;//数据所对应的协议名称 private String code ;//数据所对应的功能码: private Object subData ;//对应各个功能码的具体数据 private String hex ;//上报数据的十六进制 public String toString() { StringBuilder sb = new StringBuilder() ; sb.append("上行报文(十六进制): ").append((hex == null?"":hex)).append("\n") ; // sb.append("IMEI号 : ").append((rtuAddr==null?"":rtuAddr)).append("\n") ; sb.append("水表号 : ").append((meterNo==null?"":meterNo)).append("\n") ; if(commandId != null){ sb.append("命令ID : ").append(commandId).append("\n") ; //命令ID } sb.append("协议 : ").append((protocol == null?"":protocol)).append("\n") ; // sb.append((code == null ? "" : ("功能码:" + code + "\n"))) ; if(this.subData != null){ sb.append("上行数据:\n").append(this.subData) ; } return sb.toString() ; } /** * 对象转成json * @return 对象 */ public String toJson(){ return JSON.toJSONString(this); } /** * json转成对象 * @param json json * @return Data Date */ @SuppressWarnings("unused") public static Data jsonToObject(String json){ return JSON.parseObject(json, Data.class) ; } /* public static void main(String[] rags) throws Exception{ Data d = new Data() ; d.code = "01" ; d.rtuAddr = "123234" ; d.meterNo = "1234567890123456" ; DataV1_0_1 subD = new DataV1_0_1() ; subD.rtuAddr = "2342345" ; subD.meterNo = "1234567890123456" ; d.subData = subD ; DataCd01Vo cd1Vo = new DataCd01Vo() ; cd1Vo.dt = "345w" ; subD.dataCd01Vo = cd1Vo ; String json = d.toJson() ; System.out.println(json); } */ public String getRtuAddr() { return rtuAddr; } public void setRtuAddr(String rtuAddr) { this.rtuAddr = rtuAddr; } public String getMeterNo() { return meterNo; } public void setMeterNo(String meterNo) { this.meterNo = meterNo; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getProtocol() { return protocol; } public void setProtocol(String protocol) { this.protocol = protocol; } public Object getSubData() { return subData; } public void setSubData(Object subData) { this.subData = subData; } @SuppressWarnings("unused") public String getHex() { return hex; } public void setHex(String hex) { this.hex = hex; } public void setCommandId(String commandId) { this.commandId = commandId; } /** * 得到上行数据对应的命令ID * 如果是主动上报数据,则此ID为空 * @return commandId */ public String getCommandId(){ return this.commandId ; } }