| | |
| | | import com.ruoyi.sy.vo.RtuVo; |
| | | import com.ruoyi.system.mapper.SysConfigMapper; |
| | | import com.ruoyi.system.mapper.SysDeptMapper; |
| | | import com.ruoyi.utils.qymqtt.MqttCustomerClient; |
| | | import com.ruoyi.utils.qymqtt.newM.EmqClient; |
| | | import com.ruoyi.utils.qymqtt.newM.QosEnum; |
| | | import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.eclipse.paho.client.mqttv3.MqttException; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | ArdSyCarRtu ardSyCarRtu = new ArdSyCarRtu(); |
| | | ardSyCarRtu.setId(String.valueOf(UUID.randomUUID())); |
| | | ardSyCarRtu.setCarId(addRtuParam.getCarId()); |
| | | ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/"); |
| | | ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/set/"); |
| | | ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/set/"); |
| | | ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/"); |
| | | ardSyCarRtu.setInstallType(addRtuParam.getInstallType()); |
| | | ardSyCarRtu.setUnloadType(addRtuParam.getUnloadType()); |
| | | int num = rtuMapper.insert(ardSyCarRtu); |
| | |
| | | @Override |
| | | public List<CarVo> queryCar(List<String> list) { |
| | | QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.ne("reserved_1","").notIn("car_id",list); |
| | | if(list.size()>0){ |
| | | queryWrapper.ne("reserved_1","").notIn("car_id",list); |
| | | }else { |
| | | queryWrapper.ne("reserved_1",""); |
| | | } |
| | | List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper); |
| | | return carAnalysis(ardSyCars); |
| | | } |
| | |
| | | map.put("A02", 110000);//导通第二路继电器 |
| | | map.put("res", String.valueOf(System.currentTimeMillis())); |
| | | String mapString = JSON.toJSONString(map); |
| | | try { |
| | | MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); |
| | | mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); |
| | | mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); |
| | | return AjaxResult.success("解封命令发送成功!"); |
| | | EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID()); |
| | | emqClient.connect(); |
| | | emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | return AjaxResult.success("解封命令发送成功!"); |
| | | // return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"解封")); |
| | | } catch (MqttException e) { |
| | | log.debug("解封指令发生失败"+e); |
| | | } |
| | | } |
| | | //0施封 |
| | | if(rtuTypeParam.getType()==0){ |
| | |
| | | map.put(key, 0.01); |
| | | map.put("res", String.valueOf(System.currentTimeMillis())); |
| | | String mapString = JSON.toJSONString(map); |
| | | try { |
| | | MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); |
| | | mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); |
| | | mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); |
| | | EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID()); |
| | | emqClient.connect(); |
| | | emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | // mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"开锁:"+currents); |
| | | } catch (MqttException e) { |
| | | log.debug("开锁指令发生失败"+e); |
| | | } |
| | | while(true){ |
| | | ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents); |
| | | Double currentInfo1 = ardSyCarLock1.getCurrentInfo(); |
| | |
| | | map.put("A02", 100000);//断开第二路继电器 |
| | | map.put("res", String.valueOf(System.currentTimeMillis())); |
| | | String mapString = JSON.toJSONString(map); |
| | | try { |
| | | MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); |
| | | mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); |
| | | mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); |
| | | return AjaxResult.success("施封命令发生成功!"); |
| | | EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID()); |
| | | emqClient.connect(); |
| | | emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | return AjaxResult.success("施封命令发生成功!"); |
| | | // return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"施封")); |
| | | } catch (MqttException e) { |
| | | log.debug("施封指令发生失败"+e); |
| | | } |
| | | } |
| | | } |
| | | return AjaxResult.success(); |
| | |
| | | ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper); |
| | | ArdSyCarLock ardSyCarLock = lockMapper.selectById(lockTypeParam.getLockId()); |
| | | Integer relay = ardSyCarLock.getRelayInfo(); |
| | | if(relay.equals("1")){ |
| | | AjaxResult.error(0,"该锁处于解封状态,远程无法操控,请先执行施封操作!"); |
| | | if(relay!=null){ |
| | | if(relay.equals("1")){ |
| | | return AjaxResult.error(0,"该锁处于解封状态,远程无法操控,请先执行施封操作!"); |
| | | } |
| | | } |
| | | String key = ""; |
| | | String currents = ardSyCarLock.getCurrents(); |
| | |
| | | }else if(currents.equals("C02")){ |
| | | key = "D04"; |
| | | } |
| | | Number lockState = (Number) lockTypeParam.getNum(); |
| | | if(lockState.equals(100)){ |
| | | double lockState = lockTypeParam.getNum(); |
| | | if(lockState==100){ |
| | | lockState = 99.99; |
| | | }else if(lockState.equals(0)){ |
| | | }else if(lockState==0){ |
| | | lockState = 0.01; |
| | | }else{ |
| | | lockState = lockState.doubleValue() + 0.01; |
| | | lockState = lockState + 0.01; |
| | | } |
| | | Map<String,Object> map = new HashMap(); |
| | | map.put(key, lockState);//范围是0.01到99.99 |
| | | map.put("res", String.valueOf(System.currentTimeMillis())); |
| | | String mapString = JSON.toJSONString(map); |
| | | System.out.println(mapString); |
| | | MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); |
| | | mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"); |
| | | mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); |
| | | EmqClient emqClient = new EmqClient(lockTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID()); |
| | | emqClient.connect(); |
| | | emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | // MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); |
| | | // mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID()); |
| | | // mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); |
| | | return AjaxResult.success("开关锁命令发送成功,发送进度为"+lockTypeParam.getNum()); |
| | | // QueryWrapper<SysConfig> queryWrapper1 = new QueryWrapper<>(); |
| | | // queryWrapper1.eq("config_key","ElectromagneticLockUrl"); |
| | | // SysConfig sysConfig = configMapper.selectOne(queryWrapper1); |
| | | // String url = ""; |
| | | // if(sysConfig!=null){ |
| | | // url = sysConfig.getConfigValue(); |
| | | // }else { |
| | | // return AjaxResult.error("配置表无地址数据"); |
| | | // } |
| | | // MqttConsumer mqttConsumer = new MqttConsumer(); |
| | | // mqttConsumer.getClientCar(url,lockTypeParam.getCarId()); |
| | | // mqttConsumer.publishCar(1,false,ardSyCarRtu.getTopicPublish(),mapString); |
| | | // mqttConsumer.disConnect(); |
| | | // return AjaxResult.success(); |
| | | //MqttOnce客户端-----开始 |
| | | // MqttOnce mqttOnce = new MqttOnce(); |
| | | // return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"开关锁指令"+lockTypeParam.getNum())); |
| | | //MqttOnce客户端-----结束 |
| | | //EmqClient客户端-----开始 |
| | | // EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883",String.valueOf(UUID.randomUUID())); |
| | | // emqClient.connect("admin","xzx12345"); |
| | | // log.info("主题:"+ardSyCarRtu.getTopicPublish()); |
| | | // emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); |
| | | // System.out.println("////////////////////"); |
| | | // System.out.println(mapString); |
| | | // emqClient.disConnect(); |
| | | // return AjaxResult.success(ardSyCarRtu.getTopicPublish()+"开关锁指令"+lockTypeParam.getNum()+"发布成功!"); |
| | | //EmqClient客户端-----结束 |
| | | //demo------开始 |
| | | // EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883","mqttTestp"); |
| | | // emqClient.connect("admin","xzx12345"); |
| | | // Map<String,Object> map = new HashMap(); |
| | | // map.put("D03", 99.99);//范围是0.01到99.99 |
| | | // map.put("res", String.valueOf(new Date().getTime())); |
| | | // System.out.println(map); |
| | | // String msg = JSON.toJSONString(map); |
| | | // emqClient.publish("/p14/set/",msg,QosEnum.QoS2,false); |
| | | // emqClient.disConnect(); |
| | | // return AjaxResult.success(); |
| | | //demo----结束 |
| | | } |
| | | |
| | | @Override |