ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java
@@ -152,6 +152,42 @@ return ResponseUtil.success(c3ChargingService.SetConstant(c3ChargingParam.getC3Mac(), c3ChargingParam.getConstant())); } /** * 设置å°å */ @PostMapping("/SetAddress") public ResponseVO<Object> SetAddress(@RequestBody @Validated C3ChargingParam c3ChargingParam) { return ResponseUtil.success(c3ChargingService.SetAddress(c3ChargingParam.getC3Mac(), c3ChargingParam.getAddress())); } /** * 设置æ¥åï¼åå¿è·³å ä¸ç6åèæ¥ææ¶é´ï¼ */ @PostMapping("/SetCalendar") public ResponseVO<Object> SetCalendar(@RequestBody @Validated C3ChargingParam c3ChargingParam) { return ResponseUtil.success(c3ChargingService.SetCalendar(c3ChargingParam.getC3Mac() , c3ChargingParam.getYear(), c3ChargingParam.getMonth(), c3ChargingParam.getDay(), c3ChargingParam.getHour(), c3ChargingParam.getMin(), c3ChargingParam.getSec())); } /** * æ éç 䏿¥æ¸ é¤ */ @PostMapping("/ClearedFaultCode") public ResponseVO<Object> ClearedFaultCode(@RequestBody @Validated C3ChargingParam c3ChargingParam) { return ResponseUtil.success(c3ChargingService.ClearedFaultCode(c3ChargingParam.getC3Mac())); } /** * æ¢å¤åºåå¼ */ @PostMapping("/RestoreFactoryValue") public ResponseVO<Object> RestoreFactoryValue(@RequestBody @Validated C3ChargingParam c3ChargingParam) { return ResponseUtil.success(c3ChargingService.RestoreFactoryValue(c3ChargingParam.getC3Mac())); } /** * 软éå¯ ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3ClearedFaultCodeReqInnerFrame.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ 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.C3ChargingEnum; 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/3 16:43 */ public class C3ClearedFaultCodeReqInnerFrame implements IRequestInnerFrame { private final String payload; public C3ClearedFaultCodeReqInnerFrame(String c3Mac) { payload = c3Mac; } @Override public String getEncodeFrame() { String functionCode = C3ChargingEnum.ClearedFaultCode.getCode(); String payloadLength = "0004"; String frame = functionCode + payloadLength + payload; return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); } } ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3RestoreFactoryValueReqInnerFrame.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ 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.C3ChargingEnum; 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/3 16:43 */ public class C3RestoreFactoryValueReqInnerFrame implements IRequestInnerFrame { private final String payload; public C3RestoreFactoryValueReqInnerFrame(String c3Mac) { payload = c3Mac; } @Override public String getEncodeFrame() { String functionCode = C3ChargingEnum.RestoreFactoryValue.getCode(); String payloadLength = "0004"; String frame = functionCode + payloadLength + payload; return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); } } ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3SetAddressReqInnerFrame.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ 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.C3ChargingEnum; 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/3 16:43 */ public class C3SetAddressReqInnerFrame implements IRequestInnerFrame { private final String payload; public C3SetAddressReqInnerFrame(String c3Mac, String address) { payload = c3Mac + address; } @Override public String getEncodeFrame() { String functionCode = C3ChargingEnum.SetAddress.getCode(); String payloadLength = "0008"; String frame = functionCode + payloadLength + payload; return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); } } ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3SetCalendarReqInnerFrame.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ 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.C3ChargingEnum; 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/3 16:43 */ public class C3SetCalendarReqInnerFrame implements IRequestInnerFrame { private final String payload; public C3SetCalendarReqInnerFrame(String c3Mac, int year, int month, int day, int hour, int min, int sec) { payload = c3Mac + hex10To16(year) + hex10To16(month) + hex10To16(day) + hex10To16(hour) + hex10To16(min) + hex10To16(sec); } @Override public String getEncodeFrame() { String functionCode = C3ChargingEnum.SetCalendar.getCode(); String payloadLength = "000A"; String frame = functionCode + payloadLength + payload; return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase()); } private String hex10To16(int value) { return String.format("%02X", value); } } ximon-admin/src/main/java/com/sandu/ximon/admin/param/C3ChargingParam.java
@@ -27,4 +27,20 @@ //设置çµå/çµæµå¸¸æ°(åä¸åè)(é»è®¤å¼0xBC64) private String constant = "BC64"; //设置å°å private String address; //å¹´ private int year; //æ private int month; //æ¥ private int day; //æ¶ private int hour; //å private int min; //ç§ private int sec; } ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -349,6 +349,113 @@ } /** * 设置å°å * * @param c3Mac * @param address * @return */ public String SetAddress(String c3Mac, String address) { if (address == null || address.length() != 8) { throw new BusinessException("å°åä¿¡æ¯é误ï¼"); } C3SetAddressReqInnerFrame setAddressReqInnerFrame = new C3SetAddressReqInnerFrame(c3Mac, address); A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), setAddressReqInnerFrame); System.out.println(a5Frame + " -----a5Frame"); CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame); System.out.println(commonFrame + " -----commonFrame"); A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload()); if (operationReportInnerFrame.isValidate()) { return operationReportInnerFrame.getState(); } else { throw new BusinessException("æ°æ®æ ¡éªé误ï¼è¯·éæ°è¯·æ±"); } } /** * 设置æ¥åï¼åå¿è·³å ä¸ç6åèæ¥ææ¶é´ï¼ * * @param c3Mac * @return */ public String SetCalendar(String c3Mac, int year, int month, int day, int hour, int min, int sec) { C3SetCalendarReqInnerFrame setCalendarReqInnerFrame = new C3SetCalendarReqInnerFrame(c3Mac, year, month, day, hour, min, sec); A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), setCalendarReqInnerFrame); System.out.println(a5Frame + " -----a5Frame"); CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame); System.out.println(commonFrame + " -----commonFrame"); A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload()); if (operationReportInnerFrame.isValidate()) { return operationReportInnerFrame.getState(); } else { throw new BusinessException("æ°æ®æ ¡éªé误ï¼è¯·éæ°è¯·æ±"); } } /** * æ éç 䏿¥æ¸ é¤ * * @param c3Mac * @return */ public String ClearedFaultCode(String c3Mac) { C3ClearedFaultCodeReqInnerFrame clearedFaultCodeReqInnerFrame = new C3ClearedFaultCodeReqInnerFrame(c3Mac); A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), clearedFaultCodeReqInnerFrame); System.out.println(a5Frame + " -----a5Frame"); CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame); System.out.println(commonFrame + " -----commonFrame"); A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload()); if (operationReportInnerFrame.isValidate()) { return operationReportInnerFrame.getState(); } else { throw new BusinessException("æ°æ®æ ¡éªé误ï¼è¯·éæ°è¯·æ±"); } } /** * æ¢å¤åºåå¼ * * @param c3Mac * @return */ public String RestoreFactoryValue(String c3Mac) { C3RestoreFactoryValueReqInnerFrame restoreFactoryValueReqInnerFrame = new C3RestoreFactoryValueReqInnerFrame(c3Mac); A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), restoreFactoryValueReqInnerFrame); System.out.println(a5Frame + " -----a5Frame"); CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame); System.out.println(commonFrame + " -----commonFrame"); A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload()); if (operationReportInnerFrame.isValidate()) { return operationReportInnerFrame.getState(); } else { throw new BusinessException("æ°æ®æ ¡éªé误ï¼è¯·éæ°è¯·æ±"); } } /** * 软éå¯ * * @param c3Mac