package com.sandu.ximon.admin.manager.iot.frame.inner.request; import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame; import com.sandu.ximon.admin.manager.iot.rrpc.enums.LightPoleHeelingEnum; import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum; import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils; /** * @author ZZQ * @date 2022/3/22 15:29 */ public class LightPoleHeelingSetHeartbeatPacketTimeReqInnerFrame implements IRequestInnerFrame { private final String payload; public LightPoleHeelingSetHeartbeatPacketTimeReqInnerFrame(int time) { String data = Integer.toHexString(time); switch (data.length()) { case 1: data = "000" + data; break; case 2: data = "00" + data; break; case 3: data = "0" + data; break; default: } payload = "FFFF" + data; } @Override public String getEncodeFrame() { String functionCode = LightPoleHeelingEnum.SetHeartbeatPacketTime.getCode(); String payloadLength = "0004"; String frame = functionCode + payloadLength + payload; return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); } }