本文介绍traci英文文档(主要是与python的接口)。 第一个接口已有较多参考,故从第二个开始介绍。 可以将“subscribe”视为用于检索变量的批处理模式。 您可以在每个时间步骤后自动检索感兴趣的值,而不必一遍又一遍地询问相同的变量。 TraCI的subscribe按每个模块进行处理。 也就是说,您可以在每个时间步之后向模块询问所有当前subscribe的结果。 为了subscribe变量,您需要知道它们的变量ID,可以在traci / constants.py文件中查找它们。 TraCI的context subscriptions按每个模块进行处理。 也就是说,可以在每个时间步之后向模块询问所有当前订阅的结果。 为了context subscriptions变量,您需要获取要检索的对象的域ID,以及可以在traci / constants.py文件中查找的变量ID。 域ID的格式始终为CMD_GET_ _VARIABLE。 下面展示一些 和第一节的subscribe的区别在于,context指定所要订阅变量的域(范围)。也就是在上面代码中,指定交叉口junction的ID,指定domain是vehicle,指定范围“42”,就能搜索该范围内的车辆的速度和时间。 其中,subscribeContext的函数表示,Subscribe to objects of the given domain (specified as domain=traci.constants.CMD_GET__VARIABLE), 下面展示 通常,每次调用traci.simulationStep()时都需要调用一个函数,以使其自动发生,可以添加StepListener对象“ listener”(更确切地说是 traci.StepListener的子类),即: 下面展示一些 链接: link.
Traci 与python接口
Subscriptions
下面展示一些 代码
。import traci import traci.constants as tc traci.start(["sumo", "-c", "my.sumocfg"]) traci.vehicle.subscribe(vehID, (tc.VAR_ROAD_ID, tc.VAR_LANEPOSITION)) print(traci.vehicle.getSubscriptionResults(vehID)) for step in range(3): print("step", step) traci.simulationStep() print(traci.vehicle.getSubscriptionResults(vehID))#每隔3步,输出订阅结果 traci.close()
Context Subscriptions
检索路口范围(42m)内的所有车速和等待时间(隐式检索车辆ID)
。import traci import traci.constants as tc traci.start(["sumo", "-c", "my.sumocfg"]) traci.junction.subscribeContext(junctionID, tc.CMD_GET_VEHICLE_VARIABLE, 42, [tc.VAR_SPEED, tc.VAR_WAITING_TIME]) print(traci.junction.getContextSubscriptionResults(junctionID)) for step in range(3): print("step", step) traci.simulationStep() print(traci.junction.getContextSubscriptionResults(junctionID)) traci.close()
which are closer than dist to the object specified by objectID.。Context Subscription Filters
addSubscriptionFilter<FILTER_ID>()
用法。traci.vehicle.subscribeContext("ego", tc.CMD_GET_VEHICLE_VARIABLE, 0.0, [tc.VAR_SPEED]) #获取以车辆为“ego”为中心,0米范围内所有车辆的速度。 traci.vehicle.addSubscriptionFilterLanes(lanes, noOpposite=True, downstreamDist=100, upstreamDist=50) #增加lane的过滤器,下游距离100,上游距离50
【 since it is be overridden by the selective values of downstreamDist and upstreamDist, respectively, given to the call of addSubscriptionFilterLanes() in the second line. 因为它分别被提供给第二行中的addSubscriptionFilterLanes()调用的下游值和上游值的选择值覆盖。】
例如:Adding a StepListener
代码
。 class ExampleListener(traci.StepListener): def step(self, t=0): # do something at every simulaton step print("ExampleListener called at time %s ms." % t) # indicate that the step listener should stay active in the next step return True listener = ExampleListener() traci.addStepListener(listener)
英文文档源链接
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算