心跳检测

This commit is contained in:
suyl
2021-06-28 17:36:40 +08:00
parent 2857b4fc22
commit 116e440e8f
3 changed files with 52 additions and 30 deletions

View File

@@ -3,6 +3,7 @@ package event
import (
"encoding/hex"
"fmt"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
@@ -25,6 +26,9 @@ const (
printMsgWait = 0 //待打印
printMsgFail = -1 //打印失败(打印机报出)
printMsgErr = -2 //京西报出
heartErrWithoutPaper = "04" //心跳错,缺纸
heartErrHot = "08" //过热
)
var (
@@ -95,6 +99,7 @@ func handleConn(c net.Conn) {
tcpClient.Clients[printNo] = c
} else {
//改变打印机状态
}
} else if strings.Contains(data, printText) {
changePrintMsg(db, data)
@@ -165,7 +170,10 @@ func handleTcpMessages() {
printMsg.Comment = err.Error()
dao.UpdateEntity(db, printMsg, "Status", "Comment")
} else {
c.Write(data)
if _, err = c.Write(data); err != nil {
globals.SugarLogger.Debugf("handleTcpMessages err [%v]", err)
c.Close()
}
}
}
}
@@ -173,21 +181,22 @@ func handleTcpMessages() {
func buildMsg(printMsg *model.PrintMsg) (data []byte, err error) {
var (
//content = printMsg.Content
//orderNo = printMsg.OrderNo
//str = "1e"
//const1 = "0200ff50"
//printInit = "1b40" //打印机初始化
//voice = "1b59415501" //语音响一次
//check = "ff"
content = printMsg.Content
orderNo = printMsg.OrderNo
str = "1e"
const1 = "0200ff50"
printInit = "1b40" //打印机初始化
voice = "1b59415501" //语音响一次
check = "ff"
orderNoHexH, orderNoHexL string
)
//写入数据
//printData := hex.EncodeToString([]byte(s))
//lenData := int64(len(str) + len(const1) + len(orderNo) + len(printInit) + len(voice) + 1 + 2 + len(printData))
//x1, x2 := int2h8l8(lenData / 2)
//data = str + x1 + x2 + const1 + orderNo + printInit + voice + printData + check
return data, err
orderNoHexH, orderNoHexL = int2h8l8(int64(orderNo))
printData := hex.EncodeToString([]byte(content))
lenData := int64(len(str) + len(const1) + len(orderNoHexH) + len(orderNoHexL) + len(printInit) + len(voice) + 1 + 2 + len(printData))
x1, x2 := int2h8l8(lenData / 2)
dataStr := str + x1 + x2 + const1 + orderNoHexH + orderNoHexL + printInit + voice + printData + check
return jxutils.Hextob(dataStr), err
}
func checkPrintMsg(printMsg *model.PrintMsg) (err error) {
@@ -203,22 +212,6 @@ func checkPrintMsg(printMsg *model.PrintMsg) (err error) {
return err
}
func Hextob(str string) []byte {
slen := len(str)
bHex := make([]byte, len(str)/2)
ii := 0
for i := 0; i < len(str); i = i + 2 {
if slen != 1 {
ss := string(str[i]) + string(str[i+1])
bt, _ := strconv.ParseInt(ss, 16, 32)
bHex[ii] = byte(bt)
ii = ii + 1
slen = slen - 2
}
}
return bHex
}
func int2h8l8(i int64) (h, l string) {
origin2 := fmt.Sprintf("%b", i)
flag := 16 - len(origin2)