当前位置:首页>Linux>如何实现一个,基于Linux多线程机器人交互控制项目?

如何实现一个,基于Linux多线程机器人交互控制项目?

  • 2026-03-28 21:50:26
如何实现一个,基于Linux多线程机器人交互控制项目?

一、项目背景与目标

robot_pc_project 是一个基于 Linux操作系统 开发的机器人控制与状态上报项目。

整体采用 PC 客户端 + 机器人服务端 的架构,围绕“网络通信、状态管理、多线程并发、传感器仿真、避障联动、ARM 移植部署”逐步完成开发。

项目最终目标包括:

  • 实现 PC 端对机器人端的远程控制
  • 实现登录、心跳、移动、停止、状态查询等业务命令
  • 实现机器人状态管理与广播
  • 实现里程计、IMU、激光雷达、视觉识别、避障等传感器仿真
  • 实现障碍物触发后的自动急停联动
  • 实现中文日志输出
  • 实现 Ubuntu 主机编译与 ARM 开发板部署运行
  • 实现开发板时间同步与北京时间日志显示

二、项目最终架构

项目最终形成了两个可执行程序:

1. robot_server

机器人端服务程序,主要负责:

  • 启动 TCP 服务端
  • 接收客户端连接
  • 收取客户端命令
  • 管理机器人状态
  • 启动传感器仿真线程
  • 广播机器人状态
  • 执行避障急停联动

2. pc_client

PC 控制端程序,主要负责:

  • 连接机器人服务端
  • 发送登录、移动、停止、查询等命令
  • 接收服务端状态广播和确认消息
  • 命令行交互
  • 心跳维持连接
  • 优雅退出

三、项目目录结构与模块划分

项目整体结构如下:

robot_pc_project├── include│   ├── common│   │   ├── log.h│   │   ├── msg_queue.h│   │   ├── net.h│   │   └── protocol.h│   ├── pc│   │   └── pc_client.h│   └── robot│       ├── client_manager.h│       ├── robot_dispatcher.h│       ├── robot_server.h│       ├── robot_sensors.h│       └── robot_state.h├── src│   ├── common│   │   ├── log.c│   │   ├── msg_queue.c│   │   ├── net.c│   │   └── protocol.c│   ├── pc│   │   ├── main_pc.c│   │   └── pc_client.c│   └── robot│       ├── client_manager.c│       ├── main_robot.c│       ├── robot_dispatcher.c│       ├── robot_server.c│       ├── robot_sensors.c│       └── robot_state.c└── Makefile

模块职责

common 公共模块

  • log:日志系统
  • net:socket 网络封装
  • protocol:应用层协议封包与解包
  • msg_queue:消息队列/并发同步

robot 机器人端模块

  • robot_state:机器人状态模型
  • client_manager:客户端连接管理
  • robot_dispatcher:命令分发与业务处理
  • robot_server:服务端启动与线程调度
  • robot_sensors:传感器仿真与避障联动
  • main_robot:机器人主程序入口

pc 客户端模块

  • pc_client:连接、命令发送、接收处理、心跳
  • main_pc:命令行交互入口

四、项目开发全过程知识点复盘


4.1 工程迁移与开发环境搭建

1. Windows 到 Ubuntu 传输工程

项目最初开发在 Windows 环境下,后续需要转移到 Ubuntu 编译运行。

用到的知识点

  • scp 远程拷贝
  • SSH 登录 Ubuntu
  • Windows 路径与 Linux 路径差异
  • 中文路径兼容问题

典型问题

使用相对路径或中文目录时,scp 报:

No such file or directory

解决方法

使用绝对路径加引号进行传输:

scp -r "D:\robot_pc_project" root@192.168.1.111:/home/robot_demo/

沉淀

  • Windows 向 Linux 传工程时,优先使用绝对路径
  • 路径中含中文时,尽量避免相对路径
  • 工程迁移阶段优先保证“文件正确到位”,不要一开始就纠结代码问题

