CARLA
Loading...
Searching...
No Matches
JsonFileManagerLibrary.h
Go to the documentation of this file.
1// Copyright (c) 2026 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8
9#include "Sensor/Radar.h"
10
11#include <util/ue-header-guard-begin.h>
12#include "CoreMinimal.h"
13#include "Kismet/BlueprintFunctionLibrary.h"
14#include <util/ue-header-guard-end.h>
15
16#include "JsonFileManagerLibrary.generated.h"
17
18class FJsonValue;
19class FJsonObject;
20
21UCLASS()
23{
24 GENERATED_BODY()
25
26 using FRadarData = carla::sensor::data::RadarData;
27
28public:
29 static bool ReadStringFromFile(const FString& FilePath, FString& DataRead);
30
31 static bool WriteStringFromFile(const FString& FilePath, const FString& DataToWrite);
32
33 static bool ReadJson(const FString& JsonFilePath, TSharedPtr<FJsonObject>& JsonObject);
34
35 static bool WriteJson(const FString& JsonFilePath, const TSharedPtr<FJsonObject> JsonObject);
36
37 static void RoundVectorToTwoDecimals(FVector& InOutVector);
38
39 static FVector JsonObjectToVector(const TSharedPtr<FJsonObject>& JsonObject);
40
41 static TSharedPtr<FJsonObject> VectorToJsonObject(const FVector& Vector);
42
43 static bool SaveIMUDataToJson(const FString& JsonFilePath, const FVector& Accelerometer, const FVector& Gyroscope, float Compass, const FString& FrameNumber);
44
45 static bool SaveGnssDataToJson(const FString& JsonFilePath, double Altitude, double Latitude, double Longitude, const FString& FrameNumber);
46
47 // ToDo: Modify the parameter and add a reference to an FVector of a struct that contains the Velocity, Azimuth, Altitude and Depth.
48 static bool SaveRadarDataToJson(const FString& JsonFilePath, const FRadarData& Rays, const FString& FrameNumber);
49
50 static bool SaveLidarDataToPly(const FString& FilePath, const TArray<float>& PointArray, int ArrayElementSize);
51
52
53protected:
54 static TSharedPtr<FJsonObject> GetSensorJsonData(const FString& JsonFilePath, TArray<TSharedPtr<FJsonValue>>& ArrayValue);
55
56 static bool SaveSensorJsonData(const FString& JsonFilePath, const TSharedPtr<FJsonObject> SensorDataToSave,
57 TSharedPtr<FJsonObject> JsonDataObject, TArray<TSharedPtr<FJsonValue>>& ArrayValue);
58};
This file contains definitions of common data structures used in traffic manager.