From 8abca3f5413d977f5b11ed74b12ee39cc8570851 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 22 八月 2023 13:20:03 +0800 Subject: [PATCH] #console --- src/main/java/com/zy/core/model/protocol/SteProtocol.java | 571 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 438 insertions(+), 133 deletions(-) diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java index 29180c0..5ed0d12 100644 --- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java @@ -1,36 +1,43 @@ package com.zy.core.model.protocol; -import com.zy.asrs.entity.BasCrnp; -import com.zy.core.enums.CrnForkPosType; -import com.zy.core.enums.CrnLiftPosType; -import com.zy.core.enums.CrnModeType; -import com.zy.core.enums.CrnStatusType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.asrs.entity.BasSte; +import com.zy.asrs.service.BasSteService; +import com.zy.core.News; +import com.zy.core.enums.SteHisTaskStatusType; +import com.zy.core.enums.SteLocaType; +import com.zy.core.enums.SteStatusType; import lombok.Data; +import lombok.extern.slf4j.Slf4j; /** * Created by vincent on 2020/8/7 */ +@Slf4j @Data public class SteProtocol { /** - * 1 = 鎵嬪姩妯″紡 - * 2 = 鑷姩妯″紡 - * 3 = 鐢佃剳妯″紡 + * 璁惧鍙� + */ + private Short steNo; + + /** + * 1 = 鑱旀満妯″紡 + * 0 = 鑴辨満妯″紡 */ public Short mode; - public CrnModeType modeType; - /** - * 1 = 鎬ュ仠 + IDLE(0, "绌洪棽"), + MOVING(1, "浣滀笟涓�"), + SOS(2, "鎶ヨ"), + WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"), */ - public Short eStop; + public Short status; - /** - * 寮傚父鐮� - */ - public Short alarm; + public SteStatusType statusType; /** * 浠诲姟鍙� @@ -38,199 +45,444 @@ public Short taskNo = 0; /** - * 鍫嗗灈鏈哄綋鍓嶇姸鎬� - * 0锛氱┖闂诧紝鏃犱换鍔� - * 1锛氬彇璐у畾浣嶄腑 - * 2锛氬彇璐т腑 - * 3锛氬彇璐у畬鎴愶紝鏀捐揣瀹氫綅涓� - * 4锛氭斁璐т腑 - * 5锛氬洖鍘熺偣涓� - * 6锛氬弽鍘熺偣 - * 7锛氬簱浣嶇Щ浣� - * 90锛氫换鍔″畬鎴愮瓑寰匴CS纭 - * 99锛氭姤璀� + * 姝e湪鎵ц浠诲姟 */ - public Short status; + public Boolean execute; /** - * 鐘舵�佹灇涓� + * 浠诲姟瀹屾垚锛岀瓑寰匴CS纭 */ - public CrnStatusType statusType; + public Boolean waiting; + /** - * 鍫嗗灈鏈哄綋鍓嶅垪鍙� + * 寮傚父鐮�1 + */ + public Short alarm; + + + /** + * 寮傚父鐮�2 + */ + public Short alarm0; + + /** + * 鐢垫睜鐢甸噺 + */ + public Float charge = 0.0F; + + public void setCharge(Float charge) { + if (charge >= 0) { + this.charge = charge; + } + } + + /** + * 婊$數 + */ + public Boolean fullCharge; + + /** + * 浣庣數閲� + */ + public Boolean lowCharge; + + /** + * 鐢垫睜棣堢數 0锛屾瑺鐢碉紝1浣庣數 2婊$數 + */ + public Short feed; + + /** + * 褰撳墠浣嶇疆 1锛岃繎鐐癸紝2杩滅偣锛�3A鐐癸紝4B鐐� + */ + public Short loca; + + public SteLocaType locaType; + + /** + * 杩戠偣璺濈 + */ + public Double closer; + + /** + * 褰撳墠閫熷害 + */ + public Double speed = 0.0D; + + /** + * 楂樹綆浣� 0锛屼綆浣嶏紝1楂樹綅 + */ + public Short pos; + + /** + * 鏈夎揣 0锛屾病璐э紝1鏈夎揣 + */ + public Short load; + + /** + * 鍦ㄨ建閬撲笂 0涓嶅湪锛�1鍦� + */ + public Short track; + + /** + * 浠诲姟绫诲瀷 + */ + public Short taskType; + + /** + * 鎺� + */ + public Short row; + + /** + * 鍒� */ public Short bay; /** - * 鍫嗗灈鏈哄綋鍓嶅眰鍙� + * 灞� */ - public Short level; + public Short lev; /** - * 褰撳墠璐у弶浣嶇疆 - * 0 = 璐у弶鍘熶綅 - * 1 = 璐у弶鍦ㄥ乏渚� - * 2 = 璐у弶鍦ㄥ彸渚� + * 杩囪处鎸囦护浠诲姟鍙� */ - public Short forkPos; - - public CrnForkPosType forkPosType; + public Integer hisTaskNo; /** - * 褰撳墠杞借揣鍙颁綅缃� - * 0 = 涓嬪畾浣� - * 1 = 涓婂畾浣� + * 杩囪处鎸囦护鐘舵�� + * 0鍒濆 1鎵ц瀹屾垚 2鍒犻櫎 */ - public Short liftPos; + public Short hisTaskStatus; - public CrnLiftPosType liftPosType; + public SteHisTaskStatusType hisTaskStatusType; /** - * 璧拌鍦ㄥ畾浣� - * 0 = 鍦ㄥ畾浣� - * 1 = 涓嶅湪瀹氫綅 + * 鐩樼偣鏁伴噺 */ - public Short walkPos; + public Short checkQty; /** - * 杞借揣鍙版湁鐗� + * 灏辩华鐘舵�� 0鏈氨缁� 1灏辩华 */ - public Short loaded; - - private Short temp1; - - private CrnTemp1 crnTemp1; - - private Short temp2; - - private Short temp3; - - private Short temp4; + public Short ready; /** - * 寮傚父1 + * 鎵撳紑鍏呯數妗╁彿 */ - private boolean[] error1; - - private CrnError1 crnError1; + public Short chargeNo; /** - * 寮傚父2 + * 蹇冭烦鎸囦护 1-2姣忕鍒囨崲涓�娆� */ - private boolean[] error2; - - private CrnError2 crnError2; + public Short heart; /** - * 寮傚父3 + * 鍫嗗灈鏈虹姝㈣繍琛� 1杩愯锛�0绂佹 */ - private boolean[] error3; - - private CrnError3 crnError3; + public Short crnStopRun; /** - * 寮傚父4 + * 鍫嗗灈鏈虹姝几鍙� 1杩愯锛�0绂佹 */ - private boolean[] error4; - - private CrnError4 crnError4; + public Short crnStopFork; /** - * 寮傚父5 + * 鍫嗗灈鏈烘惉绉诲厑璁� 0涓嶅厑璁� 1鍏佽 */ - private boolean[] error5; - - private CrnError5 crnError5; + public Short crnAllowRun; /** - * 寮傚父6 + * 鍏呯數鐘舵�� 1锛氬湪鍏呯數锛�0锛氫笉鍦ㄥ厖鐢� */ - private boolean[] error6; + private Short chargeStatus; - private CrnError6 crnError6; + // 鍏ュ簱鍙栫┖ + private Boolean inEmpty; + + // 鍑哄簱鍙栫┖ + private Boolean outEmpty; + + // 绌挎杞﹀紓甯� ------------------------------------------------------------------------ /** - * X琛岃蛋绾块�熷害m/min + * 0.鍗囬檷瓒呮椂鎶ヨ */ - private Float xSpeed; + private boolean liftErr; /** - * Y琛岃蛋绾块�熷害m/min + * 2.鍏ュ簱鍙栫┖鎶ヨ */ - private Float ySpeed; + private boolean inFetchErr; /** - * Z琛岃蛋绾块�熷害m/min + * 3.鍑哄簱鍙栫┖鎶ヨ */ - private Float zSpeed; + private boolean outFetchErr; /** - * 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m + * 4.闃叉挒淇濇姢 */ - public Float xDistance; + private boolean antiErr; /** - * 鍫嗗灈鏈虹疮璁″崌闄嶈窛绂籯m + * 5.鍗囬檷鎺ヨ繎寮�鍏虫晠闅� */ - public Float yDistance; + private boolean liftSwitchErr; /** - * 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣 + * 6.杞ㄩ亾妫�娴嬫姤璀� */ - public Float xDuration; + private boolean trackErr; /** - * 鍫嗗灈鏈虹疮璁″崌闄嶆椂闀縣 + * 7.璁惧杩愯瓒呮椂鎶ヨ */ - public Float yDuration; + private boolean timeoutErr; - public void setMode(Short mode) { - this.mode = mode; - this.modeType = CrnModeType.get(mode); - } + /** + * 8.閫氫俊閿欒鎶ヨ + */ + private boolean connectErr; - public void setMode(CrnModeType type) { - this.modeType = type; - this.mode = CrnModeType.get(type).id.shortValue(); - } + /** + * 9.璁惧鎬ュ仠 + */ + private boolean emergencyErr; - public void setForkPos(Short forkPos) { - this.forkPos = forkPos; - this.forkPosType = CrnForkPosType.get(forkPos); - } + /** + * 10.浠诲姟绫诲瀷缂哄け + */ + private boolean taskTypeErr; - public void setForkPos(CrnForkPosType type) { - this.forkPosType = type; - this.forkPos = CrnForkPosType.get(type).id.shortValue(); - } + /** + * 11.浠诲姟鍙风己澶� + */ + private boolean taskNoErr; - public void setLiftPos(Short liftPos) { - this.liftPos = liftPos; - this.liftPosType = CrnLiftPosType.get(liftPos); - } + /** + * 12.杩愯涓湁鏂颁换鍔� + */ + private boolean newTaskErr; - public void setLiftPos(CrnLiftPosType type) { - this.liftPosType = type; - this.liftPos = CrnLiftPosType.get(type).id.shortValue(); - } + /** + * 13.鏁呴殰涓湁浠诲姟 + */ + private boolean errTaskErr; + + /** + * 14.杩愯涓仠姝� + */ + private boolean stopErr; + + /** + * 15.鑴辨満妯″紡涓嬫湁浠诲姟 + */ + private boolean offlineTaskErr; + + /** + * 16.鏉′欢鏈弧瓒冲惎鍔ㄤ换鍔� + */ + private boolean startTaskErr; + + /** + * 17.浣庣數鍘嬫椂鏈変换鍔� + */ + private boolean voltageTaskErr; + + /** + * 63.璁惧鏁呴殰鏍囧織浣� + */ + private boolean devpErr; + // 绌挎杞﹀紓甯� ------------------------------------------------------------------------ + + // 绌挎杞︽彁绀轰俊鎭� ------------------------------------------------------------------------ + /** + * 64.鑱旀満鐘舵�� + */ + private boolean online; + + /** + * 65.涓嶅湪杞ㄩ亾涓� + */ + private boolean notOnTrack; + + /** + * 66.浣庣數閲忔彁閱� + */ + private boolean lowVoltage; + + /** + * 67.浜忕數涓� + */ + private boolean electricityLoss; + + /** + * 68.寮哄埗琛岃蛋鍚姩 + */ + private boolean forcedTravel; + + /** + * 69.婕旂ず妯″紡寮�鍚� + */ + private boolean demoMode; + + /** + * 70.鍏呯數鍒峰凡鎺ラ�� + */ + private boolean brushConnect; + + /** + * 71.浠诲姟涓姝㈡墜鍔� + */ + private boolean taskManualForbid; + + /** + * 72.鑱旀満涓姝㈡墜鍔� + */ + private boolean onlineManualForbid; + + /** + * 73.璁惧鎬ュ仠涓� + */ + private boolean devpEmergency; + + /** + * 74.浠诲姟涓柇涓� + */ + private boolean taskInterrupt; + + /** + * 75.浠诲姟宸叉竻闄� + */ + private boolean taskClear; + + /** + * 76.浠诲姟纭宸茶秴鏃� + */ + private boolean taskConfirmTimeout; + + /** + * 77.鍏呯數涓湁浠诲姟 + */ + private boolean taskWithCharge; + + // 浠诲姟淇℃伅 --------------------------------------------------------- + /** + * 96.鍏ュ簱浠诲姟涓� + */ + private boolean pakInTask; + + /** + * 97. 鍑哄簱浠诲姟涓� + */ + private boolean pakOutTask; + + /** + * 98. 绉诲簱浠诲姟涓� + */ + private boolean pakMoveTask; + + /** + * 99. 鍥炲師鐐逛换鍔′腑 + */ + private boolean goHpTask; + + /** + * 100. 鍘诲弽鍘熺偣浠诲姟涓� + */ + private boolean goOHpTask; + + /** + * 101. 鍘诲師鐐归伩璁╀綅 + */ + private boolean goHpAvoid; + + /** + * 102. 鍘诲弽鍘熺偣閬胯浣� + */ + private boolean goOHpAvoid; + + /** + * 104. 鍏ュ簱鍙栫┖缁撴潫 + */ + private boolean pakInEmpty; + + /** + * 105. 鍏ュ簱姝e父缁撴潫 + */ + private boolean pakInFinish; + + /** + * 106. 鍑哄簱鍙栫┖缁撴潫 + */ + private boolean pakOutEmpty; + + /** + * 107. 鍑哄簱姝e父缁撴潫 + */ + private boolean pakOutFinish; + + /** + * 108. 鍘诲師鐐归伩璁╁畬鎴� + */ + private boolean goHpAvoidFinish; + + /** + * 109. 鍘诲弽鍘熺偣閬胯瀹屾垚 + */ + private boolean goOHpAvoidFinish; + + /** + * 110. 鍘诲師鐐归伩璁╁畬鎴� + */ + private boolean goHpAvoidErr; + + /** + * 111. 鍘诲弽鍘熺偣閬胯瀹屾垚 + */ + private boolean goOHpAvoidErr; + + // 鐘舵�佷俊鎭� --------------------------------------------------------- + /** + * 112. 鑱旀満妯″紡 + */ + private boolean autoMode; + + /** + * 113. 鐢靛帇杩囦綆 + */ + private boolean voltageLow; + public void setStatus(Short status){ this.status = status; - this.statusType = CrnStatusType.get(status); + this.statusType = SteStatusType.get(status); } - public void setStatus(CrnStatusType type){ + public void setStatus(SteStatusType type){ this.statusType = type; - this.status = CrnStatusType.get(type).id.shortValue(); + this.status = SteStatusType.get(type).id.shortValue(); } - public Short getTemp1() { - return temp1; + public void setLoca(Short loca){ + this.loca = loca; + this.locaType = SteLocaType.get(loca); } - public void setTemp1(Short temp1) { - this.temp1 = temp1; + public void setLoca(SteLocaType type){ + this.locaType = type; + this.loca = SteLocaType.get(type).id.shortValue(); + } + + public void setHisTaskStatus(Short hisTaskStatus){ + this.hisTaskStatus = hisTaskStatus; + this.hisTaskStatusType = SteHisTaskStatusType.get(hisTaskStatus); + } + + public void setHisTaskStatus(SteHisTaskStatusType type){ + this.hisTaskStatusType = type; + this.hisTaskStatus = SteHisTaskStatusType.get(type).id.shortValue(); } /** @@ -240,12 +492,65 @@ */ private String lastIo = "I"; + private String pakMk = "-"; - public BasCrnp toSqlModel(BasCrnp basCrnp){ + public BasSte toSqlModel(BasSte basSte){ if (alarm!=null) { - basCrnp.setCrnErr(alarm.longValue()); + basSte.setSteErr(alarm.longValue()); } - basCrnp.setWrkNo(taskNo.intValue()); - return basCrnp; + basSte.setWrkNo(taskNo.intValue()); +// if (basSte.getPakMk().equals("N")) { +// if (!Cools.isEmpty(row)) { +// basSte.setRow(row.intValue()); +// } +// if (!Cools.isEmpty(bay)) { +// basSte.setBay(bay.intValue()); +// } +// if (!Cools.isEmpty(lev)) { +// basSte.setLev(lev.intValue()); +// } +// } + return basSte; } + + // 鏄惁澶勪簬绌洪棽寰呭懡鐘舵�� + public Boolean isIdle() { + boolean res = this.statusType.equals(SteStatusType.IDLE) + && this.mode == 1 + && this.pakMk.equals("N") + && !isAlarm() + && this.chargeStatus == 0 + && isEnable() + ; + if (!res) { + return res; + } else { + // 鐢甸噺 + try { + String chargeLine = SpringUtils.getBean(BasSteService.class).selectById(this.steNo).getChargeLine(); + return charge > Float.parseFloat(chargeLine); + } catch (Exception e) { + News.error("fail", e); + return false; + } + } + } + + // 灏忚溅鐢甸噺 + public Float isIdle2() { + return this.charge; + } + + // 鏄惁澶勪簬鎶ヨ鐘舵�� + public Boolean isAlarm() { + return this.alarm > 1; + } + + public Boolean isEnable() { + if (Cools.isEmpty(row, bay, lev)) { + return false; + } + return row > 0 && bay > 0 && lev > 0; + } + } -- Gitblit v1.9.1