67 const std::shared_ptr<Preprocessor>& preprocessor_status) {
72 if (preprocessor_status->received_pad_msg()) {
73 control_core_command.mutable_pad_msg()->CopyFrom(
74 preprocessor_status->local_view().pad_msg());
76 ADEBUG <<
"MPC controller submodule started ....";
79 StatusPb pre_status = preprocessor_status->header().status();
80 if (pre_status.
error_code() != ErrorCode::OK) {
81 control_core_command.mutable_header()->mutable_status()->CopyFrom(
83 AERROR <<
"Error in preprocessor submodule.";
87 Status status = ProduceControlCoreCommand(preprocessor_status->local_view(),
88 &control_core_command);
89 AERROR_IF(!status.
ok()) <<
"Failed to produce control command:"
92 control_core_command.mutable_header()->set_lidar_timestamp(
93 preprocessor_status->header().lidar_timestamp());
94 control_core_command.mutable_header()->set_camera_timestamp(
95 preprocessor_status->header().camera_timestamp());
96 control_core_command.mutable_header()->set_radar_timestamp(
97 preprocessor_status->header().radar_timestamp());
98 common::util::FillHeader(
Name(), &control_core_command);
103 FLAGS_control_core_command_topic);
107 control_core_command.mutable_header()->mutable_status()->set_error_code(
109 control_core_command.mutable_header()->mutable_status()->set_msg(
112 control_core_writer_->Write(control_core_command);