交通管理服务器类,负责处理远程交通管理器的请求并应用更改到本地实例。 更多...
#include <TrafficManagerServer.h>
Public 成员函数 | |
TrafficManagerServer & | operator= (const TrafficManagerServer &)=default |
默认移动构造函数 | |
TrafficManagerServer & | operator= (TrafficManagerServer &&)=default |
默认拷贝赋值运算符 | |
uint16_t | port () const |
获取交通管理器服务器的RPC端口号 | |
TrafficManagerServer (const TrafficManagerServer &)=default | |
TrafficManagerServer (TrafficManagerServer &&)=default | |
默认拷贝构造函数 | |
TrafficManagerServer (uint16_t &RPCPort, carla::traffic_manager::TrafficManagerBase *tm) | |
默认移动赋值运算符 | |
~TrafficManagerServer () | |
析构函数,释放交通管理器服务器资源 | |
Private 属性 | |
uint16_t | _RPCPort |
交通管理器服务器的RPC端口号 | |
::rpc::server * | server = nullptr |
服务器实例指针 | |
交通管理服务器类,负责处理远程交通管理器的请求并应用更改到本地实例。
在文件 TrafficManagerServer.h 第 81 行定义.
|
default |
|
default |
默认拷贝构造函数
|
inline |
默认移动赋值运算符
构造函数,初始化交通管理服务器实例。
RPCPort | 引用传递的RPC端口号,用于创建服务器实例并监听远程交通管理器的请求。 |
tm | 指向TrafficManagerBase类型的指针,用于通过远程交通管理器应用更改到本地实例。 |
创建服务器实例
捕获异常后,更新端口号并重试创建服务器实例 在每次重试前,线程将休眠500毫秒
如果服务器实例创建成功
如果服务器仍未创建,则抛出运行时异常
std::runtime_error | 如果系统因绑定错误而无法创建RPC服务器,则抛出运行时异常 |
如果服务器创建成功,我们将一个lambda函数绑定到名称"register_vehicle"
将rpc::Actor转换为ActorPtr,并添加到actor_list中
在交通管理器中注册车辆
绑定一个lambda函数到名称"unregister_vehicle"
将rpc::Actor转换为ActorPtr,并添加到actor_list中
在交通管理器中注销车辆
设置车辆相对于限速的速度降低百分比的方法
如果小于0,则表示百分比增加
设置车辆的百分比速度差异
设置从中心线偏移的车道位移的方法 正值表示向右偏移,负值表示向左偏移
设置车辆的车道偏移量
设置车辆的精确期望速度的方法
设置车辆的期望速度
设置车辆灯光自动管理的方法
设置是否更新车辆灯光
设置全局相对于限速的速度降低百分比的方法 如果小于0,则表示百分比增加
percentage | 速度降低的百分比(负值表示增加) |
调用交通管理器的SetGlobalPercentageSpeedDifference方法来设置全局速度差异百分比
设置全局从中心线偏移的车道位移的方法 正值表示向右偏移,负值表示向左偏移
offset | 车道偏移量 |
调用交通管理器的SetGlobalLaneOffset方法来设置全局车道偏移量
设置车辆间碰撞检测规则的方法
reference_actor | 参考车辆(用于检测碰撞的基准车辆) |
other_actor | 另一车辆(与参考车辆进行碰撞检测的车辆) |
detect_collision | 是否检测碰撞(true表示检测,false表示不检测) |
将rpc::Actor转换为ActorPtr类型
调用交通管理器的SetCollisionDetection方法来设置碰撞检测规则
强制车辆换道的方法
actor | 需要强制换道的车辆 |
direction | 换道方向(true表示向左,false表示向右) |
将rpc::Actor转换为ActorPtr类型,并调用交通管理器的SetForceLaneChange方法来强制车辆换道
启用/禁用车辆的自动换道功能
actor | 需要设置自动换道功能的车辆 |
enable | 是否启用自动换道(true表示启用,false表示禁用) |
将rpc::Actor转换为ActorPtr类型,并调用交通管理器的SetAutoLaneChange方法来启用或禁用自动换道功能
设置车辆应保持与前车距离的方法
actor | 需要设置距离的车辆 |
distance | 应保持的距离 |
将rpc::Actor转换为ActorPtr类型,并调用交通管理器的SetDistanceToLeadingVehicle方法来设置与前车的距离
设置全局车辆应保持与前车距离的方法
distance | 全局应保持的距离 |
调用交通管理器的SetGlobalDistanceToLeadingVehicle方法来设置全局与前车的距离
设置交通灯运行概率的方法
actor | CARLA中的Actor对象 |
percentage | 交通灯运行的概率(百分比) |
设置交通标志运行概率的方法
actor | CARLA中的Actor对象 |
percentage | 交通标志运行的概率(百分比) |
设置忽略行人碰撞概率的方法
actor | CARLA中的Actor对象 |
percentage | 忽略行人碰撞的概率(百分比) |
设置忽略车辆碰撞概率的方法
actor | CARLA中的Actor对象 |
percentage | 忽略车辆碰撞的概率(百分比) |
设置保持在右侧车道行驶概率的方法
actor | CARLA中的Actor对象 |
percentage | 保持在右侧车道行驶的概率(百分比) |
设置随机进行左车道变换概率的方法
actor | CARLA中的Actor对象 |
percentage | 随机进行左车道变换的概率(百分比) |
设置随机进行右车道变换概率的方法
actor | CARLA中的Actor对象 |
percentage | 随机进行右车道变换的概率(百分比) |
设置混合物理模式的方法
mode_switch | 是否开启混合物理模式 |
设置混合物理半径的方法
radius | 混合物理的半径 |
设置OSM(OpenStreetMap)模式的方法
mode_switch | 是否开启OSM模式 |
设置自定义路径的方法
actor | CARLA中的Actor对象 |
path | 自定义的路径 |
empty_buffer | 是否清空缓冲区 |
移除指定的一系列点的方法
server | 用于绑定方法的服务器对象 |
actor_id | 需要移除路径的Actor的ID |
remove_path | 一个布尔值,指示是否移除路径 |
更新已经设置的一系列点的方法
server | 用于绑定方法的服务器对象 |
actor_id | 需要更新路径的Actor的ID |
path | 新的路径数据 |
设置我们自己的导入路线的方法
server | 用于绑定方法的服务器对象 |
actor | 包含路线信息的Actor对象 |
route | 需要设置的路线数据 |
empty_buffer | 一个布尔值,指示是否清空缓冲区 |
移除指定路线的方法
server | 用于绑定方法的服务器对象 |
actor_id | 需要移除路线的Actor的ID |
remove_path | 一个布尔值,指示是否移除路径 |
更新已经设置的路线的方法
server | 用于绑定方法的服务器对象 |
actor_id | 需要更新路线的Actor的ID |
route | 新的路线数据 |
设置重生休眠车辆模式的方法。
server | 用于绑定方法的服务器对象。 |
mode_switch | 一个布尔值,指示是否开启重生休眠车辆模式 |
设置重生休眠车辆的边界范围的方法
server | 用于绑定方法的服务器对象 |
lower_bound | 重生休眠车辆的下边界值 |
upper_bound | 重生休眠车辆的上边界值 |
获取车辆下一个动作的方法
actor_id | 需要获取动作的车辆Actor的ID |
获取车辆动作缓冲区的方法
actor_id | 需要获取动作缓冲区的车辆Actor的ID |
关闭服务器的方法
设置同步模式的方法
mode | 一个布尔值,指示是否开启同步模式 |
设置同步执行时的超时时间(以毫秒为单位)
time | 同步模式的超时时间,单位为毫秒 |
设置随机化种子的方法
seed | 用于随机化过程的种子值 |
提供同步时钟的方法
检查服务器是否正在运行的方法
以异步模式运行交通管理器服务器,以响应任何用户客户端的请求
RPCPort | 引用传递的RPC端口号 |
tm | 指向TrafficManagerBase的指针 |
在文件 TrafficManagerServer.h 第 96 行定义.
引用了 carla::client::detail::ActorVariant::Get(), carla::traffic_manager::TrafficManagerBase::GetActionBuffer(), carla::traffic_manager::TrafficManagerBase::GetEpisodeProxy(), carla::traffic_manager::TrafficManagerBase::GetNextAction(), carla::traffic_manager::constants::Networking::MIN_TRY_COUNT, carla::traffic_manager::TrafficManagerBase::RegisterVehicles(), carla::traffic_manager::TrafficManagerBase::Release(), carla::traffic_manager::TrafficManagerBase::RemoveImportedRoute(), carla::traffic_manager::TrafficManagerBase::RemoveUploadPath(), carla::traffic_manager::TrafficManagerBase::SetAutoLaneChange(), carla::traffic_manager::TrafficManagerBase::SetBoundariesRespawnDormantVehicles(), carla::traffic_manager::TrafficManagerBase::SetCollisionDetection(), carla::traffic_manager::TrafficManagerBase::SetCustomPath(), carla::traffic_manager::TrafficManagerBase::SetDesiredSpeed(), carla::traffic_manager::TrafficManagerBase::SetDistanceToLeadingVehicle(), carla::traffic_manager::TrafficManagerBase::SetForceLaneChange(), carla::traffic_manager::TrafficManagerBase::SetGlobalDistanceToLeadingVehicle(), carla::traffic_manager::TrafficManagerBase::SetGlobalLaneOffset(), carla::traffic_manager::TrafficManagerBase::SetGlobalPercentageSpeedDifference(), carla::traffic_manager::TrafficManagerBase::SetHybridPhysicsMode(), carla::traffic_manager::TrafficManagerBase::SetHybridPhysicsRadius(), carla::traffic_manager::TrafficManagerBase::SetImportedRoute(), carla::traffic_manager::TrafficManagerBase::SetKeepRightPercentage(), carla::traffic_manager::TrafficManagerBase::SetLaneOffset(), carla::traffic_manager::TrafficManagerBase::SetOSMMode(), carla::traffic_manager::TrafficManagerBase::SetPercentageIgnoreVehicles(), carla::traffic_manager::TrafficManagerBase::SetPercentageIgnoreWalkers(), carla::traffic_manager::TrafficManagerBase::SetPercentageRunningLight(), carla::traffic_manager::TrafficManagerBase::SetPercentageRunningSign(), carla::traffic_manager::TrafficManagerBase::SetPercentageSpeedDifference(), carla::traffic_manager::TrafficManagerBase::SetRandomDeviceSeed(), carla::traffic_manager::TrafficManagerBase::SetRandomLeftLaneChangePercentage(), carla::traffic_manager::TrafficManagerBase::SetRandomRightLaneChangePercentage(), carla::traffic_manager::TrafficManagerBase::SetRespawnDormantVehicles(), carla::traffic_manager::TrafficManagerBase::SetSynchronousMode(), carla::traffic_manager::TrafficManagerBase::SetSynchronousModeTimeOutInMiliSecond(), carla::traffic_manager::TrafficManagerBase::SetUpdateVehicleLights(), carla::traffic_manager::TrafficManagerBase::SynchronousTick(), carla::throw_exception(), carla::traffic_manager::TrafficManagerBase::UnregisterVehicles(), carla::traffic_manager::TrafficManagerBase::UpdateImportedRoute() , 以及 carla::traffic_manager::TrafficManagerBase::UpdateUploadPath().
|
inline |
|
default |
默认移动构造函数
|
default |
默认拷贝赋值运算符
|
inline |
|
private |
|
private |