33 #if (VTD_API_VERSION_EPOCH == 0)
34 #include <RDBHandler.hh>
36 #include <VtdToolkit/RDBHandler.hh>
54 explicit RdbCodec(std::unique_ptr<RdbTransceiver>&& rdb_transceiver)
55 :
rdb_(std::move(rdb_transceiver)) {}
69 virtual const std::string&
get_name()
const = 0;
95 virtual void process(RDB_MSG_ENTRY_HDR_t* entry);
102 virtual void process(RDB_START_OF_FRAME_t* ) {}
104 virtual void process(RDB_END_OF_FRAME_t* ) {}
105 virtual void process(RDB_COORD_SYSTEM_t* ) {}
106 virtual void process(RDB_COORD_t* ) {}
107 virtual void process(RDB_ROAD_POS_t* ) {}
108 virtual void process(RDB_LANE_INFO_t* ) {}
109 virtual void process(RDB_ROADMARK_t* ) {}
110 virtual void process(RDB_OBJECT_CFG_t* ) {}
111 virtual void process(RDB_OBJECT_STATE_t* ,
bool ) {}
112 virtual void process(RDB_VEHICLE_SYSTEMS_t* ) {}
113 virtual void process(RDB_VEHICLE_SETUP_t* ) {}
114 virtual void process(RDB_ENGINE_t* ,
bool ) {}
115 virtual void process(RDB_DRIVETRAIN_t* ,
bool ) {}
116 virtual void process(RDB_WHEEL_t* ,
bool ) {}
117 virtual void process(RDB_PED_ANIMATION_t* ) {}
118 virtual void process(RDB_SENSOR_STATE_t* ) {}
119 virtual void process(RDB_SENSOR_OBJECT_t* ) {}
120 virtual void process(RDB_CAMERA_t* ) {}
121 virtual void process(RDB_CONTACT_POINT_t* ) {}
122 virtual void process(RDB_TRAFFIC_SIGN_t* ) {}
123 virtual void process(RDB_ROAD_STATE_t* ) {}
124 virtual void process(RDB_IMAGE_t* ) {}
125 virtual void process(RDB_LIGHT_SOURCE_t* ,
bool ) {}
126 virtual void process(RDB_ENVIRONMENT_t* ) {}
127 virtual void process(RDB_TRIGGER_t* ) {}
128 virtual void process(RDB_DRIVER_CTRL_t* ) {}
129 virtual void process(RDB_TRAFFIC_LIGHT_t* ,
bool ) {}
130 virtual void process(RDB_SYNC_t* ) {}
131 virtual void process(RDB_DRIVER_PERCEPTION_t* ) {}
132 virtual void process(RDB_FUNCTION_t* ) {}
133 virtual void process(RDB_ROAD_QUERY_t* ) {}
134 virtual void process(RDB_TRAJECTORY_t* ) {}
135 virtual void process(RDB_DYN_2_STEER_t* ) {}
136 virtual void process(RDB_STEER_2_DYN_t* ) {}
137 virtual void process(RDB_PROXY_t* ) {}
138 virtual void process(RDB_MOTION_SYSTEM_t* ) {}
139 virtual void process(RDB_FREESPACE_t* ) {}
140 virtual void process(RDB_DYN_EL_SWITCH_t* ) {}
141 virtual void process(RDB_DYN_EL_DOF_t* ) {}
142 virtual void process(RDB_IG_FRAME_t* ) {}
143 virtual void process(RDB_RT_PERFORMANCE_t* ) {}
144 virtual void process(RDB_CUSTOM_SCORING_t* ) {}
145 virtual void process(RDB_CUSTOM_OBJECT_CTRL_TRACK_t* ) {}
147 friend void to_json(cloe::Json& j,
const RdbCodec& c) {
149 {
"rdb_connection", *c.rdb_},
150 {
"frame_number", c.frame_number_},
157 std::unique_ptr<RdbTransceiver>
rdb_;
166 inline std::string vtd_pkg_id_to_string(uint16_t vtd_pkg_id) {
168 static const std::map<int, const char*> vtd_pkg_id_name_map{
169 {RDB_PKG_ID_START_OF_FRAME,
"RDB_PKG_ID_START_OF_FRAME"},
170 {RDB_PKG_ID_END_OF_FRAME,
"RDB_PKG_ID_END_OF_FRAME"},
171 {RDB_PKG_ID_COORD_SYSTEM,
"RDB_PKG_ID_COORD_SYSTEM"},
172 {RDB_PKG_ID_COORD,
"RDB_PKG_ID_COORD"},
173 {RDB_PKG_ID_ROAD_POS,
"RDB_PKG_ID_ROAD_POS"},
174 {RDB_PKG_ID_LANE_INFO,
"RDB_PKG_ID_LANE_INFO"},
175 {RDB_PKG_ID_ROADMARK,
"RDB_PKG_ID_ROADMARK"},
176 {RDB_PKG_ID_OBJECT_CFG,
"RDB_PKG_ID_OBJECT_CFG"},
177 {RDB_PKG_ID_OBJECT_STATE,
"RDB_PKG_ID_OBJECT_STATE"},
178 {RDB_PKG_ID_VEHICLE_SYSTEMS,
"RDB_PKG_ID_VEHICLE_SYSTEMS"},
179 {RDB_PKG_ID_VEHICLE_SETUP,
"RDB_PKG_ID_VEHICLE_SETUP"},
180 {RDB_PKG_ID_ENGINE,
"RDB_PKG_ID_ENGINE"},
181 {RDB_PKG_ID_DRIVETRAIN,
"RDB_PKG_ID_DRIVETRAIN"},
182 {RDB_PKG_ID_WHEEL,
"RDB_PKG_ID_WHEEL"},
183 {RDB_PKG_ID_PED_ANIMATION,
"RDB_PKG_ID_PED_ANIMATION"},
184 {RDB_PKG_ID_SENSOR_STATE,
"RDB_PKG_ID_SENSOR_STATE"},
185 {RDB_PKG_ID_SENSOR_OBJECT,
"RDB_PKG_ID_SENSOR_OBJECT"},
186 {RDB_PKG_ID_CAMERA,
"RDB_PKG_ID_CAMERA"},
187 {RDB_PKG_ID_CONTACT_POINT,
"RDB_PKG_ID_CONTACT_POINT"},
188 {RDB_PKG_ID_TRAFFIC_SIGN,
"RDB_PKG_ID_TRAFFIC_SIGN"},
189 {RDB_PKG_ID_ROAD_STATE,
"RDB_PKG_ID_ROAD_STATE"},
190 {RDB_PKG_ID_IMAGE,
"RDB_PKG_ID_IMAGE"},
191 {RDB_PKG_ID_LIGHT_SOURCE,
"RDB_PKG_ID_LIGHT_SOURCE"},
192 {RDB_PKG_ID_ENVIRONMENT,
"RDB_PKG_ID_ENVIRONMENT"},
193 {RDB_PKG_ID_TRIGGER,
"RDB_PKG_ID_TRIGGER"},
194 {RDB_PKG_ID_DRIVER_CTRL,
"RDB_PKG_ID_DRIVER_CTRL"},
195 {RDB_PKG_ID_TRAFFIC_LIGHT,
"RDB_PKG_ID_TRAFFIC_LIGHT"},
196 {RDB_PKG_ID_SYNC,
"RDB_PKG_ID_SYNC"},
197 {RDB_PKG_ID_DRIVER_PERCEPTION,
"RDB_PKG_ID_DRIVER_PERCEPTION"},
198 {RDB_PKG_ID_LIGHT_MAP,
"RDB_PKG_ID_LIGHT_MAP"},
199 {RDB_PKG_ID_TONE_MAPPING,
"RDB_PKG_ID_TONE_MAPPING"},
200 {RDB_PKG_ID_ROAD_QUERY,
"RDB_PKG_ID_ROAD_QUERY"},
201 {RDB_PKG_ID_SCP,
"RDB_PKG_ID_SCP"},
202 {RDB_PKG_ID_TRAJECTORY,
"RDB_PKG_ID_TRAJECTORY"},
203 {RDB_PKG_ID_DYN_2_STEER,
"RDB_PKG_ID_DYN_2_STEER"},
204 {RDB_PKG_ID_STEER_2_DYN,
"RDB_PKG_ID_STEER_2_DYN"},
205 {RDB_PKG_ID_PROXY,
"RDB_PKG_ID_PROXY"},
206 {RDB_PKG_ID_MOTION_SYSTEM,
"RDB_PKG_ID_MOTION_SYSTEM"},
207 {RDB_PKG_ID_OCCLUSION_MATRIX,
"RDB_PKG_ID_OCCLUSION_MATRIX"},
208 {RDB_PKG_ID_FREESPACE,
"RDB_PKG_ID_FREESPACE"},
209 {RDB_PKG_ID_DYN_EL_SWITCH,
"RDB_PKG_ID_DYN_EL_SWITCH"},
210 {RDB_PKG_ID_DYN_EL_DOF,
"RDB_PKG_ID_DYN_EL_DOF"},
211 {RDB_PKG_ID_IG_FRAME,
"RDB_PKG_ID_IG_FRAME"},
212 {RDB_PKG_ID_RAY,
"RDB_PKG_ID_RAY"},
213 {RDB_PKG_ID_RT_PERFORMANCE,
"RDB_PKG_ID_RT_PERFORMANCE"},
214 {RDB_PKG_ID_CUSTOM_SCORING,
"RDB_PKG_ID_CUSTOM_SCORING"},
215 {RDB_PKG_ID_CUSTOM_OBJECT_CTRL_TRACK,
"RDB_PKG_ID_CUSTOM_OBJECT_CTRL_TRACK"},
216 {RDB_PKG_ID_CUSTOM_LIGHT_B,
"RDB_PKG_ID_CUSTOM_LIGHT_B"},
217 {RDB_PKG_ID_CUSTOM_LIGHT_A,
"RDB_PKG_ID_CUSTOM_LIGHT_A"},
218 {RDB_PKG_ID_CUSTOM_LIGHT_GROUP_B,
"RDB_PKG_ID_CUSTOM_LIGHT_GROUP_B"},
219 #if RDB_VERSION >= 0x011E
220 {RDB_PKG_ID_CUSTOM_LOOK_AHEAD,
"RDB_PKG_ID_CUSTOM_LOOK_AHEAD"},
222 {RDB_PKG_ID_CUSTOM_AUDI_FORUM,
"RDB_PKG_ID_CUSTOM_AUDI_FORUM"},
223 {RDB_PKG_ID_CUSTOM_OPTIX_START,
"RDB_PKG_ID_CUSTOM_OPTIX_START"},
224 {RDB_PKG_ID_OPTIX_BUFFER,
"RDB_PKG_ID_OPTIX_BUFFER"},
225 {RDB_PKG_ID_CUSTOM_OPTIX_END,
"RDB_PKG_ID_CUSTOM_OPTIX_END"},
226 {RDB_PKG_ID_CUSTOM_USER_A_START,
"RDB_PKG_ID_CUSTOM_USER_A_START"},
227 {RDB_PKG_ID_CUSTOM_USER_A_END,
"RDB_PKG_ID_CUSTOM_USER_A_END"},
228 {RDB_PKG_ID_CUSTOM_USER_B_START,
"RDB_PKG_ID_CUSTOM_USER_B_START"},
229 {RDB_PKG_ID_CUSTOM_USER_B_END,
"RDB_PKG_ID_CUSTOM_USER_B_END"}};
231 return vtd_pkg_id_name_map.at(vtd_pkg_id);
Definition: rdb_codec.hpp:46
virtual void step(uint64_t frame_number, bool &restart, cloe::Duration &sim_time)
Definition: rdb_codec.cpp:290
bool processing_frame_
Indicates whether in between a start of frame and an end of frame message.
Definition: rdb_codec.hpp:163
RdbCodec(std::unique_ptr< RdbTransceiver > &&rdb_transceiver)
Definition: rdb_codec.hpp:54
virtual void process(RDB_START_OF_FRAME_t *)
Definition: rdb_codec.hpp:102
std::unique_ptr< RdbTransceiver > rdb_
Definition: rdb_codec.hpp:157
virtual const std::string & get_name() const =0
virtual void process(RDB_MSG_t *msg, bool &restart, cloe::Duration &sim_time)
Definition: rdb_codec.cpp:249
uint64_t frame_number_
Frame number from last processed RDB message.
Definition: rdb_codec.hpp:160
RdbCodec(RdbTransceiver *rdb_transceiver)
Definition: rdb_codec.hpp:63
virtual uint64_t frame_number() const
Definition: rdb_codec.hpp:74
Definition: rdb_transceiver.hpp:59
std::chrono::nanoseconds Duration
Definition: cloe_fwd.hpp:36