从本地到云端:Halo 博客部署全流程实录
本文介绍了如何将Halo博客从本地部署迁移到云服务器,并实现公网访问。首先,使用Docker Compose在本地一键部署Halo,并通过Cloudflare Tunnel将其暴露到公网。接着,备份本地Halo数据,购买VPS并安装1Panel面板。在1Panel上安装OpenResty、MySQL和Halo,配置反向代理和HTTPS。最后,恢复备份数据,完成迁移。文章还提供了主题管理、插件系统、博主信息配置、页面菜单管理以及自动备份升级等博客配置与美化建议。
Code
未读
C++类和对象-初始化和清理
C++中,构造函数在对象创建时初始化数据成员或申请资源,析构函数在对象销毁前释放资源。构造函数无返回值,函数名与类名相同,可重载;析构函数无返回值,函数名与类名相同前加~,不可重载。构造函数分为无参、有参和拷贝构造函数,调用方式包括括号法、显示法和隐式转换法。拷贝构造函数用于复制已有对象数据到新对象,在对象初始化、函数值传递和函数返回局部对象时被调用。编译器自动生成默认构造、拷贝构造和析构函数,但定义有参构造或拷贝构造时不再生成默认构造。深拷贝为指针成员分配新内存并复制内容,避免浅拷贝导致资源共享和重复释放。初始化列表用于初始化成员变量,特别是const成员、引用类型成员和无默认构造的类类型成员,初始化顺序由声明顺序决定。类对象作为成员时,构造顺序先成员后类,析构顺序相反。静态成员属于类本身,所有对象共享同一份数据,必须在类外初始化,可通过对象或类名访问。
车载协议
未读
EDR 事件数据记录器解析
EDR(事件数据记录器)是汽车上记录事故前后车辆数据的系统,通过记录车辆动态、驾驶员操作和安全系统状态,为事故溯源、责任认定和安全系统优化提供依据。与飞机黑匣子不同,EDR通常只记录触发事件前后短时间的数据。法规和主机厂的安全要求推动了EDR技术发展,自动驾驶时代对事故溯源的需求也提升了EDR的记录范围,包括传感器状态、目标感知和控制算法输出等。EDR系统通过“采集—触发—存储”工作,从车辆总线和传感器获取数据,在满足触发条件时将数据从环形缓存转存至非易失性存储器中。工程设计需平衡采样精度、存储寿命、系统接口和数据安全性。读取数据需专用工具,用于事故还原分析。尽管EDR具有客观性强等优势,但也存在覆盖数据有限等局限性。
感知
未读
毫米波雷达
自动驾驶感知系统主要依赖摄像头、激光雷达和毫米波雷达。毫米波雷达虽不擅长识别目标类型,但在动态目标检测和复杂环境下具有优势。多传感器融合旨在优势互补,提升环境理解的鲁棒性。毫米波雷达工作在特定频段,通过FMCW技术测量距离、速度和角度。距离测量基于发射和回波信号的频率差,速度测量利用多普勒效应,角度测量则采用MIMO天线阵列。毫米波雷达在全天候性能、速度测量精度和探测距离方面表现出色,但角度分辨率和三维成像受限。在ACC和AEB等纵向控制场景中,雷达至关重要。雷达与摄像头或激光雷达融合能进一步提升感知能力。然而,低反射目标漏检、静止物体识别困难等Bad Case以及上坡下坡、弯道遮挡等Corner Case依然存在,需要通过技术手段不断优化。
Car
未读
ADAS 前融合与后融合
自动驾驶感知系统中,多传感器融合是核心。行业内主要分为前融合与后融合两种架构。后融合指各传感器独立完成目标检测后,在上层模块进行结果级别融合,具有模块解耦性强、易于集成等优点,但也存在信息损失严重、匹配误差敏感等缺点,适用于早期验证、低算力平台等场景。前融合则在感知网络早期或中间阶段联合处理多传感器数据,分为数据层融合和特征层融合,优点是信息互补充分、网络可学习性强,缺点是开发复杂度高、算力需求大。前融合与后融合在输入输出、算法架构、模块关系、算力标定等方面存在差异。ADAS应用层的融合策略选择应与场景、平台匹配,并考虑算法精度、开发周期等因素。未来融合将朝着数据驱动、全链路融合、协同融合等方向发展。
Code
未读
C++类和对象-封装
C++面向对象编程的核心是封装,它将数据(属性)和操作数据的函数(行为)组合成类,实现数据安全和模块化。封装通过public、protected和private三种访问权限控制类内、类外及继承中的访问。class和struct的区别在于默认访问权限不同,前者为private,后者为public。将成员属性设为私有可以控制读取/写入行为,并在写入时检查有效性。封装是C++继承和多态的基础,有助于编写健壮、可扩展的代码。
Car
未读
整车控制器VCU
新能源汽车整车控制器VCU是核心电控单元,负责整车运行逻辑控制、协调各控制系统、提高能源利用率、提升驾驶舒适性、记录故障并保障安全。VCU硬件包括电路板、接插件和外壳,软件存储于车规级单片机中。VCU开发采用V型模式,需满足ISO 26262功能安全标准,该标准根据风险程度划分安全等级,最高为D级。硬件设计需采集各类信号,控制负载部件,并支持CAN、LIN通信。软件设计包括基础软件和应用软件,基础软件实现驱动开发、系统服务、存储和通信;应用软件负责整车控制、能量管理、热管理、远程控制和故障诊断。开发过程涉及MIL、HIL测试及实车测试,最后进行DV/PV测试和标定,确保VCU性能和可靠性。二次开发是常见的开发方式。