发布时间:2022-08-19 12:26
相信很多小伙伴都苦恼于PlantSimulation的学习资料太少,双方之间的交互成为我们科研或工程应用上的绊脚石。博主也正处于不断学习和摸索的阶段,今天给大家分享一下python与Plant的socket交互过程,希望大家有所收获。后续还会继续更新一些与Plant和python的相关内容。
Python与PlantSimulation的socket交互可以实现双方的实时数据通讯问题,不过传输为bytes格式传输。数据传输完成记得转码。
博主只走通了TCP的连接,如果有人懂得UDP连接的,希望也教一下博主。
其实可以任选python或plantsimulation作为客户端,博主因研究需要,将python设为客户端。plant设为服务器。
"""
Created on Sat December 14 21:00:00 2021
@author: Zhang Litong- Nanjing University of Aeronautics and Astronautics
"""
from socket import *
host = "127.0.0.1"
port = 30000
client = socket(AF_INET, SOCK_STREAM)
client.connect((host, port))
while True:
str='python_to_plant successful!!'
str=str.encode()
client.send(str)
response = client.recv(4096)
print(response)
if response: # 如果接收服务器信息失败,或没有消息回应
break
client.close()
小伙伴可以根据自己的需要将上述代码转换为函数。
上述代码中 host为服务器地址,127.0.0.1地址段代表本电脑自身的地址。
Plant里需要创建两个方法,socket配置如下图所示,这里我命名为MyServerSocket,记得启用socket。
SentMessage方法示例内容如下:使用时运行此方法!!传输大量数据可以将plant中的表直接转换为string格式,再用write指令发送。
var word:string:="Plant_to_python successful"
MyServerSocket.write(0,word)--0代表服务器
print "finished"
MyCallbackMethod方法示例内容如下:将此方法放到MyServerSocket的回调方法这里。
param channelNo: integer, message: string
print message
双方都创建完成之后,运行python就可以观察到,PlantSimulation里的控制台会有python的python_to_plant successful!! 字样,运行Plant的SentMessage方法,会在python输出plant_to_python successful 字样。
至此分享结束,欢迎大家交流学习。
c# - - - 使用Chloe框架连接PostgreSQL数据库
ssh框架基于java的爱心捐助平台源码+论文第三稿+查重报告+代码讲解视频(包安装,已降重)
金蝶云星辰连接钉钉自建:快速解决出库单据无法自动同步到OA系统发起审批的问题
Windows VSCode 安装C++ 一定可以的 详细版
苹果云服务icloud_苹果手机备忘录不小心删了怎么恢复?分享专业教程
JavaScript中如何让 x == 1 && x == 2 && x == 3 等式成立
k8s之Pod详解(五)【Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级)】