4.2 Makefile 编译系统问题与修复

1. Makefile 基础知识

Makefile 是 Linux C 工程的核心构建脚本,负责:

  • 指定编译器
  • 指定编译选项
  • 指定源文件
  • 定义目标和依赖
  • 调用命令完成编译与链接

2. 遇到的经典问题

问题一:遗漏分隔符

报错:

*** 遗漏分隔符 (null)

根因

  • recipe 命令行前面用了空格,不是 Tab
  • 续行反斜杠 \ 后面又跟了注释

典型错误写法

COMMON_SRCS = \   # 注释
    $(CC) ...

3. 正确经验

  • recipe 前必须是 真实 Tab
  • \ 后面不要跟注释
  • Makefile 对格式极其敏感

4. CRLF 换行问题

从 Windows 传到 Ubuntu 后,Makefile 可能带有 Windows 换行符,影响解析。

沉淀

  • Makefile 最常见的问题不是逻辑错,而是格式错
  • 嵌入式/ Linux 项目里,构建系统是第一道门槛

4.3 C 语言工程化开发知识

1. 头文件与源文件必须严格一致

项目中多次出现以下问题:

  • implicit declaration of function
  • conflicting types
  • too few arguments
  • 结构体成员不存在

根因

  • 头文件声明与源文件实现不一致
  • 调用代码使用了旧接口
  • 结构体字段设计未统一

核心原则

  • .h 是模块对外契约
  • .c 是契约实现
  • 所有调用方必须基于 .h 开发

典型示例

例如日志函数、协议结构体、机器人状态接口等,必须统一命名和参数。

沉淀

  • 一个 C 工程能否稳定扩展,关键在接口统一
  • “先定义接口,再写实现”比“边写边改”更重要

4.4 Linux Socket 网络编程知识

1. TCP 服务端开发流程

服务端实现了:

socket()setsockopt()bind()listen()accept()recv()/send()close()

2. TCP 客户端开发流程

客户端实现了:

socket()connect()send()/recv()close()

3. 用到的核心知识点

  • sockaddr_in
  • htons / ntohs
  • htonl / ntohl
  • inet_addr / inet_ntop
  • SO_REUSEADDR
  • 阻塞式 accept

4. 网络错误处理

客户端后续优化为:

  • 连接失败打印中文错误
  • 服务端未启动时给出明确提示
  • 对端关闭时检测并退出

沉淀

  • Linux 网络编程的本质是“文件描述符 + 协议 + 阻塞/非阻塞”
  • 真正实用的程序必须重视异常处理

4.5 应用层协议设计知识

TCP 是字节流,不保证消息边界,因此需要自己设计协议。

1. 协议头设计

项目设计了:

  • 魔数 magic
  • 命令字 cmd
  • 客户端 ID client_id
  • 序号 seq
  • 负载长度 len

2. 协议结构

  • proto_header_t
  • proto_msg_t

3. 协议功能

  • proto_pack():封包
  • tcp_recv_all():按固定长度收满
  • tcp_send_all():按固定长度发满
  • tcp_recv_msg():先收头再收体
  • tcp_send_msg():打包后整包发送

4. 学到的本质

  • TCP 不懂“消息”,应用程序必须自己定义“消息”
  • 协议层是业务层和网络层之间的重要桥梁

4.6 多线程并发编程知识

项目最后是一个典型多线程系统。

1. 服务端线程模型

  • 主线程:系统启动与退出
  • accept_thread:接收新连接
  • client_recv_thread:每客户端接收线程
  • heartbeat_check_thread:心跳检测线程
  • dispatcher_thread:业务消息分发线程
  • sensor_thread:传感器仿真线程

2. 客户端线程模型

  • 主线程:命令行交互
  • 接收线程:收消息
  • 心跳线程:定时发心跳

3. 用到的线程知识点

  • pthread_create
  • pthread_join
  • pthread_detach
  • 共享数据同步
  • 退出标志位
  • 优雅退出

