From 72f8d13b6446dbf3b532c75134a267f09b681f96 Mon Sep 17 00:00:00 2001 From: lxw <810412026@qq.com> Date: 星期四, 09 十一月 2023 16:48:14 +0800 Subject: [PATCH] 读取设备下载操作 --- src/main/java/com/whyc/service/FgcdFiledownloadService.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 108 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/service/FgcdFiledownloadService.java b/src/main/java/com/whyc/service/FgcdFiledownloadService.java index 4aeaa24..f11b4cb 100644 --- a/src/main/java/com/whyc/service/FgcdFiledownloadService.java +++ b/src/main/java/com/whyc/service/FgcdFiledownloadService.java @@ -1,7 +1,115 @@ package com.whyc.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.github.pagehelper.PageHelper; +import com.whyc.mapper.FgcdFiledownloadMapper; +import com.whyc.pojo.FgcdFiledownload; +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 FgcdFiledownloadService { + @Autowired(required = false) + private FgcdFiledownloadMapper mapper; + + //鍙戦�佸懡浠� + //鏈烘埧鍛戒护鎿嶄綔璁惧鏃剁殑cmd鍜宎ck鏍¢獙 test_type -->榛樿鍚姩娴嬭瘯鐨勭被鍨� + public boolean sendCmd(int cmd,int param1,int param2,String downloadFlag,int devId) + { + int ack = cmd; + int stopTime=40; + switch(cmd) { + case CmdUtil.CMD_READBATT: ack =CmdUtil.CMD_READBATT_ACK ; break; + case CmdUtil.CMD_READFILE: ack =CmdUtil.CMD_READFILE_ACK ; break; + case CmdUtil.CMD_DOLADFILE: ack =CmdUtil.CMD_DOLADFILE_ACK ; break; + case CmdUtil.CMD_DOLADCANCLE: ack =CmdUtil.CMD_DOLADCANCLE_ACK ; break; + default: + return false; + } + UpdateWrapper updateWrapper=new UpdateWrapper(); + updateWrapper.set("op_cmd",cmd); + if(cmd==CmdUtil.CMD_READBATT){ + updateWrapper.set("readbattcount",param1); + } + if(cmd==CmdUtil.CMD_READFILE){ + updateWrapper.set("file_index",param1); + updateWrapper.set("batt_index",param2); + } + if(cmd==CmdUtil.CMD_DOLADFILE){ + String[] fileFlag=downloadFlag.split(","); + updateWrapper.set("batt_index",param1); + if(fileFlag!=null){ + for (String flag:fileFlag) { + updateWrapper.set("download_flag"+(Integer.valueOf(flag)+1),1); + } + } + } + updateWrapper.eq("dev_id",devId); + int flag=mapper.update(null,updateWrapper); + boolean res_exe = false; + if(flag>0) + { + PageHelper.startPage(1,1); + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("dev_id",devId); + for(int n=0; n<stopTime; n++) + { + FgcdFiledownload fgcd=mapper.selectOne(queryWrapper); + if(fgcd!=null){ + if (fgcd.getOpCmd() == ack) { + res_exe = true; + break; + } + try { + Thread.sleep(250); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } else { + break; + } + } + } + return res_exe; + } + //璇诲彇鐢垫睜缁勫垪琛� + public Response readBattList(int devId,int battCount) { + boolean bl=sendCmd(CmdUtil.CMD_READBATT,battCount,0,"",devId); + if(bl){ + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("dev_id",devId); + FgcdFiledownload fgcd=mapper.selectOne(queryWrapper); + return new Response().setII(1,bl,fgcd,"璇诲彇鎴愬姛杩斿洖鏁版嵁"); + }else{ + return new Response().set(1,bl,"璇诲彇澶辫触"); + } + } + //璇诲彇鐢垫睜缁勬寚瀹氭枃浠跺垪琛� + public Response readFileList(int devId, int fileIndex, int battIndex) { + boolean bl=sendCmd(CmdUtil.CMD_READFILE,fileIndex,battIndex,"",devId); + if(bl){ + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("dev_id",devId); + FgcdFiledownload fgcd=mapper.selectOne(queryWrapper); + return new Response().setII(1,bl,fgcd,"璇诲彇鎴愬姛杩斿洖鏁版嵁"); + }else{ + return new Response().set(1,bl,"璇诲彇澶辫触"); + } + } + //涓嬭浇鎸囧畾鐢垫睜缁勭殑鏂囦欢鍒楄〃 + public Response doloadFileList(int devId, int battIndex, String downloadFlag) { + boolean bl=sendCmd(CmdUtil.CMD_READFILE,battIndex,0,downloadFlag,devId); + if(bl){ + QueryWrapper queryWrapper=new QueryWrapper(); + queryWrapper.eq("dev_id",devId); + FgcdFiledownload fgcd=mapper.selectOne(queryWrapper); + return new Response().setII(1,bl,fgcd,"涓嬭浇鎴愬姛杩斿洖鏁版嵁"); + }else{ + return new Response().set(1,bl,"涓嬭浇澶辫触"); + } + } } -- Gitblit v1.9.1