Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
cool_serial_uart.hpp
Go to the documentation of this file.
1#pragma once
2
3
4#include "cool_serial/byte_queue.hpp"
5#include "cool_serial/continuous_parser.hpp"
6#include "cool_serial/idata_handler.hpp"
7
9#include "tap/drivers.hpp"
10
11#include <functional>
12#include <unordered_map>
13
14namespace fang::communication
15{
24 {
25 public:
26 using DataHandlerRef = std::reference_wrapper<coolSerial::IDataHandler>;
27 using HandlerMap = std::unordered_map<coolSerial::Byte, DataHandlerRef>;
28
30 CoolSerialUart(tap::Drivers& drivers, const HandlerMap& handlerMap);
31
32 void initialize();
33 void update();
38 void addHandler(coolSerial::Byte dataType, DataHandlerRef handler);
39 private:
40 static const int kBaudRate{115200};
41 void updateByteQueue();
42 void handleMessage();
43 void referMessage(const coolSerial::CoolMessageData& message);
44
45 HandlerMap handlerMap_{};
47 coolSerial::ByteQueue byteQueue_{};
48 coolSerial::ContinuousParser parser_{byteQueue_};
49 };
50}
Definition cool_serial_uart.hpp:24
std::reference_wrapper< coolSerial::IDataHandler > DataHandlerRef
Definition cool_serial_uart.hpp:26
std::unordered_map< coolSerial::Byte, DataHandlerRef > HandlerMap
Definition cool_serial_uart.hpp:27
void update()
Definition cool_serial_uart.cpp:23
void initialize()
Definition cool_serial_uart.cpp:18
void addHandler(coolSerial::Byte dataType, DataHandlerRef handler)
Definition cool_serial_uart.cpp:55
Definition drivers.hpp:70
Definition uart_terminal_device.hpp:46
Definition janky_float.cpp:4
fang::Drivers & drivers
Definition robot_singleton.cpp:45