LingxinMeng 10 months ago
parent
commit
14a17db4c6
100 changed files with 1906 additions and 0 deletions
  1. 0 0
      trigger/pjibot_delivery/README.md
  2. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_1_21031701/main/main.go
  3. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_1_21031702/main/main.go
  4. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21020001/main/main.go
  5. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21020401/main/main.go
  6. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21020501/main/main.go
  7. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21020601/main/main.go
  8. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21021101/main/main.go
  9. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030001/main/main.go
  10. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030401/main/main.go
  11. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030501/main/main.go
  12. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030601/main/main.go
  13. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030701/main/main.go
  14. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030702/main/main.go
  15. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030801/main/main.go
  16. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21030802/main/main.go
  17. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21031001/main/main.go
  18. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21031101/main/main.go
  19. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21031201/main/main.go
  20. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21031403/main/main.go
  21. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21031404/main/main.go
  22. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21040803/main/main.go
  23. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21041001/main/main.go
  24. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21041102/main/main.go
  25. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21050701/main/main.go
  26. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21050703/main/main.go
  27. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21050801/main/main.go
  28. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21051401/main/main.go
  29. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_2_21051402/main/main.go
  30. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_4_21050101/main/main.go
  31. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_4_21050201/main/main.go
  32. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_4_21050202/main/main.go
  33. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_4_21050301/main/main.go
  34. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21030907/main/main.go
  35. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21030908/main/main.go
  36. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031511/main/main.go
  37. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031512/main/main.go
  38. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031513/main/main.go
  39. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031514/main/main.go
  40. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031603/main/main.go
  41. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031604/main/main.go
  42. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21031605/main/main.go
  43. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041501/main/main.go
  44. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041502/main/main.go
  45. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041503/main/main.go
  46. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041504/main/main.go
  47. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041505/main/main.go
  48. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041506/main/main.go
  49. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041507/main/main.go
  50. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041508/main/main.go
  51. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041510/main/main.go
  52. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041601/main/main.go
  53. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041602/main/main.go
  54. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21041606/main/main.go
  55. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21050901/main/main.go
  56. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21050902/main/main.go
  57. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21050904/main/main.go
  58. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21050905/main/main.go
  59. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21050906/main/main.go
  60. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21051509/main/main.go
  61. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21051704/main/main.go
  62. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21051705/main/main.go
  63. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21051706/main/main.go
  64. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21051707/main/main.go
  65. 0 0
      trigger/pjibot_delivery/diagnostics/errorcode_5_21051708/main/main.go
  66. 0 0
      trigger/pjibot_delivery/imu/unstabledriving/main/main.go
  67. 0 0
      trigger/pjibot_delivery/locate_info/locationfailed/main/main.go
  68. 0 0
      trigger/pjibot_delivery/obstacle_detection/obstacledetection/main/obstacledetection.go
  69. 0 0
      trigger/pjibot_delivery/odom/overspeed/main/main.go
  70. 0 0
      trigger/pjibot_delivery/sys_info/cpuoveroccupied/main/main.go
  71. 0 0
      trigger/pjibot_delivery/sys_info/memoveroccupied/main/main.go
  72. 1 0
      trigger/pjibot_guide/README.md
  73. 69 0
      trigger/pjibot_guide/diagnostics/errorcode_1_21031701/main/main.go
  74. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_1_21031702/main/main.go
  75. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21020001/main/main.go
  76. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21020401/main/main.go
  77. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21020501/main/main.go
  78. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21020601/main/main.go
  79. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21021101/main/main.go
  80. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030001/main/main.go
  81. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030401/main/main.go
  82. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030501/main/main.go
  83. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030601/main/main.go
  84. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030701/main/main.go
  85. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030702/main/main.go
  86. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030801/main/main.go
  87. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21030802/main/main.go
  88. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21031001/main/main.go
  89. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21031101/main/main.go
  90. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21031201/main/main.go
  91. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21031403/main/main.go
  92. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21031404/main/main.go
  93. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21040803/main/main.go
  94. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21041001/main/main.go
  95. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21041102/main/main.go
  96. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21050701/main/main.go
  97. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21050703/main/main.go
  98. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21050801/main/main.go
  99. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21051401/main/main.go
  100. 68 0
      trigger/pjibot_guide/diagnostics/errorcode_2_21051402/main/main.go

+ 0 - 0
trigger/pji/README.md → trigger/pjibot_delivery/README.md


+ 0 - 0
trigger/pji/diagnostics/errorcode_1_21031701/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_1_21031701/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_1_21031702/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_1_21031702/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21020001/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21020001/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21020401/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21020401/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21020501/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21020501/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21020601/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21020601/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21021101/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21021101/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030001/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030001/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030401/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030401/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030501/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030501/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030601/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030601/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030701/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030701/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030702/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030702/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030801/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030801/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21030802/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21030802/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21031001/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21031001/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21031101/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21031101/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21031201/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21031201/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21031403/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21031403/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21031404/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21031404/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21040803/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21040803/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21041001/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21041001/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21041102/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21041102/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21050701/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21050701/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21050703/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21050703/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21050801/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21050801/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21051401/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21051401/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_2_21051402/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_2_21051402/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_4_21050101/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_4_21050101/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_4_21050201/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_4_21050201/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_4_21050202/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_4_21050202/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_4_21050301/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_4_21050301/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21030907/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21030907/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21030908/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21030908/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031511/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031511/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031512/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031512/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031513/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031513/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031514/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031514/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031603/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031603/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031604/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031604/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21031605/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21031605/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041501/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041501/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041502/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041502/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041503/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041503/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041504/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041504/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041505/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041505/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041506/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041506/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041507/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041507/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041508/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041508/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041510/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041510/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041601/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041601/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041602/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041602/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21041606/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21041606/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21050901/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21050901/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21050902/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21050902/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21050904/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21050904/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21050905/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21050905/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21050906/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21050906/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21051509/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21051509/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21051704/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21051704/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21051705/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21051705/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21051706/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21051706/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21051707/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21051707/main/main.go


