自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android12中JAVA项目中proto文件的编译方式

最近的工作有涉及到将原来Android9平台下的java工程防到Android12中编译,结果发现在Android9中可以编译的工程,没有修改Android.bp,在Android12中编译失败了,原因是java文件中以来项目中的proto文件生成的java类,而这些proto文件没有编译出来。在Android12中对于proto文件的编译,会先将其设置为一个文件组,然后在编译的地方饮用这个文件组。而最重要的改动是增加的。部分的规则,设置了proto头文件饮用的路径等。

2024-04-19 09:38:54 113

原创 RTPS协议概述

RTPS协议主要由四个部分组成:​ 发现模块是定义了RTPS的参与者(Participant)获取其他RTPS的参与者(Participant),端点(Endpoint)的协议,使得每个参与者(Participant)能够了解到整个网络中其他参与者的存在并且相互匹配。​ metatraffic通信使得RTPS的参与者(Participant)可以获取到所有Participant,Reader以及Writer的快照并且让本地Reader和远端Writer以及本地Writer和远端Reader之间通信。​ RT

2024-04-06 05:36:08 675

原创 酷壳网居然要科学访问

结果发现需要科学++上网++才能访问了,尼玛太离谱了。

2024-04-05 08:15:27 66

原创 Ubuntu系统切换多版本JDK

2.通过update-alternatives命令sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java 1000。update-alternatives: 使用 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java 来在手动模式中提供 /usr/bin/java (java)

2024-01-29 10:13:25 552

原创 SOMEIP学习总结

​ 其中,SOMEIP-SD的消息都是通过UDP发送的。

2024-01-14 12:17:23 902

转载 c++ RAII

C++的RAII是C++的发明者提出的一个使用C++面向对象特性管理关键的操作系统资源的编程方式,其核心想法就是通过类封装管理操作系统资源,并且利用了C++类的栈对象出栈的时候会调用析构函数的特性,在析构函数中释放系统资源来避免资源泄漏。

2023-11-30 14:48:32 84

原创 c++静态初始化map容器

前提:使用c++ 11及以上版本。

2023-10-11 21:04:30 210

原创 对日项目工作总结

5.一个公司分为很多机能组,例如media,hal,driver,hardware,framework,app这些,每个功能点的实现都需要一个或者多个机能组的参与,共同实现,式样会将式样书分发给不同的机能组做要件分析,就是分析这些功能点是否我机能组该当,是否主担当,或者是辅助,并且确认责务,就是这个功能点我这个机能组需要做什么,其他的机能组是否需要提供帮助,提供什么帮助,那么都需要在要件分析的文档中写出来,写清楚,并且展开给需要辅助我组实现该功能点的其他机能组让他们知晓。大致就是上面这套流程。

2023-09-29 12:15:23 195

原创 首次使用ninja的体验

首先编写CMakeLists.txt,然后cmake -G Ninja生成build.ninja,最后ninja all对该build文件进行编译,生成二进制成果物。首先总结说自己的理解,就是NINJA是一个和MAKE同一级别的编译工具,在CMAKE/GRADLE等工具之下工作。cmake目前可以生成makefile,也可以生成ninja文件(CMAKE选项中增加了-G Ninja)当然也可以直接编写build.ninja文件然后ninja all来编译工程。ninja:源码安装。

2023-08-14 18:02:46 201

原创 TypeScript初学记录【1】

