From 3c4ffc359982ec91d83c945068250c5cb9bcf1ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 31 Aug 2023 10:54:02 +0800 Subject: [PATCH] 1 --- business/jxstore/event/event_tcp.go | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index 39767b23d..43545cb5f 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -102,22 +102,23 @@ func handleConn(c net.Conn, t *TcpClient) error { } var printNo string //打印机编号 - //var heartbeat bool = false - //if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) { - // printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) - // printNo = string(printNoData) - // heartbeat = true - //} else if strings.Contains(data, printText) || strings.Contains(data, printTextNew) { //打印回调 - // _, printNo = getCallbackMsgInfo(data) - // heartbeat = true - //} + var heartbeat bool = false + var callback bool = false + if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) { + printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) + printNo = string(printNoData) + heartbeat = true + } else if strings.Contains(data, printText) || strings.Contains(data, printTextNew) { //打印回调 + _, printNo = getCallbackMsgInfo(data) + callback = true + } //obj, ok := PrintPool[printNo] //证明是心跳 - if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) { - printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) - printNo = string(printNoData) + if heartbeat { + //printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) + //printNo = string(printNoData) status := printStatus2JxStatus(data[len(data)-8 : len(data)-6]) //如果没在连接池里 //1、加到连接池中,不同的打印机no开不同的goroutine @@ -149,10 +150,10 @@ func handleConn(c net.Conn, t *TcpClient) error { //状态不一致再更新状态(可能缺纸了,过热了等) t.setPrintStatus(printNo, status) changePrinterStatus(printNo, status) - } else if strings.Contains(data, printText) || strings.Contains(data, printTextNew) { //打印回调 + } else if callback { //打印回调 //打印消息发送后,打印机会回调该条打印消息的状态(打印成功or失败,失败原因..) //将回调的信息放到回调channel中,打印成功后再打印下一条消息 - _, printNo = getCallbackMsgInfo(data) + //_, printNo = getCallbackMsgInfo(data) //更新打印机心跳时间(打印机本身不会在打印的同时,或回调的同时发心跳消息,会导致心跳判断超时,这里更新一下) t.setPrintStatusTime(printNo) t.addCallbackChan(printNo, data)