Apollo  6.0
Open source self driving car software
racobit_radar_message_manager.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2018 The Apollo Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 
21 #pragma once
22 
23 #include <memory>
24 
25 #include "cyber/cyber.h"
26 
30 #include "modules/drivers/proto/racobit_radar.pb.h"
32 
34 
35 namespace apollo {
36 namespace drivers {
37 namespace racobit_radar {
38 
39 using ::apollo::drivers::canbus::MessageManager;
40 using ::apollo::drivers::canbus::ProtocolData;
42 using micros = std::chrono::microseconds;
43 using ::apollo::common::ErrorCode;
47 
48 class RacobitRadarMessageManager : public MessageManager<RacobitRadar> {
49  public:
51  std::shared_ptr<cyber::Writer<RacobitRadar>> writer);
53  void set_radar_conf(RadarConf radar_conf);
54  ProtocolData<RacobitRadar> *GetMutableProtocolDataById(
55  const uint32_t message_id);
56  void Parse(const uint32_t message_id, const uint8_t *data, int32_t length);
57  void set_can_client(std::shared_ptr<CanClient> can_client);
58 
59  private:
60  bool is_configured_ = false;
61  RadarConfig200 radar_config_;
62  std::shared_ptr<CanClient> can_client_;
63  std::shared_ptr<cyber::Writer<RacobitRadar>> writer_;
64 };
65 
66 } // namespace racobit_radar
67 } // namespace drivers
68 } // namespace apollo
::apollo::cyber::Time Time
Definition: racobit_radar_message_manager.h:41
void set_can_client(std::shared_ptr< CanClient > can_client)
Definition: racobit_radar_message_manager.h:48
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
The class which defines the CAN client to send and receive message.
Definition: can_client.h:92
The class of MessageManager.
RacobitRadarMessageManager(std::shared_ptr< cyber::Writer< RacobitRadar >> writer)
ProtocolData< RacobitRadar > * GetMutableProtocolDataById(const uint32_t message_id)
virtual ~RacobitRadarMessageManager()
Definition: racobit_radar_message_manager.h:52
Definition: radar_config_200.h:31
Definition: writer.h:42
Defines SenderMessage class and CanSender class.
void Parse(const uint32_t message_id, const uint8_t *data, int32_t length)
parse data and store parsed info in protocol data
std::chrono::microseconds micros
Definition: racobit_radar_message_manager.h:42
This class defines the message to send.
Definition: can_sender.h:55
Defines the CanClientFactory class.
Cyber has builtin time type Time.
Definition: time.h:31