package com.sandu.ximon.admin.manager.iot.frame.inner.request;
|
|
import cn.hutool.core.util.HexUtil;
|
import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
|
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
|
import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum;
|
import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
|
import com.sandu.ximon.admin.manager.iot.rrpc.util.SupplementUtils;
|
|
/**
|
* @author ZZQ
|
* @date 2022/4/1 10:37
|
*/
|
public class C3QrCodeReqInnerFrame implements IRequestInnerFrame {
|
private final String payload;
|
|
public C3QrCodeReqInnerFrame(String c3Mac, String qrCodeData) {
|
System.out.println("qrCodeData: " + qrCodeData);
|
String encodeHexStr = HexUtil.encodeHexStr(qrCodeData).toUpperCase();
|
payload = c3Mac + encodeHexStr;
|
}
|
|
@Override
|
public String getEncodeFrame() {
|
String functionCode = C3ChargingEnum.QrCode.getCode();
|
//长度可变,不定长
|
String payloadLength = SupplementUtils.suppleZero(Integer.toHexString((payload.length() / 2)).toUpperCase(), 4);
|
String frame = functionCode + payloadLength + payload;
|
return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
|
}
|
}
|