Rice 1 month ago
parent 241041d570
commit 9915f63a03

@ -34,9 +34,9 @@ func main() {
defer func() {
if exception := recover(); exception != nil {
if v, ok := exception.(error); ok && gerror.HasStack(v) {
zap.S().Error("err %+v \n", v)
zap.S().Errorf("err %+v \n", v)
} else {
zap.S().Error("recover exception %+v\n", gerror.NewCodef(tcode.CodeInternalPanic, "%+v", exception))
zap.S().Errorf("recover exception %+v\n", gerror.NewCodef(tcode.CodeInternalPanic, "%+v", exception))
}
}
}()
@ -84,7 +84,7 @@ func start() {
towgo.SetFunc("/getMessageInterval", getMessageInterval)
err = maincontrollerClient.UseSerialPort(serialPortAddress, baudRateint)
if err != nil {
panic(err)
panic(gerror.Wrap(err, "串口启动失败"))
}
webServer := www.WebServer{}
webServer.Wwwroot = system.GetPathOfProgram() + "wwwroot"

@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"encoding/json"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/towgo/towgo/errors/terror"
"io"
"reflect"
@ -61,7 +62,7 @@ func UseSerialPort(portName string, baudRate int) error {
err := serialPort.Open()
if err != nil {
return err
return gerror.Wrap(err, "串口连接打开失败")
}
serialPort.OnDataReceived(func(data []byte) {
@ -94,7 +95,7 @@ func (sp *SerialPort) Open() error {
port, err := serial.Open(sp.address, sp.config)
if err != nil {
return err
return gerror.Wrap(err, "串口打开失败")
}
sp.dataChan = make(chan byte, 1)

@ -1,107 +0,0 @@
package utility
import (
"fmt"
"github.com/gogf/gf/v2/util/gconv"
"reflect"
"strings"
)
/*
*
num
str
l
*/
func SuppLenZero(num int64, str string, l int) string {
lenStr := gconv.String(num)
if len(lenStr) == l {
return lenStr
}
if len(lenStr) < l {
count := l - len(lenStr)
for i := 0; i < count; i++ {
lenStr = str + lenStr
}
} else {
temp := ""
for i := 0; i < l; i++ {
temp += str
}
return temp
}
return lenStr
}
func CheckNum(num int64) int64 {
if num > 100 {
return 100
}
if num < 0 {
return 0
}
return num
}
func FormatStringSliceToSQL(s []string) string {
var builder strings.Builder
builder.WriteString("(")
for i, v := range s {
if i > 0 {
builder.WriteString(", ")
}
builder.WriteString("'")
builder.WriteString(v)
builder.WriteString("'")
}
builder.WriteString(")")
return builder.String()
}
// FormatSliceToSQL 接受一个任意类型的切片,并将其格式化为类似 ('a', 'b', 'c') 的字符串
func FormatSliceToSQL(slice interface{}) (string, error) {
// 使用反射获取切片的类型信息
v := reflect.ValueOf(slice)
if v.Kind() != reflect.Slice {
return "", fmt.Errorf("input is not a slice")
}
var builder strings.Builder
length := v.Len()
for i := 0; i < length; i++ {
if i > 0 {
builder.WriteString(", ")
}
element := v.Index(i).Interface()
// 根据元素类型进行格式化
switch element.(type) {
case string:
builder.WriteString("'")
builder.WriteString(element.(string))
builder.WriteString("'")
case int, int8, int16, int32, int64:
builder.WriteString("'")
builder.WriteString(gconv.String(reflect.ValueOf(element).Int()))
builder.WriteString("'")
case uint, uint8, uint16, uint32, uint64:
builder.WriteString("'")
builder.WriteString(gconv.String(reflect.ValueOf(element).Uint()))
builder.WriteString("'")
case float32, float64:
builder.WriteString("'")
builder.WriteString(gconv.String(reflect.ValueOf(element).Float()))
builder.WriteString("'")
default:
return "", fmt.Errorf("unsupported type: %T", element)
}
}
return builder.String(), nil
}
Loading…
Cancel
Save