4. 共享数据保护

使用了 pthread_mutex_t 保护:

  • 机器人状态
  • 客户端管理器
  • 分发队列

5. 条件变量

在消息队列/分发队列中使用了:

  • pthread_cond_wait
  • pthread_cond_signal
  • pthread_cond_broadcast

实现生产者-消费者模型。

沉淀

  • 多线程程序的关键不是“线程越多越好”,而是职责划分清晰
  • 并发系统必须考虑同步、退出、资源释放

4.7 机器人状态管理与状态机设计

1. robot_state_t 的作用

机器人状态不再只是一个“速度值”,而是完整的状态模型,包含:

  • 电量
  • 速度
  • 方向
  • 是否运行
  • 温度
  • 模式
  • 互斥锁

2. 命令驱动状态变化

移动命令

会联动更新:

  • 速度
  • 方向
  • 运行状态
  • 模式
  • 温度
  • 电量

停止命令

会联动更新:

  • 速度归零
  • 运行状态置 0
  • 模式设为停止
  • 温度回落

3. 状态广播

状态变化后,服务端可以主动广播给客户端。

沉淀

  • 业务系统要先建“状态模型”,再建“行为逻辑”
  • 命令只是触发器,状态才是系统核心

4.8 客户端登录、心跳与权限控制

1. 登录机制

项目实现了:

  • 未登录禁止移动/停止/查询
  • 登录成功后才允许控制
  • 重复登录时提示“无需重复登录”

2. 心跳机制

客户端定期发送心跳,服务端收到后更新活跃状态。

3. 连接断开清理

客户端断开时,服务端会:

  • 关闭连接
  • 移除客户端
  • 清理登录状态
  • 广播最新状态

沉淀

  • 网络连接不等于业务登录
  • 长连接系统必须有心跳
  • 断开连接后要做清理,否则状态会脏

4.9 命令分发与解耦设计

1. 为什么要分发线程

如果收包线程直接做业务处理,会导致:

  • 收包逻辑和业务逻辑耦合
  • 不利于扩展
  • 不利于排查问题

2. 最终方案

  • 接收线程只负责收包
  • 收到包后压入 dispatcher 队列
  • 分发线程统一取消息并处理业务

3. 价值

  • 解耦网络收发与业务处理
  • 更接近真实工业系统结构
  • 后续扩展命令更方便

沉淀

  • 软件架构设计不只是“能跑”,还要可维护、可扩展

4.10 传感器仿真设计知识

这是项目后期最重要的亮点之一。

1. 传感器仿真模块包含

  • 里程计
  • IMU
  • 激光雷达
  • 视觉识别
  • 避障状态

2. 里程计仿真

通过速度、方向、时间步长计算:

  • x
  • y
  • yaw_deg
  • total_distance

涉及知识点:

  • 位移积分
  • 方向角归一化
  • sin/cos
  • 累计里程

3. IMU 仿真

根据速度变化和转向行为估算:

  • 纵向加速度 ax
  • 横向加速度 ay
  • 角速度 gz

4. 激光雷达仿真

根据当前运动状态动态调整前方障碍距离:

  • 前进时距离减小
  • 后退时距离增大
  • 转向时中等波动
  • 静止时小范围摆动

5. 视觉识别仿真

识别结果在以下内容中轮换:

  • 未识别到目标
  • 行人
  • 箱子
  • 路标
  • 台阶边缘

6. 避障状态分级

  • 避障正常
  • 障碍靠近,请减速
  • 触发避障,建议立即停止
  • 已触发急停

沉淀

  • 传感器仿真不能只是随机数,要与机器人运动状态联动
  • 仿真“像真的”比“数值复杂”更重要

4.11 自动避障联动设计

1. 从“打印状态”到“控制联动”

项目最初只是打印激光雷达与避障提示,后续升级为真正控制:

  • 障碍距离低于阈值
  • 自动急停
  • 修改机器人状态
  • 广播最新状态给客户端

