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