心跳检测
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -7,10 +7,13 @@ import (
|
||||
"crypto/md5"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"golang.org/x/text/encoding/simplifiedchinese"
|
||||
"golang.org/x/text/transform"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"math/rand"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -900,3 +903,27 @@ func GetWeekTime() (weekTimeBegin, weekTimeEnd time.Time) {
|
||||
weekTimeEnd = weekTimeBegin.AddDate(0, 0, 7)
|
||||
return weekTimeBegin, weekTimeEnd
|
||||
}
|
||||
|
||||
func Utf8ToGbk(str []byte) (b []byte, err error) {
|
||||
r := transform.NewReader(bytes.NewReader(str), simplifiedchinese.GBK.NewEncoder())
|
||||
b, err = ioutil.ReadAll(r)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
@@ -35,3 +35,5 @@ func GetPrintMsgs(db *DaoDB, status, offset, pageSize int) (prints []*model.Prin
|
||||
err = GetRows(db, &prints, sql, sqlParams)
|
||||
return prints, err
|
||||
}
|
||||
|
||||
//func GetPrinter(db *DaoDB,printNo string)(print []*model)
|
||||
|
||||
Reference in New Issue
Block a user