小车配置通讯说明

说明文档

1. 通讯 IP 与端口

  • UDP 通讯
    IP:自动获取本地电脑 IP
    端口:8001

  • WebsocketServer
    IP:自动获取本地电脑 IP
    端口:1883


2. 视频资源替换

  • 视频存放路径:Resources/Video
  • 视频格式:mp4
  • 视频按先后顺序排列,名称可自定义(例如 "00_待机"),首位视频为待机视频

图片1

程序内指令切换视频

  • 通过 UDP 向 8001 端口发送指令(UTF-8 编码):
    [SwitchAvProVideo_{视频下标}]
    例如:

    • 切换待机视频:SwitchAvProVideo_0
    • 切换第一个视频:SwitchAvProVideo_1
    • 依此类推
  • 也可通过 WebsocketServer 的 1883 端口发送,指令内容相同。


3. HTML 与 Unity 通讯

通讯协议支持 WebSocketUDP,UTF-8编码。

通讯指令说明

  • 客户端连接Unity WebSocketServer后会接收到 REQUIRE_AUTH 密码验证信息,客户端需要发送AUTH:{密码}才能够继续通信,密码错误或者未验证成功WebsocketServer会将该客户端断联。
  • 向 Unity 发送 JSON 配置(string类型),可保存到 Unity 本地。
  • 向 Unity 发送 lan_trigger_msg 对应的 value 值,可触发 Unity 本地指令执行。
  • 向 Unity 发送 stop_all_delay_send_cmd,可停止所有延时指令发送。
  • 向 Unity 发送 pausethevideo,可暂停视频+停止所有指令。
  • 向 Unity 发送 stopthedemonstration,可返回待机+停止所有指令。
  • 向unity发送如下Json切换到图片模式,folderPath为图片文件夹绝对路径,clearAfterLoad为是否在加载完成后清空文件夹所有文件,true为加载完成清空,false为不清空。
{
	"type": "request_image_list",
	"data": {
		"folderPath": "C:/Users/Admin/Pictures",
		"clearAfterLoad": true
	}
}
  • 图片模式下切换图片示例:
    [SwitchTexture_{图片下标}]
    例如:
    • 切换第1张图片:SwitchTexture_1
    • 切换第2张图片:SwitchTexture_2
    • 切换第3张图片:SwitchTexture_3
    • 依此类推
  • 向unity发送如下Json获取小车信息配置,ipportmsg自定义
{
	"type": "queryCar",
	"ip": "192.168.1.115",
	"port": 22222,
	"msg": "GetMM"
}
  • 向 Unity 发送 PotNumQian 获取前巡线数值;
  • 向 Unity 发送 PotNumHou 获取后巡线数值;
  • 向 Unity 发送 GetMM 获取两个电机转动频率;
  • 向 Unity 发送 AllBackTrue 设置三个灯灭掉自动停车,启动默认;
  • 向 Unity 发送 AllBackFalse 三个灯灭掉不自动停车;

小车在线状态和IP配置

  • 1、配置小车IP,向 Unity 发送如下格式Json可设置需要监测的小车数量,监测数量可增删,发送给Unity后会保存在Unity本地并刷新监测IP,
    ipAddress为小车的IP地址,remark为小车的备注,可自定义名称。
{
    "ipList": [
        {
            "ipAddress": "192.168.3.28",
            "remark": "小车1"
        },
        {
            "ipAddress": "192.168.3.127",
            "remark": "小车2"
        },
        {
            "ipAddress": "192.168.3.129",
            "remark": "小车3"
        }
    ]
}
  • 2、获取小车在线状态,当 Unity 监测到小车在线状态变化时,会向所有WebSocket Client发送如下Json,
    ipAddress为小车IP,remark为小车备注, isOnline true为小车在线,false为离线, pingTime为该IP的Ping延迟时间,单位是毫秒(ms),failCount为记录该IP连续Ping失败的次数。
{
    "ipList": [
        {
            "ipAddress": "192.168.3.28",
            "remark": "小车1",
            "isOnline": false,
            "pingTime": 0.0,
            "failCount": 0
        },
        {
            "ipAddress": "192.168.3.127",
            "remark": "小车2",
            "isOnline": false,
            "pingTime": 0.0,
            "failCount": 0
        },
        {
            "ipAddress": "192.168.3.129",
            "remark": "小车3",
            "isOnline": false,
            "pingTime": 0.0,
            "failCount": 0
        }
    ]
}

获取配置指令

向 Unity 发送 get_config,可获取小车指令配置,返回格式如下(JSON):

