package com.dy.pipIrrMwTestWeb.p206V1; import com.dy.common.mw.protocol.Command; import com.dy.common.mw.protocol.CommandType; import com.dy.common.mw.protocol.p206V1.CodeV1; import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1; import com.dy.common.mw.protocol.p206V1.downVos.*; import com.dy.common.util.DateTime; import com.dy.common.webUtil.BaseResponse; import com.dy.pipIrrMwTestWeb.common.CodeLocal; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @Author: liurunyu * @Date: 2024/6/29 6:46 * @Description */ @Slf4j @RestController @RequestMapping(path="comP206V1") @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") public class CommandP206V1Ctrl extends ComSupportP206V1 { @GetMapping(path = "test") public BaseResponse test(String com) { BaseResponse rt = null ; if(com == null){ rt = this.connect() ;//连接通信中间件测试 }else{ try{ if(com.equals(CodeLocal.stopTcpSv)){ rt = this.stopTcpSv() ; }else if(com.equals(CodeLocal.recoverTcpSv)){ rt = this.recoverTcpSv() ; }else if(com.equals(CodeLocal.mwState)){ rt = this.mwState() ; }else if(com.equals(CodeLocal.onLine)){ rt = this.mwAllOnLine() ; }else if(com.equals("10")){ rt = this.cd10() ; }else if(com.equals("21")){ rt = this.cd21() ; }else if(com.equals("37")){ rt = this.cd37() ; }else if(com.equals("67")){ rt = this.cd67() ; }else if(com.equals("38")){ rt = this.cd38() ; }else if(com.equals("68")){ rt = this.cd68() ; }else if(com.equals("39")){ rt = this.cd39() ; }else if(com.equals("69")){ rt = this.cd69() ; }else if(com.equals("3A")){ rt = this.cd3A() ; }else if(com.equals("6A")){ rt = this.cd6A() ; }else if(com.equals("3B")){ rt = this.cd3B() ; }else if(com.equals("6B")){ rt = this.cd6B() ; }else if(com.equals("3C")){ rt = this.cd3C() ; }else if(com.equals("65")){ rt = this.cd65() ; }else if(com.equals("91")){ rt = this.cd91() ; }else if(com.equals("92")){ rt = this.cd92() ; }else if(com.equals("93")){ rt = this.cd93() ; }else if(com.equals("97")){ rt = this.cd97() ; }else if(com.equals("98")){ rt = this.cd98() ; }else if(com.equals("99")){ rt = this.cd99() ; }else if(com.equals("A0")){ rt = this.cdA0() ; }else if(com.equals("A1")){ rt = this.cdA1() ; }else if(com.equals("A2")){ rt = this.cdA2() ; }else if(com.equals("B0")){ rt = this.cdB0() ; } }catch (Exception e){ e.printStackTrace(); } } return rt ; } /** * 测试连通性 * @return */ private BaseResponse connect(){ return this.sendTest() ; } private BaseResponse stopTcpSv(){ return this.sendCom2Mw(this.commandLocal(CodeLocal.stopTcpSv, null, null)) ; } private BaseResponse recoverTcpSv(){ return this.sendCom2Mw(this.commandLocal(CodeLocal.recoverTcpSv, null, null)) ; } private BaseResponse mwState(){ return this.sendCom2Mw(this.commandLocal(CodeLocal.mwState, null, null)) ; } private BaseResponse mwAllOnLine(){ return this.sendCom2Mw(this.commandLocal(CodeLocal.onLine, null, null)) ; } private BaseResponse cd10(){ Com10Vo comVo = new Com10Vo() ; comVo.rtuAddr = "532328059995" ;//前6位是行政区划码,后6位是序列号最大是065535 return this.sendCom2Mw(this.commandOuter(CodeV1.cd_10, comVo, null)) ; } private BaseResponse cd21(){ Com21Vo comVo = new Com21Vo() ; comVo.ip = "8.140.180.59" ;//IP(例如 125.235.35.89) comVo.port = 6001 ;///端口号(0~65536) return this.sendCom2Mw(this.commandOuter(CodeV1.cd_21, comVo, null)) ; } private BaseResponse cd37(){ Com37Vo comVo = new Com37Vo() ; comVo.seconds = 20 ;//单位秒 return this.sendCom2Mw(this.commandOuter(CodeV1.cd_37, comVo, null)) ; } private BaseResponse cd67(){ Com37Vo comVo = new Com37Vo() ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_67, comVo, null)) ; } private BaseResponse cd38(){ Com38Vo comVo = new Com38Vo() ; comVo.remainMoneyAlarm = 10.0 ;//用户余额报警值(大于1.0) return this.sendCom2Mw(this.commandOuter(CodeV1.cd_38, comVo, null)) ; } private BaseResponse cd68(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_68, null, null)) ; } private BaseResponse cd39(){ Com39Vo comVo = new Com39Vo() ; comVo.batteryVoltAlarm = 7.0 ;//电池电压报警值(大于0.1) return this.sendCom2Mw(this.commandOuter(CodeV1.cd_39, comVo, null)) ; } private BaseResponse cd69(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_69, null, null)) ; } private BaseResponse cd3A(){ Com3AVo comVo = new Com3AVo() ; comVo.current = 1.0 ;//阀门堵转电流(大于0) return this.sendCom2Mw(this.commandOuter(CodeV1.cd_3A, comVo, null)) ; } private BaseResponse cd6A(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_6A, null, null)) ; } private BaseResponse cd3B(){ Com3BVo comVo = new Com3BVo() ; comVo.second = 120 ;//阀门超时时间(秒)(大于1) return this.sendCom2Mw(this.commandOuter(CodeV1.cd_3B, comVo, null)) ; } private BaseResponse cd6B(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_6B, null, null)) ; } private BaseResponse cd3C(){ Com3CVo comVo = new Com3CVo() ; comVo.minute = 5 ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_3C, comVo, null)) ; } private BaseResponse cd65(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_65, null, null)) ; } private BaseResponse cd91() { return this.sendCom2Mw(this.commandOuter(CodeV1.cd_91, null, null)) ; } private BaseResponse cd92(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_92, null, null)) ; } private BaseResponse cd93(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_93, null, null)) ; } //APP远程开阀 private BaseResponse cd97(){ Com97Vo comVo = new Com97Vo() ; comVo.icCardNo = CommandP206V1Ctrl.vsIcCardNo; comVo.moneyRemain = 234.56 ; comVo.waterPrice = 1.2 ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_97, comVo, null)) ; } //APP远程关阀 private BaseResponse cd98(){ Com98Vo comVo = new Com98Vo() ; comVo.icCardNo = CommandP206V1Ctrl.vsIcCardNo; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_98, comVo, null)) ; } //定时关阀开阀 private BaseResponse cd99(){ Com99Vo comVo = new Com99Vo() ; comVo.icCardNo = CommandP206V1Ctrl.vsIcCardNo; comVo.moneyRemain = 234.56 ; comVo.waterPrice = 1.2 ; comVo.minutes = 3 ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_99, comVo, null)) ; } //定量关阀开阀 private BaseResponse cdA0(){ ComA0Vo comVo = new ComA0Vo() ; comVo.icCardNo = CommandP206V1Ctrl.vsIcCardNo; comVo.moneyRemain = 1.23 ; comVo.waterPrice = 1.2 ; comVo.waterAmount = 10 ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_A0, comVo, null)) ; } //定时关阀计划开阀 private BaseResponse cdA1() throws Exception { ComA1Vo comVo = new ComA1Vo() ; comVo.icCardNo = CommandP206V1Ctrl.vsIcCardNo; comVo.moneyRemain = 1.23 ; comVo.waterPrice = 1.2 ; comVo.minutes = 30 ; String nextDtStr = DateTime.nextXMinute_yyyy_MM_dd_HH_mm_ss(DateTime.yyyy_MM_dd_HH_mm_ss(), 3) ;//将来X分钟 int[] nextDt = DateTime.yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(nextDtStr) ; comVo.year = nextDt[0] ; comVo.month = nextDt[1] ; comVo.day = nextDt[2] ; comVo.hour = nextDt[3] ; comVo.minute = nextDt[4] ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_A1, comVo, null)) ; } //定量关阀计划开阀 private BaseResponse cdA2() throws Exception { ComA2Vo comVo = new ComA2Vo() ; comVo.icCardNo = CommandP206V1Ctrl.vsIcCardNo; comVo.moneyRemain = 234.56 ; comVo.waterPrice = 1.2 ; comVo.waterAmount = 10 ; String nextDtStr = DateTime.nextXMinute_yyyy_MM_dd_HH_mm_ss(DateTime.yyyy_MM_dd_HH_mm_ss(), 3) ;//将来X分钟 int[] nextDt = DateTime.yyyy_MM_dd_HH_MM_SS_2_ymdhmsGroup(nextDtStr) ; comVo.year = nextDt[0] ; comVo.month = nextDt[1] ; comVo.day = nextDt[2] ; comVo.hour = nextDt[3] ; comVo.minute = nextDt[4] ; return this.sendCom2Mw(this.commandOuter(CodeV1.cd_A2, comVo, null)) ; } private BaseResponse cdB0(){ return this.sendCom2Mw(this.commandOuter(CodeV1.cd_B0, null, null)) ; } //在线情况 private BaseResponse online(){ Command com = new Command() ; com.id = Command.defaultId;//实际应用中,替换成数据库记录id com.protocol = ProtocolConstantV206V1.protocolName ; com.code = CodeLocal.onLine ; com.type = CommandType.innerCommand ; com.rtuResultSendWebUrl = rtuResultSendWebUrl ; return this.sendCom2Mw(com) ; } }