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
相关产品推荐
相关产品推荐

