package com.sandu.ximon.admin.manager.iot.frame.inner; import com.sandu.ximon.admin.entity.InnerFrame; import com.sandu.ximon.admin.entity.MQTTConnectType; import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils; import com.sandu.ximon.admin.manager.iot.rrpc.util.SupplementUtils; import com.sandu.ximon.admin.utils.HexStrConvertUtil; public class AtmoCommonFrame implements InnerFrame { // MQTT前导码 private MQTTConnectType mqttConnectType = MQTTConnectType.SYNCHRONIZATION; // 大气功能码 private AtmoFunctionCode atmoFunctionCode; // 负荷长度 private String payLoadLength; // 目标地址 private String payload; public AtmoCommonFrame(AtmoFunctionCode functionCode,String payload){ this.atmoFunctionCode = functionCode; this.payload = payload; } @Override public String getCommand() { this.payLoadLength = SupplementUtils.suppleZero(HexStrConvertUtil.tenToHex(this.payload.length()/2),4); String frame = this.atmoFunctionCode.getCode() + this.payLoadLength + payload; return mqttConnectType.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); } }