以下是一个标准的 Markdown 测试文档,可用于测试 Markdown 编辑器的功能支持情况:
Markdown 功能支持测试文档
此文档用于测试 Markdown 编辑器是否完整支持 CommonMark 和 GitHub Flavored Markdown (GFM) 标准。ssfsffsfs
简单服务端示例
源文件(src/simple_service_server.cpp):
src/service_example/src/simple_service_server.cpp
cpp
#include <rclcpp/rclcpp.hpp>
#include <std_srvs/srv/set_bool.hpp>
#include <memory>
class SimpleServiceServer : public rclcpp::Node
{
public:
SimpleServiceServer() : Node("simple_service_server"), robot_enabled_(false)
{
// 创建服务端
service_ = this->create_service<std_srvs::srv::SetBool>(
"robot_control",
std::bind(&SimpleServiceServer::handle_service, this,
std::placeholders::_1, std::placeholders::_2));
RCLCPP_INFO(this->get_logger(), "机器人控制服务已启动");
}
private:
void handle_service(
const std::shared_ptr<std_srvs::srv::SetBool::Request> request,
std::shared_ptr<std_srvs::srv::SetBool::Response> response)
{
// 处理请求
robot_enabled_ = request->data;
// 设置响应
response->success = true;
if (robot_enabled_) {
response->message = "机器人已启用";
RCLCPP_INFO(this->get_logger(), "收到请求:启用机器人");
} else {
response->message = "机器人已禁用";
RCLCPP_INFO(this->get_logger(), "收到请求:禁用机器人");
}
RCLCPP_INFO(this->get_logger(), "服务响应已发送");
}
rclcpp::Service<std_srvs::srv::SetBool>::SharedPtr service_;
bool robot_enabled_;
};
int main(int argc, char * argv[])
{
rclcpp::init(argc, argv);
rclcpp::spin(std::make_shared<SimpleServiceServer>());
rclcpp::shutdown();
return 0;
}
服务通信图示
sequenceDiagram
participant A as 节点A
(机器人控制器) participant B as 节点B
(视觉识别服务) participant C as 节点C
(导航规划器) Note over A,B: 服务接口: FindObject.srv Note over A,B: 请求: string object_name Note over A,B: 响应: bool found,
float64 x, float64 y,
string message A->>B: FindObject请求
object_name="apple" activate B Note right of B: 图像处理中...
识别苹果位置 B-->>A: FindObject响应
found=true, x=1.2, y=0.8 deactivate B C->>B: FindObject请求
object_name="apple" activate B Note right of B: 使用缓存结果
(上次识别数据) B-->>C: FindObject响应
found=true, x=1.2, y=0.8 deactivate B
(机器人控制器) participant B as 节点B
(视觉识别服务) participant C as 节点C
(导航规划器) Note over A,B: 服务接口: FindObject.srv Note over A,B: 请求: string object_name Note over A,B: 响应: bool found,
float64 x, float64 y,
string message A->>B: FindObject请求
object_name="apple" activate B Note right of B: 图像处理中...
识别苹果位置 B-->>A: FindObject响应
found=true, x=1.2, y=0.8 deactivate B C->>B: FindObject请求
object_name="apple" activate B Note right of B: 使用缓存结果
(上次识别数据) B-->>C: FindObject响应
found=true, x=1.2, y=0.8 deactivate B
graph TD
subgraph "ROS2 服务通信架构"
A["节点A
(机器人控制器)"] B["节点B
(视觉识别服务)"] C["节点C
(导航规划器)"] A -->|"请求: apple"| B B -->|"响应: found=true
x=1.2, y=0.8"| A C -->|"请求: apple"| B B -->|"响应: found=true
x=1.2, y=0.8"| C end
(机器人控制器)"] B["节点B
(视觉识别服务)"] C["节点C
(导航规划器)"] A -->|"请求: apple"| B B -->|"响应: found=true
x=1.2, y=0.8"| A C -->|"请求: apple"| B B -->|"响应: found=true
x=1.2, y=0.8"| C end
1. 标题测试
H1
H2
H3
H4
H5
H6
2. 文本样式测试
- 粗体文本
- 斜体文本
删除线文本行内代码
- 粗斜体组合
- 上标: 2^10^
- 下标: H
2O
3. 列表测试
无序列表
- 项目一
- 项目二
- 嵌套项目一
- 嵌套项目二
- 三级嵌套
有序列表
- 第一项
- 第二项
- 嵌套第一项
- 嵌套第二项
- 第三项
任务列表
- 已完成任务
- 未完成任务
- 嵌套未完成任务
4. 链接和图片测试
5. 代码块测试
python
def hello_world():
print("Hello, World!")
javascript
console.log("JavaScript 代码块");
6. 表格测试
左对齐 | 居中对齐 | 右对齐 |
---|---|---|
数据1 | 数据2 | 数据3 |
数据4 | 数据5 | 数据6 |
7. 引用测试
一级引用
二级嵌套引用
三级嵌套引用
8. 分隔线测试
9. 内联 HTML 测试
红色文本
|---------|
| HTML 表格 |
10. 特殊功能测试
脚注测试
这是一个脚注示例^1^
表情符号测试
😄 ❤️ 👍
高亮测试
==高亮文本==
自动链接测试
markdown
https://example.com
<https://example.com>
<email@example.com>
### 转义字符测试
\*不是斜体\*
\_不是斜体\_
这个测试文档涵盖了 Markdown 的大部分常用功能,包括:
- 标题
- 文本样式
- 各种列表
- 链接和图片
- 代码块
- 表格
- 引用
- 分隔线
- HTML 支持
- 高级功能(脚注、表情符号、高亮等)
- 转义字符
您可以用此文档测试 Markdown 编辑器的功能完整性。如果所有元素都能正确渲染,则说明该编辑器对 Markdown 的支持较为完整。
Footnotes
- 这里是脚注内容 ↩