You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python UDP Socket无法获取CarMaker12.0数据,求对接方法与消息格式

问题:CarMaker 12.0 UDP协议数据采集无响应问题

我正在使用Python脚本从CarMaker 12.0采集数据,曾实现TCP协议对接并成功获取数据,但现在希望改用UDP协议。

启动CarMaker的命令为:

C:\IPG\carmaker\win64-12.0.1\bin\CM.exe -cmdport 12345

运行测试后,以下TCP脚本可成功获取Car.v(车辆速度)数据:

TCP 成功脚本

import socket

tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_addr = (socket.gethostname(), 12345)
tcp.connect(server_addr)

msg = "QuantSubscribe {" + 'Car.v' + "}\r"
tcp.send(msg.encode())
rsp = tcp.recv(1024)
rsp = rsp.decode().split("\r\n\r\n")

read_msg = "expr {$Qu(" + 'Car.v' + ")}\r"
tcp.send(read_msg.encode())
str_rx = tcp.recv(300).decode()
rx_list = str_rx.split("\r\n\r\n")
print(rx_list)

但使用以下UDP脚本时完全无响应:

UDP 无响应脚本

import socket

udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_addr = (socket.gethostname(), 12345)

msg = "QuantSubscribe {" + 'Car.v' + "}\r"
udp.sendto(msg.encode(), server_addr)
rsp = udp.recvfrom(1024)
rsp = rsp.decode().split("\r\n\r\n")

read_msg = "expr {$Qu(" + 'Car.v' + ")}\r"
udp.sendto(read_msg.encode(), server_addr)
str_rx = udp.recvfrom(300).decode()
rx_list = str_rx.split("\r\n\r\n")

print(rx_list)

请问TCP与UDP的消息格式是否不同?如何通过UDP Socket连接CarMaker,以及对应的消息/命令格式是什么?


内容的提问来源于stack exchange,提问作者AdityaMath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:26:24