心跳检测
This commit is contained in:
@@ -3,6 +3,7 @@ package event
|
|||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"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"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
@@ -25,6 +26,9 @@ const (
|
|||||||
printMsgWait = 0 //待打印
|
printMsgWait = 0 //待打印
|
||||||
printMsgFail = -1 //打印失败(打印机报出)
|
printMsgFail = -1 //打印失败(打印机报出)
|
||||||
printMsgErr = -2 //京西报出
|
printMsgErr = -2 //京西报出
|
||||||
|
|
||||||
|
heartErrWithoutPaper = "04" //心跳错,缺纸
|
||||||
|
heartErrHot = "08" //过热
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -95,6 +99,7 @@ func handleConn(c net.Conn) {
|
|||||||
tcpClient.Clients[printNo] = c
|
tcpClient.Clients[printNo] = c
|
||||||
} else {
|
} else {
|
||||||
//改变打印机状态
|
//改变打印机状态
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if strings.Contains(data, printText) {
|
} else if strings.Contains(data, printText) {
|
||||||
changePrintMsg(db, data)
|
changePrintMsg(db, data)
|
||||||
@@ -165,7 +170,10 @@ func handleTcpMessages() {
|
|||||||
printMsg.Comment = err.Error()
|
printMsg.Comment = err.Error()
|
||||||
dao.UpdateEntity(db, printMsg, "Status", "Comment")
|
dao.UpdateEntity(db, printMsg, "Status", "Comment")
|
||||||
} else {
|
} 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) {
|
func buildMsg(printMsg *model.PrintMsg) (data []byte, err error) {
|
||||||
var (
|
var (
|
||||||
//content = printMsg.Content
|
content = printMsg.Content
|
||||||
//orderNo = printMsg.OrderNo
|
orderNo = printMsg.OrderNo
|
||||||
//str = "1e"
|
str = "1e"
|
||||||
//const1 = "0200ff50"
|
const1 = "0200ff50"
|
||||||
//printInit = "1b40" //打印机初始化
|
printInit = "1b40" //打印机初始化
|
||||||
//voice = "1b59415501" //语音响一次
|
voice = "1b59415501" //语音响一次
|
||||||
//check = "ff"
|
check = "ff"
|
||||||
|
orderNoHexH, orderNoHexL string
|
||||||
)
|
)
|
||||||
//写入数据
|
//写入数据
|
||||||
//printData := hex.EncodeToString([]byte(s))
|
orderNoHexH, orderNoHexL = int2h8l8(int64(orderNo))
|
||||||
//lenData := int64(len(str) + len(const1) + len(orderNo) + len(printInit) + len(voice) + 1 + 2 + len(printData))
|
printData := hex.EncodeToString([]byte(content))
|
||||||
//x1, x2 := int2h8l8(lenData / 2)
|
lenData := int64(len(str) + len(const1) + len(orderNoHexH) + len(orderNoHexL) + len(printInit) + len(voice) + 1 + 2 + len(printData))
|
||||||
//data = str + x1 + x2 + const1 + orderNo + printInit + voice + printData + check
|
x1, x2 := int2h8l8(lenData / 2)
|
||||||
|
dataStr := str + x1 + x2 + const1 + orderNoHexH + orderNoHexL + printInit + voice + printData + check
|
||||||
return data, err
|
return jxutils.Hextob(dataStr), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkPrintMsg(printMsg *model.PrintMsg) (err error) {
|
func checkPrintMsg(printMsg *model.PrintMsg) (err error) {
|
||||||
@@ -203,22 +212,6 @@ func checkPrintMsg(printMsg *model.PrintMsg) (err error) {
|
|||||||
return err
|
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) {
|
func int2h8l8(i int64) (h, l string) {
|
||||||
origin2 := fmt.Sprintf("%b", i)
|
origin2 := fmt.Sprintf("%b", i)
|
||||||
flag := 16 - len(origin2)
|
flag := 16 - len(origin2)
|
||||||
|
|||||||
@@ -7,10 +7,13 @@ import (
|
|||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"golang.org/x/text/encoding/simplifiedchinese"
|
||||||
|
"golang.org/x/text/transform"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"math"
|
"math"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -900,3 +903,27 @@ func GetWeekTime() (weekTimeBegin, weekTimeEnd time.Time) {
|
|||||||
weekTimeEnd = weekTimeBegin.AddDate(0, 0, 7)
|
weekTimeEnd = weekTimeBegin.AddDate(0, 0, 7)
|
||||||
return weekTimeBegin, weekTimeEnd
|
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)
|
err = GetRows(db, &prints, sql, sqlParams)
|
||||||
return prints, err
|
return prints, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//func GetPrinter(db *DaoDB,printNo string)(print []*model)
|
||||||
|
|||||||
Reference in New Issue
Block a user