package com.ld.igds.protocol.beibo.grain.builder; import com.ld.igds.protocol.beibo.grain.util.BeiboGrainServerUtils; import com.ld.igds.util.BytesUtil; /** * 根据接收到的信息进行封装 * * @author czt */ public class ReMessageBuilder { private final static ReMessageBuilder instance = new ReMessageBuilder(); private ReMessageBuilder() { } public static ReMessageBuilder getInstance() { return instance; } /** * @param strMsg * @return */ public ReMessage buildMessage(String strMsg) { ReMessage message = new ReMessage(); message.setStrMsg(strMsg); //设置起始符 message.setStartStr(strMsg.substring(0, 9*2-1)); //设置粮情分机地址 String str = strMsg.substring(9*2-1, 10*2-1); int i = BytesUtil.hexToInt(str); String serId = String.valueOf(i - BeiboGrainServerUtils.BM); message.setSerId(serId); //粮情数据 str = strMsg.substring(10*2-1, 1034*2 -1); message.setGrainStr(str); //温度数据 str = strMsg.substring(1034*2 -1, 1052*2-1); message.setThStr(str); //扩充数据 str = strMsg.substring(strMsg.length()-14*2, strMsg.length()-4*2); message.setExpand(str); //检验码 str = strMsg.substring(strMsg.length()-4*2); message.setHexCrc16(str); return message; } }