radar_test.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package main
  2. import (
  3. "encoding/hex"
  4. "fmt"
  5. "smart_tunnel_edge/protocol/switchRelay"
  6. "testing"
  7. )
  8. func Test_verify(t *testing.T) {
  9. //Name := "光传感器"
  10. //decodeAddress, _ := hex.DecodeString("01")
  11. //dataPack := envSensor.DataPack{Address: decodeAddress, Start: []byte{0x01, 0xF8}, DataLen: []byte{0x00, 0x08}}
  12. //
  13. //if Name == "光传感器" {
  14. // dataPack = envSensor.DataPack{Address: decodeAddress, Start: []byte{0x00, 0x06}, DataLen: []byte{0x00, 0x01}}
  15. //}
  16. //buffer := dataPack.GetEnvGatherCommand()
  17. //fmt.Println("++++++++", hex.EncodeToString(buffer.Bytes()))
  18. //
  19. //xxx := "010310030900ba012c000000000000000100016324" //42 14
  20. //
  21. //gz, _ := strconv.ParseInt(xxx[30:38], 16, 0)
  22. ////s := xxx[30:38]
  23. //fmt.Println("截取: ", gz)
  24. //hexStr := "7830303940790d0a"
  25. //// 调用解析函数
  26. //
  27. //hex.EncodeToString([]byte{})
  28. //result := parseHexString(hexStr)
  29. //// 输出结果
  30. //fmt.Println(result)
  31. //xxx := "7830313940790d0a"
  32. //char := parseHexString("7830313940790d0a")
  33. //fmt.Println("+++++++", char)
  34. //fmt.Println("len++", len(xxx))
  35. //fmt.Println(",,,", xxx[0:2], xxx[8:16])
  36. //dataPack := envSensor.DataPack{Address: "02", Start: []byte{0x00, 0x06}, DataLen: []byte{0x00, 0x01}}
  37. //command := dataPack.GetEnvGatherCommand()
  38. //fmt.Println("+++++", hex.EncodeToString(command.Bytes()))
  39. //updates := map[string]interface{}{
  40. // "id": 1,
  41. // "startTime": "00:30",
  42. // "endTime": "00:20",
  43. //}
  44. //err := config.UpdateYAMLConfig(updates)
  45. //if err != nil {
  46. // fmt.Println(err)
  47. //}
  48. //pack := switchRelay.DataPack{Address: "fe", Way: 2, Command: 0}
  49. //command := pack.GetSwitchRelayCommand()
  50. //fmt.Println("MingLing。。。", hex.EncodeToString(command.Bytes()))
  51. ints := []int{1, 2}
  52. command := switchRelay.MultiLoopDataPack{Address: "FE", TurnOff: 0, State: ints}.GetControlMuchSwitchRelayCommand()
  53. //state := generateHexSwitchState(ints)
  54. fmt.Println("转换后:", hex.EncodeToString(command.Bytes()))
  55. }
  56. func parseHexString(hexStr string) string {
  57. // 将十六进制字符串转换为字节数组
  58. bytes, err := hex.DecodeString(hexStr)
  59. if err != nil {
  60. fmt.Println("错误: 十六进制字符串解析失败", err)
  61. return ""
  62. }
  63. // 将字节数组转换为对应的字符
  64. return string(bytes)
  65. }
  66. func generateHexSwitchState(switches []int) []byte {
  67. var state int
  68. // 遍历切片,设置对应位置的开关为 1
  69. for _, s := range switches {
  70. state |= 1 << (s - 1) // 设置第s位为1,s从1开始
  71. }
  72. // 返回字节切片,使用 []byte{} 来包裹十六进制值
  73. return []byte{byte(state)}
  74. }
  75. // UpdateYAMLConfig 用于更新 YAML 配置文件中的多个值