| | |
| | | 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和ack校验 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,"下载失败"); |
| | | } |
| | | } |
| | | } |