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