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.A5LightDataEnum; import com.sandu.ximon.admin.manager.iot.rrpc.enums.A7PlcDataEnum; import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum; import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils; /** * PLC设置日历 * @author van */ public class A7PlcSetCalendarReqInnerFrame implements IRequestInnerFrame { private final String payload; public A7PlcSetCalendarReqInnerFrame(String lightAddress, int year, int month, int day, int hour, int min, int sec) { payload = lightAddress + hex10To16(year) + hex10To16(month) + hex10To16(day) + hex10To16(hour) + hex10To16(min) + hex10To16(sec); } @Override public String getEncodeFrame() { String functionCode = A7PlcDataEnum.SetCalendar.getCode(); String payloadLength = "0008"; String frame = functionCode + payloadLength + payload; return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); // return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(payload.toUpperCase()); } private String hex10To16(int value) { return String.format("%02X", value); } }