libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
server.hpp
1#pragma once
2
3#include "message.hpp"
4
5namespace LibXR
6{
14{
15 public:
21 enum class Status : uint8_t
22 {
26 };
27
37 Server(size_t buffer_length);
38
48 void Register(TopicHandle topic);
49
62 size_t ParseData(ConstRawData data);
63
82 size_t ParseDataFromCallback(ConstRawData data, bool in_isr);
83
84 private:
85 enum class ParseResult : uint8_t
86 {
87 NEED_MORE,
88 DROPPED,
89 DELIVERED
90 };
91
92 size_t ParseDataRaw(ConstRawData data, bool from_callback, bool in_isr);
93 bool SyncToPacketStart();
94 bool ReadHeader();
95 ParseResult ReadPayload(bool from_callback, bool in_isr);
96 void ResetParser();
97
100 uint32_t data_len_ = 0;
106};
107} // namespace LibXR
基础队列类,提供固定大小的循环缓冲区 (Base queue class providing a fixed-size circular buffer).
Definition queue.hpp:20
只读原始数据视图 / Immutable raw data view
微秒时间戳 / Microsecond timestamp
红黑树的泛型数据节点,继承自 BaseNode (Generic data node for Red-Black Tree, inheriting from BaseNode).
Definition rbt.hpp:64
红黑树实现,支持泛型键和值,并提供线程安全操作 (Red-Black Tree implementation supporting generic keys and values with thread...
Definition rbt.hpp:24
可写原始数据视图 / Mutable raw data view
服务器类,负责解析数据并将其分发到相应的主题 Server class responsible for parsing data and distributing it to corresponding...
Definition server.hpp:14
RBTree< uint32_t > topic_map_
主题映射表 Topic mapping table
Definition server.hpp:101
void Register(TopicHandle topic)
注册一个主题 Registers a topic
Definition server.cpp:16
BaseQueue queue_
数据队列 Data queue
Definition server.hpp:102
size_t ParseData(ConstRawData data)
解析接收到的数据 Parses received data
Definition server.cpp:22
size_t ParseDataFromCallback(ConstRawData data, bool in_isr)
在回调函数中解析接收到的数据 Parses received data in a callback
Definition server.cpp:27
TopicHandle current_topic_
当前主题句柄 Current topic handle
Definition server.hpp:104
MicrosecondTimestamp current_timestamp_
当前消息时间戳 Current message timestamp
Definition server.hpp:105
uint32_t data_len_
当前数据长度 Current data length
Definition server.hpp:100
Status
服务器解析状态枚举 Enumeration of server parsing states
Definition server.hpp:22
@ WAIT_DATA_CRC
等待数据校验 Waiting for data CRC validation
@ WAIT_START
等待起始标志 Waiting for start flag
@ WAIT_TOPIC
等待主题信息 Waiting for topic information
RawData parse_buff_
解析数据缓冲区 Data buffer for parsing
Definition server.hpp:103
Server(size_t buffer_length)
构造函数,初始化服务器并分配缓冲区 Constructor to initialize the server and allocate buffer
Definition server.cpp:5
Status status_
服务器的当前解析状态 Current parsing state of the server
Definition server.hpp:98
LibXR 命名空间
Definition ch32_can.hpp:14