| | |
| | | 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 ? "控制成功" : "控制成功失败,请检查网络"); |
| | | } |
| | | |
| | | } |