2. 急停联动逻辑

满足条件时:

  • 速度置 0
  • 运行状态置停止
  • 模式改成 避障急停
  • 设置 emergency_stop_active

3. 防止重复触发

使用 emergency_stop_active 标记,避免每个周期重复触发急停。

4. 客户端状态同步

后续在急停逻辑中补上:

robot_dispatcher_broadcast_status();

从而实现:

  • 服务端急停
  • 客户端立刻看到“避障急停”状态

沉淀

  • 传感器系统真正的价值是驱动决策
  • 状态变化后必须及时同步到客户端,否则会出现视图不一致

4.12 客户端交互体验优化

1. 中文/英文双命令支持

最终支持:

  • 登录 / login
  • 移动 / move
  • 停止 / stop
  • 查询 / query
  • 编号 / id
  • 帮助 / help
  • 退出 / quit

2. 参数合法性检查

  • 方向值必须在 1~4
  • 重复登录要拦截
  • 未登录不能控制
  • 未知命令给出提示
  • 帮助信息清晰展示

3. 优雅退出

客户端支持 Ctrl+C 安全退出:

  • 打印退出提示
  • 停止接收线程
  • 停止心跳线程
  • 回收资源

沉淀

  • 命令行工具同样需要良好的用户体验
  • 可用性和容错性是项目成熟度的重要体现

4.13 日志系统设计与中文化

1. 自定义日志模块

日志模块实现了:

  • 时间戳
  • 级别
  • 可变参数打印
  • 统一前缀格式

涉及知识点:

  • time
  • localtime
  • snprintf
  • va_list
  • vprintf

2. 中文日志输出

项目后期将核心日志从英文改为中文,例如:

  • 新客户端接入
  • 收到心跳
  • 收到移动命令
  • 广播机器人状态
  • 连接服务器失败

3. 多线程日志交错问题

由于多个线程同时 printf,曾出现日志重叠现象。

沉淀

  • 日志系统不仅是调试工具,也是系统行为的可观测性基础
  • 多线程日志如需进一步优化,应考虑在日志模块中加全局锁

4.14 ARM 交叉编译与开发板部署

1. 为什么不能直接把 Ubuntu 程序拷到 ARM 板

Ubuntu 主机编译出的程序默认是 x86_64 架构,而开发板是 ARM 架构,因此必须交叉编译。

2. 交叉编译器

项目使用:

arm-linux-gnueabihf-gcc

完成 ARM 32 位交叉编译。

3. Makefile 双模式

Makefile 最终支持:

  • make:Ubuntu 本机编译
  • make arm:ARM 交叉编译

4. 用 file 验证目标架构

通过:

file robot_serverfile pc_client

确认输出为 ARM ELF 文件。

5. 板端运行时报 not found

虽然程序文件存在,但执行时报:

./robot_server: not found

根因

ARM 交叉编译的动态链接程序依赖:

/lib/ld-linux-armhf.so.3

而开发板使用的是 musl 体系,只有:

ld-musl-armhf.so.1

6. 静态链接解决库不匹配问题

将:

LDFLAGS = -lm

改为:

LDFLAGS = -lm -static

重新编译后,程序不再依赖开发板上的动态加载器,最终成功运行。

7. ADB 推送部署

使用:

adb push robot_server pc_client /root/

将程序推送到开发板运行。

沉淀

  • “not found” 不一定是文件不存在,也可能是加载器找不到

  • 嵌入式板卡部署时,要关注:

    • CPU 架构
    • libc 类型
    • 动态加载器
    • 静态/动态链接策略

4.15 开发板时间同步与北京时间设置

1. 问题

开发板日志时间最初显示为:

1970-01-01 ...

说明系统时间未同步。

2. 北京时间设置

最终通过:

echo"CST-8" > /etc/TZexport TZ=CST-8

使系统切换到北京时间。

3. 联网 NTP 校时

开发板存在 ntpd,最终通过:

