This commit is contained in:
邹宗楠
2022-11-04 14:15:00 +08:00
parent 308801a465
commit dc55a9e747

View File

@@ -42,8 +42,7 @@ func (t *TcpClient) handleConn(c net.Conn) {
for {
var (
printNo string //打印机编号
//printStatus *GetPrintStatus
buffer = make([]byte, 1024)
buffer = make([]byte, 1024)
)
n, err := c.Read(buffer)
if err != nil {
@@ -54,15 +53,7 @@ func (t *TcpClient) handleConn(c net.Conn) {
}
return
}
//也可能是查状态的openAPI外部查询一次性的
//if err = json.Unmarshal(buffer[:n], &printStatus); err == nil {
// fmt.Println("handleConn msg: ", string(buffer[:n]))
// if printStatus != nil {
// status := t.getPrintStatus(printStatus.PrintNo)
// c.Write([]byte(utils.Int2Str(status)))
// c.Close()
// }
//}
//看是心跳还是打印回调
data := hex.EncodeToString(buffer[:n])
//证明是心跳
@@ -70,6 +61,7 @@ func (t *TcpClient) handleConn(c net.Conn) {
printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8])
printNo = string(printNoData)
status := printStatus2JxStatus(data[len(data)-8 : len(data)-6])
globals.SugarLogger.Debugf("输出打印机编号printNo:[%s],和状态printStatus[%d],打印时间time:[%v]", printNo, status, time.Now())
//如果没在连接池里
//1、加到连接池中不同的打印机no开不同的goroutine
//2、初始化channel每个打印机一个放打印消息和打印回调消息
@@ -97,7 +89,9 @@ func (t *TcpClient) handleConn(c net.Conn) {
t.setPrintStatusTime(printNo)
}
//状态不一致再更新状态(可能缺纸了,过热了等)
globals.SugarLogger.Debugf("比较缓存状态和真实状态缓存状态[%d],真实状态[%d]", t.getPrintStatus(printNo), status)
if t.getPrintStatus(printNo) != status {
globals.SugarLogger.Debugf("更新打印机状态到数据库和缓存[%s:%d]", printNo, status)
t.setPrintStatus(printNo, status)
changePrinterStatus(printNo, status)
}