- 博客(126)
- 收藏
- 关注
原创 SomeIP报文详解
SomeIP是一种面向服务的车载通信协议,专为ECU间高可靠、低延迟通信设计,应用于ADAS、自动驾驶等场景。它基于RPC和发布/订阅模式,支持方法调用(Request/Response和Fire&Forget)、事件推送和字段访问。协议头包含Message ID(服务和方法标识)、Request ID(客户端和会话标识)、协议版本、接口版本和消息类型(区分请求、响应、事件等)。支持大数据传输的分包处理(TP协议)。通过服务ID、方法ID、客户端ID和会话ID的组合实现精准通信控制。
2025-11-25 17:29:47
647
原创 万字详解C++类的初始化的五种语义
本文介绍了C++中五种关键的特殊成员函数:析构函数、拷贝构造函数、拷贝赋值运算符、移动构造函数和移动赋值运算符。重点分析了析构函数和拷贝构造函数,通过代码示例展示了它们的作用和默认实现的局限性。当涉及动态内存分配时,默认的析构函数无法释放堆资源,默认的拷贝构造函数仅执行浅拷贝,可能导致双重释放等问题。因此,对于管理资源的类,必须显式定义这些特殊成员函数以确保正确的资源管理行为。
2025-09-29 17:26:39
961
原创 OpengGL教程(七)---摄像机
本系列历史文本章主要讲述了MVP矩阵中的V矩阵。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。官网中有上面这样一段话,不要去纠结有无摄像机,就默认为有,对于此章节我们一切矩阵操作的对象都是摄像机。摄像机看一个物体有哪些需要注意点地方呢?1、摄像机的位置:摄像机不同的位置,拍摄的角度不同,则看到的画面就不同。2、摄像机的注视点。
2025-04-11 16:03:03
1116
原创 SomeIP/CommonAPI与Franca IDL使用教程(一)
SOME/IP(Service-Oriented Middleware over IP)是一种基于IP网络的通信协议,旨在支持汽车电子系统和嵌入式系统之间的通信。它属于AUTOSAR(Automotive Open System Architecture)标准的一部分,被设计用于构建汽车电子领域的分布式系统。SOME/IP 使用底层的 Socket(套接字)机制来进行通信。SOME/IP的消息是通过UDP或TCP协议传输的。
2024-01-03 15:55:22
4256
7
原创 C++常用23种设计模式总结(三)------装饰模式
装饰模式是一种结构型设计模式,它允许你在运行时为对象动态添加新的行为。该模式通过将对象放入包装器中来实现这一点,这个包装器会实现与被包装对象相同的接口,并且会将所有方法的调用委派给被包装对象。同时,包装器还可以定义一些额外的行为,例如添加新的方法或修改现有方法的行为。装饰模式的主要优点是它允许你在不修改现有代码的情况下扩展对象的功能。这使得代码更加灵活和可维护,因为你可以通过添加新的装饰器来实现新的功能,而不必修改现有的代码。此外,装饰模式还遵循开闭原则,因为它允许你在不修改现有代码的情况下添加新的功能。
2023-08-31 14:16:41
1101
原创 C++常用23种设计模式总结(二)------观察者模式
观察者模式是一种设计模式,它允许对象之间建立一对多的依赖关系,当一个对象状态发生改变时,它的所有依赖者都会收到通知并自动更新。在C++中,观察者模式可以通过以下步骤实现:创建一个抽象主题类(Subject),该类定义了主题(被观察者)必须实现的方法,包括添加和删除观察者以及通知观察者的方法。创建一个抽象观察者类(Observer),该类定义了观察者必须实现的方法,包括更新方法。创建具体主题类(ConcreteSubject),该类继承了抽象主题类,并实现了具体的方法。
2023-05-11 16:59:08
324
1
原创 C++常用23种设计模式总结(一)------单例模式
单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点来访问该实例。这个模式通常用于控制资源的访问,例如数据库连接、线程池等。单例模式通过限制实例化操作并提供访问方法,确保在整个应用程序中只存在一个实例,避免了多个实例之间的冲突和资源浪费。在单例模式中,类的构造函数被私有化,使得外部无法直接实例化该类。同时,在类的内部创建一个私有静态变量来保存唯一的实例,然后提供一个静态方法来访问该实例。这个静态方法会检查实例是否已经存在,如果存在则返回原有实例,否则创建一个新的实例并返回。
2023-04-28 19:46:38
1350
1
原创 判断两张人脸图片是否是一个人(一)
在这个示例中,首先加载了两张图片,然后对它们进行预处理(包括灰度化、直方图均衡化和缩放),接下来使用Haar级联分类器检测每张图像中的人脸区域。如果检测到的人脸数不是1,则认为不是同一个人。接着创建了一个EigenFaceRecognizer对象,加载了训练好的人脸识别模型,并将预处理后的图像转换为一维向量进行人脸识别。判断两张人脸图片是否是同一个人的任务通常被称为人脸识别(Face Recognition),OpenCV提供了一些现成的工具和方法来解决这个问题。ChatGPT 记录。
2023-04-21 15:22:49
5024
原创 Ubuntu16.04安装使用protobuf2(一)
本人也是protobuf新手,因项目需要才接触到的。开始按照官方教程整了一整天最新版的proto3,死活配置不成功。所以直接使用了proto2。
2022-10-24 16:47:48
1203
原创 Windows下目录跳转方法
Windows下目录跳转不能像Linux一样使用cd命令直接跳转。当前是在C盘下面,但是要注意现在并不是在C盘根目录下面,而是在C盘用户目录下面也就是家目录下面。如果想进入C盘根目录执行如下命令即可cd /查看当前目录下的文件指令:dir...
2021-11-22 21:20:06
1739
原创 Windows下Python-openCV学习(四)-------色彩空间与通道
本章简明色彩空间: GRAY色彩空间:cv2.COLOR_BGR2GRAY HSV色彩空间: cv2.COLOR_BGR2HSV 、cv2.COLOR_HSV2BGR通道: 拆分通道:split()方法 合并通道:merge()方法 综合运用拆分通道和合并通道 alpha通道GRAY色彩空间GRAY色彩空间指的就是灰度图,灰度图只有一个色彩通道。灰度图像每个像素都是从黑到白,被分为256个灰度级别,0表示纯黑,1表示纯白。0~255的数值表示不同亮度(即色彩的
2021-11-05 21:47:10
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