233 {
234 auto new_config = config;
235 if (new_config.prefix_angle() > 35900 || new_config.prefix_angle() < 100) {
236 AWARN <<
"invalid prefix angle, prefix_angle must be between 100 and 35900";
237 if (new_config.prefix_angle() > 35900) {
238 new_config.set_prefix_angle(35900);
239 } else if (new_config.prefix_angle() < 100) {
240 new_config.set_prefix_angle(100);
241 }
242 }
243 VelodyneDriver* driver = nullptr;
244 switch (config.model()) {
246 driver = new Velodyne64Driver(node, config);
248 break;
249 }
251 driver = new Velodyne64Driver(node, config);
253 break;
254 }
256 driver = new Velodyne64Driver(node, config);
258 break;
259 }
261 driver = new VelodyneDriver(node, config);
263 break;
264 }
266 driver = new VelodyneDriver(node, config);
268 break;
269 }
271 driver = new VelodyneDriver(node, config);
273 break;
274 }
276 driver = new VelodyneDriver(node, config);
278 break;
279 }
280 default:
281 AERROR <<
"invalid model, must be 64E_S2|64E_S3S"
282 << "|64E_S3D|VLP16|HDL32E|VLS128";
283 break;
284 }
285 return driver;
286}
constexpr double PACKET_RATE_HDL64E_S2
constexpr double PACKET_RATE_HDL64E_S3D
constexpr double PACKET_RATE_VLP16
constexpr double PACKET_RATE_HDL32E
constexpr double PACKET_RATE_HDL64E_S3S
constexpr double PACKET_RATE_VLP32C
constexpr double PACKET_RATE_VLS128