ntpd -n -q -p ntp.aliyun.com

完成时间同步。

4. 最终结果

日志时间成功显示为北京时间。

沉淀

  • 嵌入式系统时区配置方式可能不同于 PC Linux

  • 北京时间日志依赖:

    • 时区正确
    • 系统时间正确
    • 必要时写入 RTC

五、项目开发中形成的方法论闭环

整个项目的开发过程,本质上形成了一个完整的方法论闭环:

1. 先打通环境

  • 传文件
  • SSH
  • Makefile
  • Ubuntu 编译环境

2. 再打通构建

  • 修 Makefile
  • 修头文件/源文件接口
  • 保证本机能编译通过

3. 再打通运行

  • 服务端启动
  • 客户端连接
  • 命令交互

4. 再打通业务

  • 登录
  • 心跳
  • 移动
  • 停止
  • 状态查询
  • 广播

5. 再打通仿真

  • 里程计
  • IMU
  • 激光雷达
  • 视觉
  • 避障

6. 再打通联动

  • 障碍物检测
  • 自动急停
  • 状态同步到客户端

7. 再打通部署

  • ARM 交叉编译
  • 静态链接
  • ADB 推送
  • 板端运行

8. 再打通系统保障

  • 中文日志
  • 时间同步
  • 北京时间显示
  • 优雅退出

六、项目中沉淀出来的核心能力

通过本项目,最终沉淀出了以下综合能力:

1. Linux C 工程能力

  • Makefile 构建
  • 模块化开发
  • 头文件/源文件组织
  • 日志系统实现

2. Linux 网络编程能力

  • TCP 服务端/客户端
  • 自定义协议
  • 粘包拆包处理
  • 连接异常处理

3. 并发编程能力

  • 多线程设计
  • 互斥锁
  • 条件变量
  • 优雅退出

4. 业务架构能力

  • 登录态管理
  • 心跳机制
  • 状态机设计
  • 命令分发

5. 机器人仿真能力

  • 里程计建模
  • IMU建模
  • 雷达距离逻辑
  • 视觉识别仿真
  • 避障联动控制

6. 嵌入式移植能力

  • ARM 交叉编译
  • 动态库/静态链接分析
  • 板端部署
  • 运行时环境排查

7. 系统运行保障能力

  • 中文日志可观测性
  • 开发板时间同步
  • 时区配置
  • 板端调试

七、项目最终复盘结论

robot_pc_project 项目最终完成了从“基础 socket 通信练习”到“机器人仿真控制系统”的完整升级,形成了一个覆盖:

  • Linux 开发环境
  • C 工程化
  • 网络通信
  • 并发系统
  • 应用层协议
  • 状态管理
  • 机器人传感器仿真
  • 自动避障联动
  • ARM 交叉编译
  • 板端部署运行
  • 时间同步与日志优化

完整知识闭环。

这个项目最重要的意义不只是“写出了两个程序”,而是经历了一个完整的工程实践过程:

从 Windows 传工程、Ubuntu 编译、修 Makefile、修接口、打通网络、打通业务、加入仿真、实现联动、适配中文日志、再到 ARM 开发板静态部署与时间同步,最终真正把一个项目“做活、做通、做上板”。


八、项目一句话总复盘

robot_pc_project 的开发过程,本质上是一次完整的 Linux C 网络控制系统 + 机器人状态仿真 + ARM 嵌入式部署 的工程闭环实践。


九、项目运行效果

客户端