let obj = { nm : "lcb", // 解构对象。let arr1 = [1, 2, 3] // 展开。let input = [1, 2] // 解构数组。主要涉及到基本类型,变量作用域。

2023-03-13 16:46:35 183

原创 JAVA使用socket outputstream中碰到的问题

JAVA socket的OutputStream 调用write发送int型数据碰到的问题

2023-02-24 17:31:30 782

原创 TCP网络编程整理总结

1.每一个TCP套机字中都存在I/O缓冲,该缓冲在创建套接字的时候自动生产2.即使关闭套接字,I/O缓冲中输出缓冲的遗留的数据也会继续传输3.关闭套接字会导致I/O缓冲中输入缓冲中遗留的数据丢失4.tcp数据包header中的seq表示本次发送出去的数据包的序列号,而ack则是在最后一次收到的对方的TCP包中的seq上+该TCP包数据的字节数 + 1 即: A发送的数据包(SEQ:1000, ACK:NULL, datalen:82) B回复数据包(SEQ:2000, ACK:...

2023-02-24 17:17:53 534

转载 c++ backtrace

今天在看apollo代码时,看到了C++中打印backtrace的方法:// 打印堆栈信息void ShowStack() { int i; void *buffer[STACK_BUF_LEN]; int n = backtrace(buffer, STACK_BUF_LEN); char **symbols = backtrace_symbols(buffer, n); AINFO << "=============call stack begin:=====

2023-02-24 17:15:41 253

原创 [C++][模板]char*作为模板实参时的一个问题

C++模板使用字符串作为类型参数时的注意点

2022-12-22 17:27:55 585

原创 linux C++注册程序退出信号处理的代码

linux C++注册程序退出信号处理的代码

2022-12-01 09:40:47 663

转载 OPENGL知识点整理(一)

概述内容为阅读相关博主文档后整理,因此,相当部分的内容直接引用自如下链接:https://www.jianshu.com/p/5da5a17ad5cbhttps://blog.csdn.net/u012861978/article/details/97833643在opengl中,根据处理的先后次序来分,主要有如下几个坐标系:就是以要被渲染物体的重心作为坐标体系,可以标识出该物体的各个定点的坐标(个人理解)不同的物体都有其自己的物体坐标系惯性坐标系原点域物体的物理坐标系相同,但是其x,y,z轴与世界

2022-11-16 22:55:56 334

原创 C++ tuple模板类使用体验

C++ tuple模板类使用体验make_tuplegettietuple类可以说是一种特殊的pair类型,其内部可以最大包含10个左右不同类型的成员(pair只能包含两个)使用tuple需要包含头文件对应std::make_pair,tuple也有对应的std::make_tuple模板函数用于创建特定类型的tuple对象tuple主要有如下常用的操作make_tuplemake_tuple用于创建一个指定类型的tuple对象,例如std::make_tuple<int, float,

2022-03-27 12:53:06 5440

原创 建造者模式

借用看到的一篇文章中的话来总结就是:当一个类的构造函数超过4个的时候,就应当考虑使用建造者模式来创建该类的对象。在java中,有一种简单的构造者模式实现,就是将类的构造函数全部放到其静态内部builder类中,而该类的构造函数以builder 类成员来构造。例如,通过builder类,用户可以选择构造的电脑的内存大小,硬盘大小,但是CPU和主板是不可更改的。那么将设置了内存或者内存和硬盘大小的builder对象给到computer类既可构造处对应配置的computer对象。个人感觉,bu

2022-02-02 10:57:40 494

原创 工厂模式总结

工厂模式主要有如下三种:1.简单工厂2.工厂方法模式3.抽象工厂简单工厂:简单工厂有一个工厂类,负责创建产品,而产品是所有具体产品的抽象,定义了产品的接口。糖果是产品的定义,而大白兔,荷氏薄荷,牛轧糖则是实际的产品,糖果工厂根据传入的名称参数生产不同的糖果。该模式的缺点在于所有创建产品的逻辑全部集中在工厂类中,随着产品的拓展可能会导致工厂的创建逻辑越发复杂,并且也违反了设计模式中高内聚的原则。工厂方法模式: 工厂方法模式一定程度上优化了简单工厂模式...

2022-02-01 20:34:48 521

原创 内存对齐的理解

1.编译器默认的内存对齐规则默认的对齐规则是一个变量的地址需要是其类型的长度的整数倍:例如下面这个结构体:struct A{char m1;short m2;int m3;}对于A变量的m1成员,其大小为1个字节,起始地址为0,可以满足整除的要求对于A变量的m2成员,其大小为2个字节,因此起始地址1不满足被2整除,需要按照2字节对齐,因此,其起始地址为2,占用2,3两个字节对于A变量的m3成员,其大小为4个字节,因此其起始地址4满足整除4这个要求最终该结构的内

2021-12-26 13:47:59 406

翻译 eProsima Fast DDS Documentation翻译

#########

2021-11-22 19:18:18 718

原创 阿里巴巴Java开发手册 阅读总结(针对C++开发进行了精简)

命名规则:1.不用特殊符号(¥,$,_等)开头或者结尾(无论对于函数名,类名还是变量名)2.使用大写驼峰对应函数名和类名3.使用小写驼峰对应变量名4.使用全大写对应常量名,单词间用下划线(_)连接5.抽象类类名使用Base或者Abstract开头6.测试类类名使用Test作为结尾7.数组的中括号紧接着类型后面8.包名/命名空间名称使用小写9.使用完整英文单词解析名称用途,不适用中文,中文拼音或者不完整英文单词来命名10.如果类或者方法对应使用了某种设计模式,那么类名/方法名中最好体现该设

2021-10-24 17:58:39 490

原创 protobuf 2.0版本排查必填字段未填的方法

在proto2.0版本中,如果required字段没有填写,那么proto编码字符串发给对方进行parse时,对方会parse失败,因此有必要在发送前检查一下是否存在这种情况(特别是在debug阶段)1.为了获取proto序列化的错误信息,首先不能使用MESSAGE_LITE形式的proto,即不要在proto的开头申明 option optimize_for = LITE_RUNTIME;2.在proto对象调用SerializeToString之前,通过IsInitialized方法判断是否该p

2021-10-18 15:14:37 528

转载 recv()函数中MSG_PEEK参数的解释(转)

recv默认最后一个flag参数是0,调用完recv,如果socket的接收缓冲区存在数据,则recv调用会从缓冲区中取走数据但是如果flag参数设置为0,则调用完recv,不从接收缓冲区中移除读取的数据。recv()函数中MSG_PEEK参数的解释_sinat_37372543的博客-CSDN博客...

2021-10-17 15:21:51 593

翻译 Linux平台下从源码安装FastDDS(翻译)

3. Linux平台下从源码安装FastDDS本文介绍了从源代码中安装Fast DDS library 的方法以及 Fast DDS-Gen 生成工具的使用源码进行,章节组织如下: Fast DDS 库安装 要求 依赖 Colcon安装 CMake 安装 Fast DDS-Gen 工具安装 要求 编译Fast DDS-Gen 3.1. Fast DDS库安装该章节描述了linux环

2021-10-02 19:14:48 2567

翻译 Linux平台下二进制安装FastDDS

1. Linux平台下二进制安装该页面主要介绍在linux环境下,使用二进制release安装 eProsima公司的 Fast DDSThe。 安装 内容 运行应用 在一个CMake项目中包含Fast-DDS 卸载 1.1. 安装eProsima Fast DDS在Linux平台下最新的release可以从 Downloads tab站点下载到。下载完成后,将下载的压缩包解压到指定目录,然后在系统中使用有管理员权限的用户来执行

2021-09-06 23:11:30 945

翻译 eProsima Fast DDS

eprosima Fast DDS(之前为Fast RTPS)是一个OMG(Object Management Group)组织下的DDS (Data Distribution Service)标准的C++实现。eProsima Fast DDS实现了RTPS (Real Time Publish Subscribe)协议,该协议提供了基于不可靠传输(例如UDP)通信方式下的发布-订阅功能。由于是由OMG组织定义和维护的,因此,RTPS也是为数据分发服务(DDS)定义的线性互操作协议。eP...

2021-09-05 22:44:47 1840 1

原创 调查线程死锁/阻塞的一种方法

最近在使用冰羚中间件的时候,发现应用中的订阅者线程从冰羚获取到订阅数据后,经常随机出现阻塞的问题(应该没有死锁,因为只在该线程中访问冰羚订阅数据)现象就是线程的while循环直接停了,并且排除到是sleep的原因(因为日志显示阻塞的时候还没有运行到sleep),由于时间紧迫,为了尽快解决问题,想到从线程栈来排查问题,问题就在于如何在阻塞时查看线程栈,搜索后发现通过给进程发送abort信号,可以产生核心转储文件或者说是墓碑,里面有各个线程的调用栈,经过操作后获取到coredump文件,根据订阅线程所用的函

2021-08-28 16:44:57 184

转载 网络层常用协议

1.IPIP协议是Internet Protocal(网际互联协议)的简称,该协议中包含了通信的源地址和目标地址,源端口,目标端口,协议版本以及该包数据的生存时间等。IP协议是无状态,无连接,且不可靠的,因为其无法保证IP数据包一定能够到达指定的目标地址。IP协议的设计目的主要是为了解决大规模且异构网络之间的数据通信,IP数据包可以向下通过链路层使用不同的技术(令牌环网络,以太网等)进行传送。2.ARPARP协议是Address Resolution Prot...

2021-08-25 21:35:09 2336

原创 libcurl使用记录

1.curl_easy_init 返回easy_handle对象(一个CURL*指针)2.curl_easy_setopt 设置行为 2.1 CURLOPT_URL 设置访问URL 2.2 CURLOPT_HEADERFUNCTION 设置获取到RESPONSE HEADER数据时的回调函数,主要通过curl_easy_getinfo解析其中的应答码,头大小等信息 2.3 CURLOPT_WRITEFUNCTION 设置接收到数据时的回调函数 回调函数原型为:size...

2021-07-29 06:51:17 249

原创 Ubuntu下查看磁盘使用情况的工具

最近工作中遇到下载代码过程中显示根分区磁盘空间不足的问题,发现ubuntu下有个图形工具查看磁盘的使用情况非常方便,叫做Disk Usage A nalyzer

2021-06-15 15:28:56 532

翻译 冰羚-IceOryx FAQ翻译

iceoryx FAQ这份文档中包含的是一些知识点和文档的链接,用于帮助排查RouDi的问题。偶尔我们也会有一些拓展。Available memory is insufficient(可用内存不足)如果你从RouDi的日志或者输出中看到Available memory is insufficient(可用内存不足),那么这哥时候,RouDi就无法预订共享内存给到发布者了。为了避免这种情况发生,你需要检查一下你的主机环境到底支持多大的共享内存,例如在Ubuntu系统上,你可以用下面的命令来检查:df

2021-05-17 10:59:03 684

翻译 冰羚-README.md翻译

iceoryx(冰羚) - 一个建立在POSIX系统上的IPC中间件介绍很高兴您已经接触到了IceOryx这个Eclipse项目,让我们快速了解一下背景,介绍这个项目的范围并且通过一些例子带你入门首先,什么是IceOryx(冰羚)?IceOryx是一个在 POSIX 系统上跨进程通信的的中间件,通过POXIS系统上共享内存的特性来完成一个真正的零拷贝数据传输机制。更多的信息可以在 1000 words iceoryx introduction in the eclipse newslet

2021-05-16 21:26:19 2121 1

翻译 冰羚 example-icedelivery-README.md翻译

icedelivery - 在Posix应用间传输数据介绍这个例子展示了基于冰羚系统的进程间通信(IPC),零拷贝完成数据单向传输的例子它提供了发布者和订阅者应用,这些应用包含了两种风格(Bare-metal版本 以及simplified版本)RouDi, 守护进程RouDi是 Routing and Discovery的别名,这个名称很好的描述了RouDi的任务内容。RouDi负责建立通信,但是不实际参与发布者和订阅者间的通信,可以将RouDi想象为冰羚系统中的交换机。RouDi所负责的另一个

2021-05-15 10:34:34 683

翻译 冰羚Planned features.md翻译

计划的特性下面这个列表包含了较高级别的冰羚系统的特性,这些特性将很可能在下一个版本实现Windows和Mac系统平台运行的支持RouDi以及posh runtime的使用手册请求-响应的通信模式同一个主题支持多个发布者范围外的特性下面这些特性不是冰羚系统主要关注的,但是,如果你有想法并且希望他们出现在特性清单上,可以针对这个特性提出请求来讨论是否需要增加。让冰羚系统运行在单片机上...

2021-05-14 16:32:43 177

翻译 冰羚中间件 conceptual-guide.md翻译

ContentsIceOryx冰羚系统的结构共享内存管理交互机制IceOryx冰羚系统的结构冰羚的组成如下:一个RouDi守护进程多个加载了"Posh Runtime"运行时的进程RouDi守护进程RouDi 的名称由来是’‘Rou’‘ting 和’‘Di’'scovery,其是冰羚系统的核心,并且负责如下功能:Service discovery(服务发现):RouDi是Publisher(发布者)和Subscriber(订阅者)的中心节点Shared memory man

2021-05-03 17:31:51 1369

翻译 冰羚中间件 RouDi usage-guide.md翻译

内容内容配置RouDiConfiguring RouDiRouDi可以支持读取从一个配置文件中读取mempool config。如果需要支持这个特性,CMake的编译选项中需要使用 -DTOML_CONFIG=onmempool config配置文件需要以-c命令选项的方式传给RouDi,像下面这样:./RouDi -c /absolute/path/to/config/file.tomlRouDi支持不同的共享内存段使用不同的访问属性用于限制不同应用对于共享内存段的存取。下面是格式版

2021-05-03 00:23:03 862

原创 V2X车联网-学习整理笔记

一致性测试预备条件:1.具备WIFI或者LAN通信能力2.具备GNSS能力,能够获取设备经纬度以及授时3.具备RF通信能力aid为应用标识,应用标识分配如下:111:普通车辆状态112:普通车辆关键事件提醒113:紧急车辆状态114:紧急车辆关键事件提醒3618:地图类应用3619:信号灯类应用3620~3623:道路类信息应用3627:证书类应用3628:证书撤销列表3629:异常行为管理CV2X协议栈层结构,从下到上分别为:1.射频2.物理层3.MAC层4.RL

2021-02-11 15:27:01 4497 6

转载 MySQL操作入门

下载链接:1.百度网盘:链接:https://pan.baidu.com/s/1vP-D71PmMsXhLwO8y2lL9A提取码:n4mt2.官网下载:https://www.mysql.com解压下载的安装包后存放到C:\Program Files (x86)目录下设置环境变量:1.mysql:设置为C:\Program Files (x86)目录下mysql根目录2.path中增加$mysql\bin路径常用命令:①安装服务:mysql...

2021-02-11 11:58:34 103

原创 内存调查工具 - tinymob使用说明

内存调查工具 - tinymob使用说明实机上操作流程以TestServer进程为例停止进程stop TestServer 启动进程LD_PRELOAD=/存放路径/libtinymob.so TestServer & 画面&机能操作 输出内存分配状态tinymobcat pid > /tmp/TestServer.txt// pid为TestServer进程pid 获取进程map表cat /proc/pid/maps > TestServer.ma...

2020-12-24 16:47:53 183 1

opengl预习资料.md

opengl预习资料.md

2022-04-04

ICEORYX.pptx

ICEORYX.pptx

2021-08-28

SecureCRT.rar

SecureCRT,比较好用的ssh,串口连接工具,比putty在文字编辑,使用习惯上好很多,比finalshell也好不少

2020-09-01

teraterm.zip

类似与putty的软件,但是有很多额外功能,可以通过串口传文件等 软件需要解压后才能使用,经常在开发过程中使用他的marco菜单下的功能,配合ttl文件完成testmode模式下的设备的相关操作

2020-06-03

makefile中文手册

make中文手册 希望对大家有帮助 ~~~~~~~~~~ ~~~~~~~~~~ 谢谢~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~

2017-09-21

WINDOWS程序设计第五版中英文

C语言下编写WINDOWS程序的编程宝典,帮助你深入理解WINDOW程序的运行原理

2011-02-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除