+ 0 - 0
trigger/pji/diagnostics/errorcode_5_21051708/main/main.go → trigger/pjibot_delivery/diagnostics/errorcode_5_21051708/main/main.go


+ 0 - 0
trigger/pji/imu/unstabledriving/main/main.go → trigger/pjibot_delivery/imu/unstabledriving/main/main.go


+ 0 - 0
trigger/pji/locate_info/locationfailed/main/main.go → trigger/pjibot_delivery/locate_info/locationfailed/main/main.go


+ 0 - 0
trigger/pji/obstacle_detection/obstacledetection/main/obstacledetection.go → trigger/pjibot_delivery/obstacle_detection/obstacledetection/main/obstacledetection.go


+ 0 - 0
trigger/pji/odom/overspeed/main/main.go → trigger/pjibot_delivery/odom/overspeed/main/main.go


+ 0 - 0
trigger/pji/sys_info/cpuoveroccupied/main/main.go → trigger/pjibot_delivery/sys_info/cpuoveroccupied/main/main.go


+ 0 - 0
trigger/pji/sys_info/memoveroccupied/main/main.go → trigger/pjibot_delivery/sys_info/memoveroccupied/main/main.go


+ 1 - 0
trigger/pjibot_guide/README.md

@@ -0,0 +1 @@
+diagnostics中包名不能用#,但是Label用#号隔开了

+ 69 - 0
trigger/pjibot_guide/diagnostics/errorcode_1_21031701/main/main.go

@@ -0,0 +1,69 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+输入电源欠压
+*/
+
+var (
+	errorType       = "1"
+	errorCode       = "21031701"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+// Label 此处用 # 号隔开,包名只支持下划线 _
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_1_21031702/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+输入电源过压
+*/
+
+var (
+	errorType       = "1"
+	errorCode       = "21031702"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21020001/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+电池数据通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21020001"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21020401/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+imu通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21020401"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21020501/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+odom通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21020501"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21020601/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+motor通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21020601"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21021101/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+电驱通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21021101"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030001/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+电池数据通讯超时丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030001"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030401/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+imu通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030401"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030501/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+odom通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030501"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030601/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+motor通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030601"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030701/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+防跌落传感器通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030701"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030702/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+防跌落传感器数值异常
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030702"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030801/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+超声波传感器通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030801"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21030802/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+超声波传感器数值异常
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21030802"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21031001/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+激光雷达通讯轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21031001"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21031101/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+电驱通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21031101"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21031201/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+红外数据返回超时
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21031201"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21031403/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+深度相机1数据轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21031403"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21031404/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+深度相机2数据轻微丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21031404"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21040803/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+超声波数据返回超时
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21040803"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21041001/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+激光雷达通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21041001"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21041102/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+电驱数据返回超时
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21041102"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21050701/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+防跌落传感器通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21050701"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21050703/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+防跌落数据返回超时
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21050703"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21050801/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+超声波传感器通讯严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21050801"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21051401/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+深度相机1数据严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21051401"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

+ 68 - 0
trigger/pjibot_guide/diagnostics/errorcode_2_21051402/main/main.go

@@ -0,0 +1,68 @@
+package main
+
+import (
+	"fmt"
+	"github.com/bluenviron/goroslib/v2/pkg/msgs/diagnostic_msgs"
+	"strconv"
+)
+
+/*
+深度相机2数据严重丢失
+*/
+
+var (
+	errorType       = "2"
+	errorCode       = "21051402"
+	code12          = "21"
+	hardwareIdIndex = map[string]string{
+		"batter":        "00",
+		"cloud":         "01",
+		"gateway":       "02",
+		"mcu":           "03",
+		"imu":           "04",
+		"odom":          "05",
+		"motor":         "06",
+		"preventFall":   "07",
+		"sonar":         "08",
+		"locate":        "09",
+		"laserLadar":    "10",
+		"electricDrive": "11",
+		"infrared":      "12",
+		"livoxLidar":    "13",
+		"camera":        "14",
+		"navigation":    "15",
+		"system":        "16",
+	}
+)
+
+func Topic() string {
+	return "/diagnostics"
+}
+
+func Label() string {
+	return "errorcode#" + errorType + "#" + errorCode
+}
+
+func Rule(data *diagnostic_msgs.DiagnosticArray) string {
+	if len(data.Status) == 0 {
+		return ""
+	}
+	for _, status := range data.Status {
+		if status.Level != 5 || len(status.Values) == 0 {
+			continue
+		}
+
+		code34 := fmt.Sprintf("%02d", status.Level)
+		code56 := hardwareIdIndex[status.HardwareId]
+		intVal, err := strconv.Atoi(status.Values[1].Value)
+		if err != nil {
+			fmt.Println("字段 【status.Values[1].Value】转整数报错:", err)
+			return ""
+		}
+		code78 := fmt.Sprintf("%02d", intVal)
+		if errorCode == code12+code34+code56+code78 {
+			return Label()
+		}
+	}
+	return ""
+}

Some files were not shown because too many files changed in this diff