root@Linux:~/robot_pc_project$ ./pc_client[2026-03-28 21:10:55][INFO] PC客户端初始化完成,服务器IP=127.0.0.1,端口=9000[2026-03-28 21:10:55][INFO] 已连接到服务端:IP=127.0.0.1,端口=9000[2026-03-28 21:10:55][INFO] PC客户端启动成功可用命令:  登录 / login                 -> 登录机器人服务端  移动 <方向> <速度> / move <方向> <速度> -> 发送移动命令  停止 / stop                  -> 发送停止命令  查询 / query                 -> 查询机器人状态  编号 / id                    -> 查看当前客户端ID  帮助 / help                  -> 显示帮助信息  退出 / quit                  -> 退出客户端方向说明:1=前进,2=后退,3=左转,4=右转客户端> [状态信息] 电量=100%;速度=0.00;方向=无;运行状态=已停止;温度=25.0℃;模式=待机login[登录响应] 客户端ID=4,内容=登录成功,客户端ID=4客户端> move 3 100客户端> [确认消息] 客户端ID=4,内容=移动成功[状态信息] 电量=94%;速度=100.00;方向=左转;运行状态=运行中;温度=27.0℃;模式=移动^C收到退出信号,正在安全退出客户端...[2026-03-28 21:11:27][INFO] PC客户端接收线程退出[2026-03-28 21:11:28][INFO] PC客户端心跳线程退出[2026-03-28 21:11:28][INFO] PC客户端已停止[2026-03-28 21:11:28][INFO] PC客户端进程退出

服务端

