package com.ld.igds.protocol.beibo.grainv1.builder; import com.ld.igds.protocol.beibo.grainv1.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)); //设置粮情分机地址 String str = strMsg.substring(9*2, 10*2); int i = BytesUtil.hexToInt(str); str = String.valueOf(i - BeiboGrainServerUtils.BM); message.setSerId(str); //粮情数据 str = strMsg.substring(10*2, 1034*2); message.setGrainStr(str); //温度数据 str = strMsg.substring(1034*2, 1052*2); message.setThStr(str); //扩充数据 str = strMsg.substring(1052*2, 1062*2); message.setExpand(str); //检验码 str = strMsg.substring(1062*2); message.setHexCrc16(str); return message; } }