|  |  |  | 
|---|
|  |  |  | import com.core.common.SpringUtils; | 
|---|
|  |  |  | import com.zy.asrs.entity.BasDevp; | 
|---|
|  |  |  | import com.zy.asrs.service.BasDevpService; | 
|---|
|  |  |  | import com.zy.asrs.service.DeviceErrorService; | 
|---|
|  |  |  | import com.zy.core.DevpThread; | 
|---|
|  |  |  | import com.zy.core.Slave; | 
|---|
|  |  |  | import com.zy.core.ThreadHandler; | 
|---|
|  |  |  | import com.zy.core.cache.OutputQueue; | 
|---|
|  |  |  | import com.zy.core.cache.SlaveConnection; | 
|---|
|  |  |  | import com.zy.core.enums.SlaveType; | 
|---|
|  |  |  | import com.zy.core.model.protocol.StaProtocol; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | byte[] read = read(8, 100); | 
|---|
|  |  |  | if (null != read) { | 
|---|
|  |  |  | String s = new String(read); | 
|---|
|  |  |  | if (!Cools.isEmpty(s) && s.startsWith("=")) { | 
|---|
|  |  |  | if (!Cools.isEmpty(s) && s.startsWith("\u0002+")) { | 
|---|
|  |  |  | //                    if (!Cools.isEmpty(s) && s.startsWith("=")) { | 
|---|
|  |  |  | scale = Double.parseDouble(s.substring(1)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //                        System.out.println("scale:"+scale+ "ip:"+slave.getIp()); | 
|---|
|  |  |  | //                        String substring = s.substring(1); | 
|---|
|  |  |  | //                        String s1 = new StringBuilder(substring).reverse().toString();//逆序 | 
|---|
|  |  |  | //                        scale = Double.parseDouble(s1); | 
|---|
|  |  |  | //将称重重量写入设备基础数据中的gross_wt字段 | 
|---|
|  |  |  | if(scale > 20) { | 
|---|
|  |  |  | BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); | 
|---|
|  |  |  | Integer staNo = slave.getId() == 1 ? 101 : 201; | 
|---|
|  |  |  | BasDevp basDevp = basDevpService.selectById(staNo); | 
|---|
|  |  |  | if(!Cools.isEmpty(basDevp)) { | 
|---|
|  |  |  | basDevp.setGrossWt(scale); | 
|---|
|  |  |  | if (null != basDevpService && !basDevpService.updateById(basDevp)) { | 
|---|
|  |  |  | throw new Exception("更新数据库数据失败"); | 
|---|
|  |  |  | //                        if(scale > 20) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | // 获取站信息 | 
|---|
|  |  |  | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, slave.getDevpPlcId()); | 
|---|
|  |  |  | StaProtocol staProtocol = devpThread.getStation().get(slave.getStaNo()); | 
|---|
|  |  |  | if (staProtocol != null) { | 
|---|
|  |  |  | if (scale>10000){ | 
|---|
|  |  |  | scale = scale-10000; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | devpThread.setGrossWt(staProtocol.getSiteId(), scale); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | JSONObject jsonObject = new JSONObject(); | 
|---|
|  |  |  | jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); | 
|---|
|  |  |  | jsonObject.put("id", slave.getStaNo()); | 
|---|
|  |  |  | jsonObject.put("scale", scale); | 
|---|
|  |  |  | if (OutputQueue.SCALE.size() >= 32) { | 
|---|
|  |  |  | OutputQueue.SCALE.poll(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | OutputQueue.SCALE.offer(jsonObject); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | JSONObject jsonObject = new JSONObject(); | 
|---|
|  |  |  | jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); | 
|---|
|  |  |  | jsonObject.put("id", staNo); | 
|---|
|  |  |  | jsonObject.put("scale", scale); | 
|---|
|  |  |  | if (OutputQueue.SCALE.size() >= 32) { | 
|---|
|  |  |  | OutputQueue.SCALE.poll(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | OutputQueue.SCALE.offer(jsonObject); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("称重模块异常"+e .getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); | 
|---|
|  |  |  | //                            BasDevp basDevp = basDevpService.selectById(slave.getStaNo()); | 
|---|
|  |  |  | //                            if(!Cools.isEmpty(basDevp)) { | 
|---|
|  |  |  | //                                basDevp.setGrossWt(scale); | 
|---|
|  |  |  | //                                if (null != basDevpService && !basDevpService.updateById(basDevp)) { | 
|---|
|  |  |  | //                                    throw new Exception("更新数据库数据失败"); | 
|---|
|  |  |  | //                                } | 
|---|
|  |  |  | //                                JSONObject jsonObject = new JSONObject(); | 
|---|
|  |  |  | //                                jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); | 
|---|
|  |  |  | //                                jsonObject.put("id", slave.getStaNo()); | 
|---|
|  |  |  | //                                jsonObject.put("scale", scale); | 
|---|
|  |  |  | //                                if (OutputQueue.SCALE.size() >= 32) { | 
|---|
|  |  |  | //                                    OutputQueue.SCALE.poll(); | 
|---|
|  |  |  | //                                } | 
|---|
|  |  |  | //                                OutputQueue.SCALE.offer(jsonObject); | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                            } | 
|---|
|  |  |  | //                        } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean connect() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | close();  //1.主动释放连接 //2.某些服务器对指定ip有链路数限制 | 
|---|
|  |  |  | socket = new Socket(); | 
|---|
|  |  |  | 
|---|
|  |  |  | dataOutputStream = new DataOutputStream(socket.getOutputStream()); | 
|---|
|  |  |  | dataInputStream = new DataInputStream(socket.getInputStream()); | 
|---|
|  |  |  | //            log.info("条码扫描仪连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
|---|
|  |  |  | deviceErrorService.deleteDeviceError("Scale", slave.getId()); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | //                log.error("e:"+e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | socket = null; | 
|---|
|  |  |  | log.error("磅秤连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
|---|
|  |  |  | //            log.error("磅秤连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
|---|
|  |  |  | //            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
|---|
|  |  |  | //            deviceErrorService.addDeviceError("scale", slave.getId(), "磅秤连接失败"); | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
|---|
|  |  |  | deviceErrorService.deleteDeviceError("Scale", slave.getId()); | 
|---|
|  |  |  | } catch (Exception e1){ | 
|---|
|  |  |  | //                log.error("e:"+e1.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 清除作业启动中 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void setWrkSign() { | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|