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());
|
}
|
|
|
}
|