rts-sim-testing-service/third_party/semi_physical_train/btm_vobc_test.go

118 lines
3.9 KiB
Go
Raw Normal View History

2024-09-05 09:21:49 +08:00
package semi_physical_train
2024-05-29 11:48:04 +08:00
import (
"bytes"
"encoding/hex"
2024-06-06 17:57:30 +08:00
"encoding/json"
2024-05-29 11:48:04 +08:00
"fmt"
2024-06-13 18:13:21 +08:00
"github.com/snksoft/crc"
2024-06-06 17:57:30 +08:00
"joylink.club/bj-rtsts-server/third_party/message"
2024-06-12 17:45:47 +08:00
"joylink.club/bj-rtsts-server/third_party/udp"
2024-05-29 11:48:04 +08:00
"sync/atomic"
"testing"
2024-06-12 17:45:47 +08:00
"time"
2024-05-29 11:48:04 +08:00
)
const (
code1 = "fffef890149e75e15511000006230000000000d4da14ebfffd"
code2 = "fffee601804f004d00800600002a004984ec6f4e902ef6912284000000000000000000000000000000067e000000000000411b0000f5bbee397698fffd"
)
2024-06-13 18:13:21 +08:00
func TestMsg22(t *testing.T) {
msg := &message.TrainPcSimBaseMessage{}
2024-06-27 10:37:52 +08:00
msg.Type = message.RECIVE_TRAIN_CREATE_REMOVE
2024-06-18 17:10:21 +08:00
data := []byte{1}
2024-06-13 18:13:21 +08:00
msg.Data = data
code := msg.Encode()
hexCode := hex.EncodeToString(code)
fmt.Println(hexCode)
fmt.Println(crc.CalculateCRC(crc.CRC16, []byte{0}))
}
2024-05-29 11:48:04 +08:00
var message_id atomic.Uint32
2024-06-12 17:45:47 +08:00
func TestConn(t *testing.T) {
source := ":fffee601804f004d00c1b401002a00e7ae839c4b59b2bf912275000000000000000000000000000001b4bf00000000000000000000dc4902d6e431fffd"
d, _ := hex.DecodeString(source)
udpClient := udp.NewClient(fmt.Sprintf("%v:%d", "127.0.0.1", 49491))
err := udpClient.Send(d)
if err != nil {
fmt.Println(err)
return
}
time.Sleep(time.Second * 2)
udpClient.Close()
}
2024-05-29 11:48:04 +08:00
func TestDecode(t *testing.T) {
fmt.Println(code1[:4])
d, _ := hex.DecodeString(code1)
fmt.Println(d[:2])
dd := d[2 : len(d)-2]
fmt.Println(hex.EncodeToString(dd))
fmt.Println(bytes.Equal(d[:2], []byte{0xff, 0xfe}))
fmt.Println(message_id.Load())
}
func TestMsg(t *testing.T) {
2024-06-18 17:10:21 +08:00
now := time.Now().UTC()
sec := now.Unix()
fmt.Println(sec)
fmt.Println(now.UnixMilli())
fmt.Println(now.UnixMilli() - sec*1000)
2024-05-29 11:48:04 +08:00
}
func TestBytes(t *testing.T) {
2024-06-06 17:57:30 +08:00
dd := make([]byte, 0)
dd = append(dd, 0)
dd = append(dd, 1)
dd = append(dd, 2)
dd = append(dd, 3)
dd = append(dd, 4)
fmt.Println(dd[1:])
}
func TestArr(t *testing.T) {
data := make([]byte, 0)
data = append(data, 1)
dd := &message.BtmVobcMsgFree{BtmStatus: message.BTM_STSTUS_NORMAL, WorkTemperature: 10, Fun1: uint16(0), Fun2: uint16(0), Fun3: uint16(0), Fun4: uint16(0),
FreeMsg: data, RespTime: byte(3), VobcLifeNum: 2, BaseBtmVobc: message.BaseBtmVobc{AutoIdFrame: 1}}
s, _ := json.Marshal(dd)
fmt.Println(string(s))
dd2 := &message.BtmVobcMsgFree{}
json.Unmarshal(s, dd2)
fmt.Println(dd2)
}
func TestRes(t *testing.T) {
ss := "fffee601804f004d00e40321002a004fd6c86f3c2bcde891220700000000000000000000000000002103e20000000000000000000052bed1a5e9edfffd"
ss = "fffee601804f004d006a1521002a00f3329169ec2f9c9991229e000000000000000000000000000021156800000000000000000000bff47aff004e24fffd"
ss = "fffee601804f004d00cd1921002a005ea577ff00db4b628891220600000000000000000000000000002119cb0000000000000000000077ba3334d06ffffd"
ss = "fffee601804f004d006c1d21002a00e2c732ff00f86276339122a80000000000000000000000000000211d6a0000000000000000000049c46daebcf6fffd"
ss = "fffee601804f004d00871d21002a00ee97d0fb1c4b2a849122c30000000000000000000000000000211d8500000000000000000000c4e2343e4117fffd"
ss = "fffee601804f004d00444a1c002a00473bbfa11d4b3b029122a800000000000000000000000000001c4a42000000000000000000008970492fff00d0fffd"
2024-06-18 17:10:21 +08:00
ss = "fffe9287d4000570006464000a000000000000000000000490007f8181b60b10183280003fff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff01ff000a00221eede6c80a6efffd"
2024-06-06 17:57:30 +08:00
cfs, _ := hex.DecodeString(ss)
frameType, dataText, _ := message.BtmVobcDecode(cfs)
if frameType == message.COMMAND_TYPE {
fmt.Println("1111111111111111")
} else if frameType == message.REQUEST_TYPE {
req := &message.BtmVobcReq{}
req.Decode(dataText)
fmt.Println("22222222222222222222")
} else {
fmt.Println("zzzzzzzzzzzzzzzzzzzzz")
}
}
func TestRes3(t *testing.T) {
ss := "fffef890141175e15511001c4a3b0000000000fd5956a5fffd"
arr, _ := hex.DecodeString(ss)
_, dataText, err := message.BtmVobcDecode(arr)
if err != nil {
fmt.Println(err.Error())
}
req := &message.BtmVobcIdCommand{}
req.Decode(dataText)
2024-05-29 11:48:04 +08:00
}