set_config{
  "cars": [
    {
      "name": "小车 1",
      "protocol": [
        {
          "type": "timeline",
          "local_trigger_msg": "智能驾驶",
          "lan_trigger_msg": "button1",
          "timeline_commands": "1测试起步*0&1测试角度*2.32&2后退测试指令*4.51&3停车测试指令*6.08&1测试速度*7.68&小车1多指令1停车*9.69&小车1多指令1起步5*11.17&小车1多指令转弯6*14.01&小车1多指令1回正*16.56&返回待机*19.18"
        },
        {
          "type": "timeline",
          "local_trigger_msg": "车位到车位",
          "lan_trigger_msg": "button2",
          "timeline_commands": "转弯角度02*0&前进02*5.67"
        },
        {
          "type": "timeline",
          "local_trigger_msg": "自动泊车",
          "lan_trigger_msg": "button3",
          "timeline_commands": ""
        },
        {
          "type": "timeline",
          "local_trigger_msg": "山路共驾",
          "lan_trigger_msg": "button4",
          "timeline_commands": ""
        },
        {
          "type": "timeline",
          "local_trigger_msg": "主动安全",
          "lan_trigger_msg": "button5",
          "timeline_commands": ""
        },
        {
          "type": "timeline",
          "local_trigger_msg": "循迹倒车",
          "lan_trigger_msg": "button6",
          "timeline_commands": ""
        },
        {
          "type": "udp",
          "local_trigger_msg": "1测试起步",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "QianJin"
        },
        {
          "type": "udp",
          "local_trigger_msg": "1测试角度",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "JiaoDu*10*200*200*104"
        },
        {
          "type": "udp",
          "local_trigger_msg": "1测试速度",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "ZhuanWan*1900*200*30"
        },
        {
          "type": "udp",
          "local_trigger_msg": "2后退测试指令",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "HouTui"
        },
        {
          "type": "udp",
          "local_trigger_msg": "3停车测试指令",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "TingChe"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车1多指令1停车",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "TingChe"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车1多指令1起步5",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "QianJin"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车1多指令转弯6",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "JiaoDu*20*500*500*30"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车1多指令1回正",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "JiaoDu*30*500*500*112"
        },
        {
          "type": "udp",
          "local_trigger_msg": "返回待机",
          "lan_trigger_msg": "",
          "ip": "192.168.3.121",
          "port": 8001,
          "hex": false,
          "delay": 0,
          "relay_cmd": "stopthedemonstration"
        },
        {
          "type": "udp",
          "local_trigger_msg": "前进02",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "QianJin"
        },
        {
          "type": "udp",
          "local_trigger_msg": "转弯角度02",
          "lan_trigger_msg": "",
          "ip": "192.168.1.65",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "JiaoDu*100*500*500*112"
        }
      ]
    },
    {
      "name": "小鹏 2",
      "protocol": [
        {
          "type": "timeline",
          "local_trigger_msg": "小鹏车2测修复多指令",
          "lan_trigger_msg": "play_scene_car2",
          "timeline_commands": "小车2时间轴1测试指令*0&小车2时间轴1测试*2.35"
        },
        {
          "type": "udp",
          "local_trigger_msg": "车2起步",
          "lan_trigger_msg": "",
          "ip": "192.168.1.63",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "ceshi"
        },
        {
          "type": "udp",
          "local_trigger_msg": "车2测试",
          "lan_trigger_msg": "",
          "ip": "192.168.1.63",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "ccc"
        }
      ]
    },
    {
      "name": "小车 3",
      "protocol": [
        {
          "type": "timeline",
          "local_trigger_msg": "车3时间轴1",
          "lan_trigger_msg": "play_scene_car3",
          "timeline_commands": "测试指令31*0&小车3测试指令2*1.51&小车3测试指令3*3.2"
        },
        {
          "type": "timeline",
          "local_trigger_msg": "车3时间轴2",
          "lan_trigger_msg": "play_scene_car4",
          "timeline_commands": "小车3时间轴2测试起步1*0&小车3时间轴2起步2*1.41"
        },
        {
          "type": "udp",
          "local_trigger_msg": "测试指令31",
          "lan_trigger_msg": "",
          "ip": "192.168.3.28",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "测试"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车3测试指令2",
          "lan_trigger_msg": "",
          "ip": "192.168.3.28",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "TingChe"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车3测试指令3",
          "lan_trigger_msg": "",
          "ip": "192.168.3.28",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "QianJin"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车3时间轴2测试起步1",
          "lan_trigger_msg": "",
          "ip": "192.168.3.28",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "JiaoDu*110*500*500*30"
        },
        {
          "type": "udp",
          "local_trigger_msg": "小车3时间轴2起步2",
          "lan_trigger_msg": "",
          "ip": "192.168.3.28",
          "port": 22222,
          "hex": false,
          "delay": 0,
          "relay_cmd": "QianJin"
        }
      ]
    }
  ]
}
posted @ 2026-07-23 21:48  eglobulus  阅读(48)  评论(0)    收藏  举报