|
CARLA
|
Utility class to parse map_logic.json files and apply traffic light timing configuration. More...
#include <MapLogicParser.h>
Static Public Member Functions | |
| static void | ApplyLaneIdsFromMapLogic (const FString &XODRFilePath, ATrafficLightManager *TrafficLightManager) |
| Apply lane IDs from map_logic.json to traffic light components. | |
| static bool | ParseAndApplyMapLogic (const FString &XODRFilePath, ATrafficLightManager *TrafficLightManager) |
| Parse map_logic.json file and apply traffic light timing configuration to the TrafficLightManager. | |
Static Private Member Functions | |
| static void | ApplyTrafficLightLogic (const TArray< FTrafficLightLogicData > &LogicData, ATrafficLightManager *TrafficLightManager) |
| Apply traffic light timing configuration to the TrafficLightManager. | |
| static FString | GetDirectoryPath (const FString &FilePath) |
| Get the directory path from a full file path. | |
| static TArray< FTrafficLightLogicData > | LoadMapLogicFromJSON (const FString &XODRFilePath) |
| Load and parse the map_logic.json file from the same directory as the XODR file. | |
| static FTrafficLightTiming | ParseTimingFromJSON (TSharedPtr< FJsonObject > TimingJson) |
| Parse timing data from JSON object. | |
| static FTrafficLightLogicData | ParseTrafficLightFromJSON (TSharedPtr< FJsonObject > TrafficLightJson) |
| Parse individual traffic light data from JSON object. | |
Utility class to parse map_logic.json files and apply traffic light timing configuration.
Definition at line 103 of file MapLogicParser.h.
|
static |
Apply lane IDs from map_logic.json to traffic light components.
| XODRFilePath | Path to the .xodr file (will look for map_logic.json in same directory) |
| TrafficLightManager | The traffic light manager to apply configuration to |
Definition at line 420 of file MapLogicParser.cpp.
References FTrafficLightLogicData::ActorName, FTrafficLightTiming::AmberDuration, ATrafficLightManager::GetController(), ATrafficLightManager::GetMap(), ATrafficLightBase::GetTrafficLightComponent(), FTrafficLightTiming::GreenDuration, FTrafficLightLogicData::Heads, LoadMapLogicFromJSON(), FTrafficLightTiming::RedDuration, ATrafficLightManager::RegisterLightComponentFromOpenDRIVE(), UTrafficLightController::SetGreenTime(), UTrafficLightController::SetRedTime(), UTrafficLightController::SetStates(), UTrafficLightController::SetYellowTime(), FTrafficLightLogicData::SignalID, FTrafficLightStage::State, FTrafficLightStage::Time, FTrafficLightLogicData::Timing, and FTrafficLightLogicData::TrafficLightGroupID.
Referenced by ATrafficLightManager::InitializeTrafficLights().
|
staticprivate |
Apply traffic light timing configuration to the TrafficLightManager.
| LogicData | Array of traffic light configurations to apply |
| TrafficLightManager | The traffic light manager to configure |
Definition at line 110 of file MapLogicParser.cpp.
References ATrafficLightManager::GetController(), UTrafficLightController::SetGreenTime(), UTrafficLightController::SetRedTime(), and UTrafficLightController::SetYellowTime().
Referenced by ParseAndApplyMapLogic().
|
staticprivate |
Get the directory path from a full file path.
| FilePath | Full path to a file |
Definition at line 252 of file MapLogicParser.cpp.
Referenced by LoadMapLogicFromJSON().
|
staticprivate |
Load and parse the map_logic.json file from the same directory as the XODR file.
| XODRFilePath | Path to the .xodr file |
Definition at line 58 of file MapLogicParser.cpp.
References GetDirectoryPath(), and ParseTrafficLightFromJSON().
Referenced by ApplyLaneIdsFromMapLogic(), and ParseAndApplyMapLogic().
|
static |
Parse map_logic.json file and apply traffic light timing configuration to the TrafficLightManager.
Returns true if file was found and parsed successfully.
| XODRFilePath | Path to the .xodr file (will look for map_logic.json in same directory) |
| TrafficLightManager | The traffic light manager to apply configuration to |
Definition at line 30 of file MapLogicParser.cpp.
References ApplyTrafficLightLogic(), and LoadMapLogicFromJSON().
|
staticprivate |
Parse timing data from JSON object.
| TimingJson | JSON object containing timing information |
Definition at line 218 of file MapLogicParser.cpp.
References FTrafficLightTiming::AmberBlinkInterval, FTrafficLightTiming::AmberDuration, FTrafficLightTiming::GreenDuration, and FTrafficLightTiming::RedDuration.
Referenced by ParseTrafficLightFromJSON().
|
staticprivate |
Parse individual traffic light data from JSON object.
| TrafficLightJson | JSON object representing a single traffic light configuration |
Definition at line 138 of file MapLogicParser.cpp.
References FTrafficLightLogicData::ActorName, FTrafficLightHead::ComponentPrefix, FTrafficLightLogicData::Heads, FTrafficLightLogicData::JunctionID, FTrafficLightModule::LaneIds, FTrafficLightHead::LaneIds, FTrafficLightLogicData::Modules, ParseTimingFromJSON(), FTrafficLightHead::SignalID, FTrafficLightLogicData::SignalID, FTrafficLightLogicData::Timing, and FTrafficLightLogicData::TrafficLightGroupID.
Referenced by LoadMapLogicFromJSON().