src/main/java/com/whyc/controller/AirconditionerParamController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/AirconditionerParamService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/CmdUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/AirconditionerParamController.java
@@ -1,11 +1,36 @@ package com.whyc.controller; import com.whyc.pojo.AirconditionerParam; import com.whyc.pojo.Response; import com.whyc.service.AirconditionerParamService; import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @Api(tags = "空调") @RestController @RequestMapping("envirState") @RequestMapping("envirParam") public class AirconditionerParamController { @Autowired private AirconditionerParamService service; @ApiOperation(value = "读取参数-空调") @GetMapping("searchAir") public Response searchAir(@RequestParam int devId){ return service.searchAir(devId); } @ApiOperation(value = "设置参数-空调") @PostMapping("updateAir") public Response updateAir(@RequestBody AirconditionerParam param) { return service.updateAir(param); } @ApiOperation(value = "设置参数-空调-控制") @PostMapping("updateAirStartTest") public Response updateAirStartTest(@RequestParam int devId,@RequestParam int opCmd) { return service.updateAirStartTest(devId,opCmd); } } 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 ? "控制成功" : "控制成功失败,请检查网络"); } } src/main/java/com/whyc/util/CmdUtil.java
New file @@ -0,0 +1,32 @@ package com.whyc.util; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.PageHelper; public class CmdUtil { public static final int CMD_GetAirParam = 0x20; //读取空调参数32 public static final int CMD_GetAirParam_Ack = 0x21; //读取空调参数成功33 public static final int CMD_SetAirParam = 0x22; //设置空调参数34 public static final int CMD_SetAirParam_Ack = 0x23; //设置空调参数成功35 public static final int CMD_StartAirWork = 0x30; //启动空调工作48 public static final int CMD_StartAirWork_Ack = 0x31; //启动空调工作成功49 public static final int CMD_StopAirWork = 0x32; //停止空调工作50 public static final int CMD_StopAirWork_Ack = 0x33; //停止空调工作成功51 public static final int CMD_StartAirOnDuty = 0x34; //启动空调值班52 public static final int CMD_StartAirOnDuty_Ack = 0x35; //启动空调值班成功53 public static final int CMD_StopAirOnDuty = 0x36; //停止空调值班54 public static final int CMD_StopAirOnDuty_Ack = 0x37; //停止空调值班成功55 public static final int CMD_StartAirDisinfect = 0x38; //启动空调消毒56 public static final int CMD_StartAirDisinfect_Ack = 0x39; //启动空调消毒成功57 public static final int CMD_StopAirDisinfect = 0x3A; //停止空调消毒58 public static final int CMD_StopAirDisinfect_Ack = 0x3B; //停止空调消毒成功59 public static final int CMD_StartAirExhaustFan = 0x3C; //启动空调排风机启动60 public static final int CMD_StartAirExhaustFan_Ack = 0x3D; //启动空调排风机启动成功61 public static final int CMD_StopAirExhaustFan = 0x3E; //停止空调排风机62 public static final int CMD_StopAirExhaustFan_Ack = 0x3F; //停止空调排风机成功63 }