root@Linux:~/robot_pc_project$ ./robot_server[2026-03-28 21:10:50][INFO] 机器人分发器初始化成功[2026-03-28 21:10:50][INFO] 机器人传感器仿真模块初始化成功[2026-03-28 21:10:50][INFO] 机器人服务端初始化完成,IP=0.0.0.0,端口=9000[2026-03-28 21:10:50][INFO] 服务端开始监听:IP=0.0.0.0,端口=9000[2026-03-28 21:10:50][INFO] 机器人分发器启动成功[2026-03-28 21:10:50][INFO] 机器人服务端启动成功[2026-03-28 21:10:50][INFO] 机器人传感器仿真线程启动成功[2026-03-28 21:10:50][INFO] 机器人主循环开始运行[2026-03-28 21:10:50][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:10:50][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:10:50][INFO] 【激光雷达】前方最近障碍距离=1.56 m,方向=无[2026-03-28 21:10:50][INFO] 【视觉识别】未识别到目标[2026-03-28 21:10:50][INFO] 【避障状态】避障正常[2026-03-28 21:10:52][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:10:52][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:10:52][INFO] 【激光雷达】前方最近障碍距离=1.56 m,方向=无[2026-03-28 21:10:52][INFO] 【视觉识别】未识别到目标[2026-03-28 21:10:52][INFO] 【避障状态】避障正常[2026-03-28 21:10:54][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:10:54][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:10:54][INFO] 【激光雷达】前方最近障碍距离=1.60 m,方向=无[2026-03-28 21:10:54][INFO] 【视觉识别】识别到行人[2026-03-28 21:10:54][INFO] 【避障状态】避障正常[2026-03-28 21:10:55][INFO] 新客户端接入:连接fd=4,客户端ID=4[2026-03-28 21:10:55][INFO] 客户端接收线程启动:连接fd=4,客户端ID=4[2026-03-28 21:10:55][INFO] 广播机器人状态:电量=100%;速度=0.00;方向=无;运行状态=已停止;温度=25.0℃;模式=待机[2026-03-28 21:10:56][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:10:56][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:10:56][INFO] 【激光雷达】前方最近障碍距离=1.68 m,方向=无[2026-03-28 21:10:56][INFO] 【视觉识别】识别到行人[2026-03-28 21:10:56][INFO] 【避障状态】避障正常[2026-03-28 21:10:58][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:10:58][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:10:58][INFO] 【激光雷达】前方最近障碍距离=1.80 m,方向=无[2026-03-28 21:10:58][INFO] 【视觉识别】识别到行人[2026-03-28 21:10:58][INFO] 【避障状态】避障正常[2026-03-28 21:11:00][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:11:00][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:11:00][INFO] 【激光雷达】前方最近障碍距离=1.72 m,方向=无[2026-03-28 21:11:00][INFO] 【视觉识别】识别到箱子[2026-03-28 21:11:00][INFO] 【避障状态】避障正常[2026-03-28 21:11:02][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:11:02][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:11:02][INFO] 【激光雷达】前方最近障碍距离=1.68 m,方向=无[2026-03-28 21:11:02][INFO] 【视觉识别】识别到箱子[2026-03-28 21:11:02][INFO] 【避障状态】避障正常[2026-03-28 21:11:02][INFO] 处理登录请求:连接fd=4,客户端ID=4[2026-03-28 21:11:04][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:11:04][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:11:04][INFO] 【激光雷达】前方最近障碍距离=1.68 m,方向=无[2026-03-28 21:11:04][INFO] 【视觉识别】识别到箱子[2026-03-28 21:11:04][INFO] 【避障状态】避障正常[2026-03-28 21:11:04][INFO] 收到心跳:客户端ID=4[2026-03-28 21:11:06][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:11:10][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:11:10][INFO] 【激光雷达】前方最近障碍距离=1.92 m,方向=无[2026-03-28 21:11:10][INFO] 【视觉识别】识别到路标[2026-03-28 21:11:10][INFO] 【避障状态】避障正常[2026-03-28 21:11:10][INFO] 收到心跳:客户端ID=4[2026-03-28 21:11:12][INFO] 【里程计】X=0.00 m,Y=0.00 m,航向=0.0°,累计里程=0.00 m[2026-03-28 21:11:12][INFO] 【IMU】加速度(ax=0.00, ay=0.00) m/s²,角速度(gz=0.00) °/s[2026-03-28 21:11:12][INFO] 【激光雷达】前方最近障碍距离=1.84 m,方向=无[2026-03-28 21:11:12][INFO] 【视觉识别】识别到台阶边缘[2026-03-28 21:11:12][INFO] 【避障状态】避障正常[2026-03-28 21:11:12][INFO] 收到移动命令:客户端ID=4,方向=3,速度=100.00,模式=移动[2026-03-28 21:11:12][INFO] 广播机器人状态:电量=94%;速度=100.00;方向=左转;运行状态=运行中;温度=27.0℃;模式=移动[2026-03-28 21:11:13][INFO] 收到心跳:客户端ID=4[2026-03-28 21:11:14][INFO] 【里程计】X=0.67 m,Y=0.17 m,航向=14.0°,累计里程=0.69 m^C[2026-03-28 21:11:36][INFO] 机器人传感器仿真线程退出[2026-03-28 21:11:36][INFO] 机器人传感器仿真模块已停止[2026-03-28 21:11:36][INFO] accept 线程退出[2026-03-28 21:11:36][INFO] 分发线程退出[2026-03-28 21:11:36][INFO] 机器人分发器已停止[2026-03-28 21:11:36][INFO] 机器人服务端已停止[2026-03-28 21:11:36][INFO] 机器人进程退出
需要源码的,评论区扣1,太多了,已打包~

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-29 01:32:35 HTTP/2.0 GET : https://f.mffb.com.cn/a/483696.html
  2. 运行时间 : 0.208924s [ 吞吐率:4.79req/s ] 内存消耗:4,590.42kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=cad719a39a34071872889ea53a862937
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000912s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001480s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000749s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000785s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001716s ]
  6. SELECT * FROM `set` [ RunTime:0.000853s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001814s ]
  8. SELECT * FROM `article` WHERE `id` = 483696 LIMIT 1 [ RunTime:0.001547s ]
  9. UPDATE `article` SET `lasttime` = 1774719155 WHERE `id` = 483696 [ RunTime:0.001863s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000782s ]
  11. SELECT * FROM `article` WHERE `id` < 483696 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001288s ]
  12. SELECT * FROM `article` WHERE `id` > 483696 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001343s ]
  13. SELECT * FROM `article` WHERE `id` < 483696 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003528s ]
  14. SELECT * FROM `article` WHERE `id` < 483696 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002757s ]
  15. SELECT * FROM `article` WHERE `id` < 483696 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002245s ]
0.212792s