From 126df247aa6acf76db3ca6535a84a0eb0093e07c Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期一, 03 七月 2023 14:02:21 +0800 Subject: [PATCH] 控制参数读取,设置,控制成功 --- src/main/java/com/whyc/service/AirconditionerParamService.java | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/service/AirconditionerParamService.java b/src/main/java/com/whyc/service/AirconditionerParamService.java index 8c1ef1c..5b95b16 100644 --- a/src/main/java/com/whyc/service/AirconditionerParamService.java +++ b/src/main/java/com/whyc/service/AirconditionerParamService.java @@ -1,7 +1,98 @@ package com.whyc.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.pagehelper.PageHelper; +import com.whyc.mapper.AirconditionerParamMapper; +import com.whyc.pojo.AirconditionerParam; +import com.whyc.pojo.Response; +import com.whyc.util.CmdUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class AirconditionerParamService { + @Autowired(required = false) + private AirconditionerParamMapper mapper; + //鍙戦�佸懡浠� + public boolean sendCmdToDev(int opCmd,int dev_id) + { + int m_cmd = opCmd; + int m_cmd_ack = opCmd; + switch(m_cmd) { + case CmdUtil.CMD_GetAirParam: m_cmd_ack = CmdUtil.CMD_GetAirParam_Ack; break; + case CmdUtil.CMD_SetAirParam: m_cmd_ack = CmdUtil.CMD_SetAirParam_Ack; break; + case CmdUtil.CMD_StartAirWork: m_cmd_ack = CmdUtil.CMD_StartAirWork_Ack; break; + case CmdUtil.CMD_StopAirWork: m_cmd_ack = CmdUtil.CMD_StopAirWork_Ack; break; + case CmdUtil.CMD_StartAirOnDuty: m_cmd_ack = CmdUtil.CMD_StartAirOnDuty_Ack; break; + case CmdUtil.CMD_StopAirOnDuty: m_cmd_ack = CmdUtil.CMD_StopAirOnDuty_Ack; break; + case CmdUtil.CMD_StartAirDisinfect: m_cmd_ack = CmdUtil.CMD_StartAirDisinfect_Ack; break; + case CmdUtil.CMD_StopAirDisinfect: m_cmd_ack = CmdUtil.CMD_StopAirDisinfect_Ack; break; + case CmdUtil.CMD_StartAirExhaustFan: m_cmd_ack = CmdUtil.CMD_StartAirExhaustFan_Ack; break; + case CmdUtil.CMD_StopAirExhaustFan: m_cmd_ack = CmdUtil.CMD_StopAirExhaustFan_Ack; break; + default: + return false; + } + //鏇存柊op_cmd + UpdateWrapper updateWrapper=new UpdateWrapper(); + updateWrapper.set("op_cmd",m_cmd); + updateWrapper.eq("dev_id",dev_id); + int flag=mapper.update(null,updateWrapper); + boolean res_exe = false; + if(flag>0) + { + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("dev_id",dev_id); + queryWrapper.last("limit 1"); + for(int n=0; n<40; n++) + { + + AirconditionerParam airParam=mapper.selectOne(queryWrapper); + if(airParam!=null){ + if(airParam.getOpCmd()==m_cmd_ack){ + res_exe = true; + break; + } + try { + Thread.sleep(250); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }else { + break; + } + } + } + return res_exe; + } + + //璇诲彇鍙傛暟-绌鸿皟 + public Response searchAir(int devId) { + boolean res = sendCmdToDev(CmdUtil.CMD_GetAirParam, devId); + AirconditionerParam airParam = null; + if(res){ + QueryWrapper<AirconditionerParam> query = Wrappers.query(); + query.eq("dev_id",devId).last(" limit 1"); + airParam = mapper.selectOne(query); + } + return new Response().setII(1, res, airParam, res ? "璇诲彇鍙傛暟鎴愬姛" : "璇诲彇鍙傛暟澶辫触,璇锋鏌ョ綉缁�"); + } + //璁剧疆鍙傛暟-绌鸿皟 + public Response updateAir(AirconditionerParam param) { + int devId = param.getDevId(); + UpdateWrapper<AirconditionerParam> update = Wrappers.update(); + update.set("st_temp",param.getStTemp()) + .set("st_humid",param.getStHumid()) + .eq("dev_id",devId); + mapper.update(null,update); + boolean res = sendCmdToDev(CmdUtil.CMD_SetAirParam, param.getDevId()); + return new Response().set(1, res, res ? "淇敼鍙傛暟鎴愬姛" : "璁剧疆鍙傛暟澶辫触,璇锋鏌ョ綉缁�"); + } + //璁剧疆鍙傛暟-绌鸿皟-鎺у埗 + public Response updateAirStartTest(int devId, int opCmd) { + boolean res = sendCmdToDev(opCmd, devId); + return new Response().set(1, res, res ? "鎺у埗鎴愬姛" : "鎺у埗鎴愬姛澶辫触,璇锋鏌ョ綉缁�"); + } + } -- Gitblit v1.9.1