|  |  | 
 |  |  | package com.zy.core.model.protocol; | 
 |  |  |  | 
 |  |  | import com.zy.asrs.entity.BasDevp; | 
 |  |  | import com.zy.asrs.entity.BasDevpErrorLog; | 
 |  |  | import lombok.Data; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  |  | 
 |  |  |     // ---------------------------------------------------------------- | 
 |  |  |     // 工作号 | 
 |  |  |     private Short workNo = 0; | 
 |  |  |     private Integer workNo = 0; | 
 |  |  |  | 
 |  |  |     // ---------------------------------------------------------------- | 
 |  |  |     // 目标站 | 
 |  |  |     private Short staNo; | 
 |  |  |  | 
 |  |  |     private String barcode; | 
 |  |  |  | 
 |  |  |     // ---------------------------------------------------------------- | 
 |  |  |     // 自动 | 
 |  |  | 
 |  |  |     // 空板信号 | 
 |  |  |     private boolean emptyMk; | 
 |  |  |  | 
 |  |  |     // 满托盘 | 
 |  |  |     private boolean fullPlt; | 
 |  |  |  | 
 |  |  |     // 高 | 
 |  |  |     private boolean high; | 
 |  |  |  | 
 |  |  |     // 低 | 
 |  |  |     private boolean low; | 
 |  |  |  | 
 |  |  |     // 需求1 | 
 |  |  |     private boolean inreq1; | 
 |  |  |     // 叠盘叠满 | 
 |  |  |     private boolean full; | 
 |  |  |  | 
 |  |  |     // 锁定标记 | 
 |  |  |     private boolean pakMk = true; | 
 |  |  |  | 
 |  |  |     // 入库暂存数 | 
 |  |  |     private Short inQty; | 
 |  |  |  | 
 |  |  |     // 隔壁站点(台车位置) | 
 |  |  |     private String nearbySta; | 
 |  |  |  | 
 |  |  |     //lfd入库印记  当stamp>=2时才入库 | 
 |  |  |     private Integer stamp = 0; | 
 |  |  |  | 
 |  |  |     private boolean err = false; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // 外形检测 ------------------------------------------------------------------------ | 
 |  |  |  | 
 |  |  |     // 前超限 | 
 |  |  |     private boolean frontErr = false; | 
 |  |  |  | 
 |  |  |     // 后超限 | 
 |  |  |     private boolean backErr = false; | 
 |  |  |  | 
 |  |  |     // 高超限 | 
 |  |  |     private boolean highErr = false; | 
 |  |  |  | 
 |  |  |     // 左超限 | 
 |  |  |     private boolean leftErr = false; | 
 |  |  |  | 
 |  |  |     // 右超限 | 
 |  |  |     private boolean rightErr = false; | 
 |  |  |  | 
 |  |  |     // 超重 | 
 |  |  |     private boolean weightErr = false; | 
 |  |  |  | 
 |  |  |     // 扫码失败 | 
 |  |  |     private boolean barcodeErr = false; | 
 |  |  |  | 
 |  |  |     //故障----------------------------------------------------------------------- | 
 |  |  |     private Boolean breakerErr = false; //断路器故障 | 
 |  |  |  | 
 |  |  |     private Boolean infraredErr = false; //光电异常 | 
 |  |  |  | 
 |  |  |     private Boolean outTimeErr = false; //运行超时 | 
 |  |  |  | 
 |  |  |     private Boolean seizeSeatErr = false; //占位超时 | 
 |  |  |  | 
 |  |  |     private Boolean wrkYgoodsN = false;//有任务无货故障 | 
 |  |  |  | 
 |  |  |     private Boolean inverterErr = false; //变频器故障 | 
 |  |  |  | 
 |  |  |     private Boolean contactErr = false; //电机接触器故障 | 
 |  |  |  | 
 |  |  |     private Boolean upcontactErr = false; //顶升电机接触器故障 | 
 |  |  |  | 
 |  |  |     //故障信号-------------------------------------------------------- | 
 |  |  |  | 
 |  |  |     // 故障读取锁定标记 | 
 |  |  |     private boolean errorMk = false; | 
 |  |  |     //写入标记 | 
 |  |  |     private boolean writeMk = true; | 
 |  |  |     private Boolean passTimeOut = false; //物体进出超时 | 
 |  |  |     private Boolean objectNoIdError = false; //有物体无数据 | 
 |  |  |     private Boolean idNoObjectError = false; //有数据无物体 | 
 |  |  |     private Boolean lmfrError = false; //线体电机热继报警 | 
 |  |  |     private Boolean liftError = false; //顶升报警 | 
 |  |  |     private Boolean dlfrError = false; //顶升电机热继报警 | 
 |  |  |     private Boolean dmfrError = false; //顶升横移电机热继报警 | 
 |  |  |     private Boolean vfdError = false; //变频故障 | 
 |  |  |     private Boolean srvError = false; //伺服故障 | 
 |  |  |     private Boolean res1 = false; //预留1 | 
 |  |  |     private Boolean res2 = false; //预留2 | 
 |  |  |     private Boolean res3 = false; //预留3 | 
 |  |  |     private Boolean communicationTimeOut = false; //与上位机通讯超时 | 
 |  |  |     private Boolean parameterIncompleteError = false; //信息参数不全 | 
 |  |  |     private Boolean dataNotClear = false; //信息数据未清除 | 
 |  |  |     private Boolean setParameterError = false; //参数设置报警 | 
 |  |  |     private Boolean res4 = false; //预留4 | 
 |  |  |     private Boolean res5 = false; //预留5 | 
 |  |  |     private Boolean dataError = false; //数据错误 | 
 |  |  |     //配置信号 | 
 |  |  |     private Boolean sensorGArrive = false; //直线光电 | 
 |  |  |     private Boolean sensorGDec = false; //减速光电 | 
 |  |  |     private Boolean sensorGArrive2 = false; //直线凸出 | 
 |  |  |     private Boolean sensorLimit = false; //限位保护光电 | 
 |  |  |     private Boolean emergency = false; //急停 | 
 |  |  |     private Boolean sensorGLeave = false; //光电离开1 | 
 |  |  |     private Boolean sensorGLeave2 = false; //光电离开2 | 
 |  |  |     private Boolean sensorCUp = false; //顶升上升 | 
 |  |  |     private Boolean sensorCDown = false; //顶升下降 | 
 |  |  |     private Boolean liftMotorFr = false; //顶升热继 | 
 |  |  |     private Boolean lineMotorFr = false; //直线热继 | 
 |  |  |     private Boolean tranMotorFr = false; //移栽热继 | 
 |  |  |     private Boolean rst1 = false; //备用1 | 
 |  |  |     private Boolean rst2 = false; //备用2 | 
 |  |  |     private Boolean rst3 = false; //备用3 | 
 |  |  |     private Boolean rst4 = false; //备用4 | 
 |  |  |     private Boolean sensorArriveD = false; //直行方向到位 | 
 |  |  |     private Boolean sensorDecD = false; //直行方向减速 | 
 |  |  |     private Boolean sensorArriveL = false; //左移方向到位 | 
 |  |  |     private Boolean sensorDecL = false; //左移方向减速 | 
 |  |  |     private Boolean sensorArriveR = false; //右移方向到位 | 
 |  |  |     private Boolean sensorDecR = false; //右移方向减速 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public BasDevpErrorLog toSqlModelError(){ | 
 |  |  |         BasDevpErrorLog basDevpErrorLog = new BasDevpErrorLog(); | 
 |  |  |         basDevpErrorLog.setDevNo(siteId); // 设备号(假设有定义 siteId) | 
 |  |  |         basDevpErrorLog.setPassTimeOut(passTimeOut ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setObjectNoIdError(objectNoIdError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setIdNoObjectError(idNoObjectError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setLmfrError(lmfrError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setLiftError(liftError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setDlfrError(dlfrError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setDmfrError(dmfrError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setVfdError(vfdError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSrvError(srvError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRes1(res1 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRes2(res2 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRes3(res3 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setCommunicationTimeOut(communicationTimeOut ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setParameterIncompleteError(parameterIncompleteError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setDataNotClear(dataNotClear ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSetParameterError(setParameterError ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setInEnable(res4 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setOutEnable(res5 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setDataError(dataError ? "Y" : "N"); | 
 |  |  |         // 配置信号 | 
 |  |  |         basDevpErrorLog.setSensorGArrive(sensorGArrive ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorGDec(sensorGDec ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorGArrive2(sensorGArrive2 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorLimit(sensorLimit ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setEmergency(emergency ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorGLeave(sensorGLeave ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorGLeave2(sensorGLeave2 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorCUp(sensorCUp ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorCDown(sensorCDown ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setLiftMotorFr(liftMotorFr ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setLineMotorFr(lineMotorFr ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setTranMotorFr(tranMotorFr ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRst1(rst1 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRst2(rst2 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRst3(rst3 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setRst4(rst4 ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorArriveD(sensorArriveD ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorDecD(sensorDecD ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorArriveL(sensorArriveL ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorDecL(sensorDecL ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorArriveR(sensorArriveR ? "Y" : "N"); | 
 |  |  |         basDevpErrorLog.setSensorDecR(sensorDecR ? "Y" : "N"); | 
 |  |  |  | 
 |  |  |         return basDevpErrorLog; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public Boolean isErr(){ | 
 |  |  |         if (frontErr || backErr || highErr || leftErr || rightErr || weightErr || barcodeErr){ | 
 |  |  |             return true; | 
 |  |  |         }else { | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public BasDevp toSqlModel(){ | 
 |  |  |         BasDevp basDevp = new BasDevp(); | 
 |  |  |         basDevp.setDevNo(siteId); | 
 |  |  |         basDevp.setWrkNo(workNo.intValue()); | 
 |  |  |         basDevp.setBarcode(barcode); | 
 |  |  |         basDevp.setAutoing(autoing?"Y":"N"); | 
 |  |  |         basDevp.setLoading(loading?"Y":"N"); | 
 |  |  |         basDevp.setInEnable(inEnable?"Y":"N"); | 
 |  |  | 
 |  |  |         basDevp.setLocType2((short) 0);  // 宽窄类型{0:未知,1:窄库位,2:宽库位} | 
 |  |  |         basDevp.setLocType3((short) 0);  // 轻重类型{0:未知,1:轻库位,2:重库位} | 
 |  |  |         basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2); | 
 |  |  |         basDevp.setInQty(inQty !=null ?(int)inQty : 0); | 
 |  |  |         basDevp.setBarcode(this.getBarcode()); | 
 |  |  |         return basDevp; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  | //    public Integer getNearbySta() { | 
 |  |  | //        if (getNearbySta == null) return 0; | 
 |  |  | // | 
 |  |  | //        // key: 站点号  value: 基准物理位置 | 
 |  |  | //        Map<Integer, Integer> posMap = new HashMap<>(); | 
 |  |  | //        posMap.put(1004, 6534); | 
 |  |  | //        posMap.put(1007, 33634); | 
 |  |  | //        posMap.put(1010, 75174); | 
 |  |  | //        posMap.put(1014, 102124); | 
 |  |  | //        posMap.put(1018, 138224); | 
 |  |  | //        posMap.put(1021, 178034); | 
 |  |  | //        posMap.put(1024, 219684); | 
 |  |  | //        posMap.put(1028, 246724); | 
 |  |  | //        posMap.put(1031, 288194); | 
 |  |  | //        posMap.put(1035, 315204); | 
 |  |  | //        int tolerance = 50; // 允许误差范围 | 
 |  |  | // | 
 |  |  | //        for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) { | 
 |  |  | //            int site = entry.getKey(); | 
 |  |  | //            int basePos = entry.getValue(); | 
 |  |  | //            if (Math.abs(getNearbySta - basePos) <= tolerance) { | 
 |  |  | //                return site; | 
 |  |  | //            } | 
 |  |  | //        } | 
 |  |  | // | 
 |  |  | //        return 0; // 没匹配到站点 | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  | } |