⚠ Deprecated: Legacy, CriticalBugs
Break Changes! Modify the namespace and type names to conform to the C# naming style. You only need to make simple changes to fix the project errors: 1. Remove ".NET" from the namespace; 2. Change "TraCI" in the namespace and type names to "Traci".
Suggested alternative: CodingConnected.Traci
Traci for .NET
License
—
Deps
2
Install Size
—
Vulns
✓ 0
Published
Jan 20, 2025
$ dotnet add package CodingConnected.TraCI.NET一个非官方的TraCI库的 .NET 实现。
该库由 @Minokori 复刻自 @CodingConnected的库 CodingConnected.TraCI ,但仅仅包含了其中的 .NET 实现。如果您想阅读原始库的README文档,请点击 此处。
如果您在使用过程中发现了任何bug,请提交 issue。
[TOC]
由于原始库的较长时间未更新,且存在一些问题,因此复刻了该库,并增添了一些新的特性。
目前,该库基本上实现了 sumo 官方文档中定义的所有 TraCI 命令。调用方法的方式类似于 python 的 traci 库。
请注意,由于 SUMO 官方文档和相应的 Python 源代码中的 Traci接口也并不一致(一般来说,文档具有滞后性,即python中的方法比文档中描述的方法更加丰富),因此可能出现某个python traci接口在此库中并没有相应的实现。
如果您是一名开发者,或者您发现了某些 bug,期望在使用时修改源代码临时解决他们,那么您可以阅读以下内容,以便快速了解该库的组织结构。
该库主要由以下几个命名组成:
DataTypes: 定义 Traci 协议中定义的数据类型。ProtocolTypes: 定义与 Traci 通过TCP交互时使用的类型。Service: 该库使用了IoC模式,定义了库的服务接口和响应实现。包括:
ConnectService: 与 Traci 进行 TCP 通信的服务CommandService: 执行 Traci 命令的服务,包括了发送命令和接受并解析响应的方法EventService: 在订阅了某些Traci对象的变量信息或上下文信息时,接收信息并触发相应事件的服务
在根命名空间,定义了一个 TraciClient 类,该类是整个库的入口点,用于连接到 SUMO 并执行 Traci 命令。
以上结构的继承关系如下:
graph TD
A[DataTypes] --> B[ProtocolTypes]
B --> C1[ConnectService]
B --> C2[CommandService]
B --> C3[EventService]
C1 --> D[Functions]
C2 --> D
C3 --> D
D-->E[TraciClient]