C++
JL_Gao
这个作者很懒,什么都没留下…
展开
-
【cmake】大型项目中组件的配置应用
引言在工程中需要用到Boost库时,CMakeLists.txt通常是这样写的:find_package(Boost COMPONENTS system thread)这样就可以按需依赖Boost的组件动态库,而不是整个Boost库。思考,find_pacakge如何查找组件?如何让自己的工程库也能通过查找组件的方式找到各个子功能呢?find_package如何查找组件?find_package(<package> [version] [EXACT] [QUIE...原创 2020-10-12 19:06:28 · 1677 阅读 · 1 评论 -
【Linux】execlp通过结构体传参
1. execlp函数定义int execlp(const char *file, const char *arg, ...);参数说明:file --文件名称,如果包含“/”,则认为路径名,直接查找程序,否则,从PATH环境变量指定的路径中查找程序。arg --新程序启动参数,每个arg都是非空的string,参数列表以NULL结束。2. 问题思路及代码1)问题...原创 2020-04-17 16:33:05 · 517 阅读 · 0 评论 -
【FastRTPS】概述、架构
概述 使用Fast RTPS的两种方式:Publisher-Subscriber方式:对RTPS的简单抽象,用户只需要定义某个Topic的Publisher和Subscriber、传输方式就可以发布订阅数据。可参考上一节中的HelloWorld。Writer-Reader方式:更接近RTPS标准中的概念,能直接操作RTPS的读写端点的HistoryCache。Fast RT...原创 2018-11-14 08:50:56 · 7245 阅读 · 0 评论 -
【FastRTPS】对象和数据结构
对象和数据结构eProsima Fast RTPS中的对象是按模块划分的。Publisher Subscriber模块RTPS标准的上层抽象,有以下几个结构:Domain(域):用于创建、管理、销毁高层的ParticipantPariticipant(参与者):包含多个Publisher和Subscriber,并管理它们的配置 ParticipantAttribute...原创 2018-11-14 08:51:10 · 1753 阅读 · 0 评论 -
【FastRTPS】Publisher-Subscriber接口层、使用及部分配置
来自:https://eprosima-fast-rtps.readthedocs.io/en/latest/pubsub.html参考《FastRTPS User Manual.odt》第五章Publisher-Subscriber接口层eProsima Fast RTPS 提供了高层的Publisher-Subscriber层,该层是RTPS协议上的简单抽象。通过这层,你可以直接编...原创 2018-11-14 08:51:26 · 3882 阅读 · 6 评论 -
【FastRTPS】Example--Qos
参考《FastRTPS User Manual.odt》第五章基于时间的过滤和基于内容的过滤:class MySubscriber : public SubscriberListener{ Subscriber *mp_sub; SubscriberAttributes m_att; SampleInfo_t m_lastInfo; void onNewDataMessage(...原创 2019-01-03 16:23:53 · 1178 阅读 · 2 评论 -
【FastRTPS】Writer-Reader层、使用及部分配置
来自:https://eprosima-fast-rtps.readthedocs.io/en/latest/rtps.html参考《FastRTPS User Manual.odt》第六章该层是RTPS协议的原始实现,相对于Publisher-Subscriber层,它能对内部协议的实现提供更多的控制功能,比较适合于高级用户使用。类介绍RTPSDomain创建和销毁RTPSP...原创 2019-01-04 14:17:15 · 2478 阅读 · 0 评论 -
【FastRTPS】Example--自定义话题类型、话题关键字
例子来自FastRTPS文档。用户可以通过fastrtpsgen自动生成话题类型,自定义话题类型时,需要实现serialize、deserialize和getKey方法。关键字(Key)的作用:不同的关键字可以看做同一个主题中的不同数据端点,这样接收端(Subscriber或者RTPSReader)就可以根据关键字区分数据源或者数据类别。关键字的使用:1. 定义实现主题类型中的...原创 2019-01-03 13:51:27 · 1488 阅读 · 0 评论 -
【FastRTPS】Example--自定义Publisher和Subscriber
例子来自FastRTPS文档。参考《FastRTPS User Manual.odt》自定义Publisher:class MyPublisher : public PublisherListener{ Participant* mp_participant; Publisher* mp_publisher; MyPublisher(){ //Create p...原创 2019-01-03 14:59:03 · 1181 阅读 · 0 评论 -
【FastRTPS】高级配置
来自:https://eprosima-fast-rtps.readthedocs.io/en/latest/advanced.html参考《FastRTPS User Manual.odt》第六章第6.5节 版本1.5网络配置FastRTPS支持多种传输层接口(插件架构),也可以开发符合FastRTPS的第三方传输层,因此高级用户可以根据项目需要来自己设计。当前版本实现了UDP...原创 2019-01-08 14:04:46 · 5608 阅读 · 0 评论 -
【FastRTPS】RTPS协议简介、创建第一个应用
RTPS协议简介Domain(域):定义了一个独立的通信平面,多个域是同时独立存在的。域包含了多个Participant和发送接收数据的元素。Participant(参与者):包含多个Reader端点和Writer端点Reader:接收数据端点Writer:发送数据端点Topic(主题):通信是围绕着Topic进行的,所以,Topic定义了要通信的数据内容,Topic不属于...原创 2018-11-14 08:51:04 · 6281 阅读 · 5 评论 -
【CCF】201809-3(100分)
思路和这个一致:https://blog.csdn.net/leelitian3/article/details/82776210#include <iostream>#include <vector>using namespace std;struct snode{ int level; // 层级 string tag; // 元素 ...原创 2018-10-24 08:46:33 · 655 阅读 · 0 评论 -
21天学通C++--阅读笔记1
源代码--编译-->目标文件--链接-->执行文件 内存:RAM(Random Access Memory)随机存取器,运行程序时,程序从磁盘文件加载到RAM中,所有变量在RAM中生成,即内存。 ASCII(America Standard Code for Information Interchange)美国标准信息转换代码。 typedef(给现有类型起别名)原创 2015-02-13 08:57:10 · 1063 阅读 · 0 评论 -
21天学通C++--阅读笔记2
函数重载适用情况:没有合理的默认值需要不同的算法需要在参量表中支持各种类型 复制构造函数XXX(const XXX& xxx);浅拷贝:成员变量复制,即两个对象的成员变量指向同一内存。深拷贝:成员变量内存复制,即指向值相同的不同的内存。规则:尽量使用深拷贝,防止栈中的对象销毁,导致内存数据出错。 运算符重载XXX operator++()原创 2015-02-13 11:13:01 · 965 阅读 · 0 评论 -
21天学通C++--阅读笔记7(异常、宏、位操作)
异常异常情况解决措施:使程序崩溃;通知用户并退出;通知用户并恢复执行;不通知用户继续执行正确操作。 异常捕获:try{//可能产生异常的代码}catch(...){//异常处理,清除分配的内存} 异常类:class ClassA{//异常类class ClassExcp{public:ClassExp(string errms原创 2015-03-27 15:38:22 · 735 阅读 · 0 评论 -
21天学通C++--阅读笔记4(静态成员、函数指针)
静态成员变量主要用于在类的实例间共享数据。作用域为类。class A {static int staticParam;}intA::staticParam = 0;//静态成员变量初始化,在类的构造函数之外初始化访问方式:public: static int staticParam;A::staticParam ;privat原创 2015-03-18 13:16:27 · 609 阅读 · 0 评论 -
21天学通C++--阅读笔记5(输入输出、命名空间)
流 cout ciniostream库,用于程序对文件或屏幕的写入或读出。缓冲区streambuf:流将写入的数据暂时存储到缓冲区中,当缓冲区满才写入磁盘,主要功能包括:填充、清空、清除等。用于向磁盘写数据,防止因磁盘读写降低程序的性能。 ios输入输出基类,包含streambuf;istream、ostream从ios派生,用于管理输入输出。iostream从istrea原创 2015-03-18 13:17:52 · 935 阅读 · 0 评论 -
21天学通C++--阅读笔记6(模板、标准模板库)
模板类通过将类型作为参数来创建新的实例。eg.template//class表示模板的参数是类型,T表示参数化类型class ClassA{void methodA(T t);//定义}; templatevoidClassA::methodA(T t){}; ClassAintObj;intObj.methodA(2); 模板类友元1.原创 2015-03-18 13:17:31 · 557 阅读 · 0 评论 -
fread、fwrite、fprintf、fscanf
size_t fwrite (const void* buffer, size_t size, size_t count, FILE* stream)注意:这个函数以二进制形式对文件进行操作,不局限于文本文件(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;(2)size:要写入的每个数据项的字节数;(3)count:要写入size字节的数据项的个数;原创 2015-04-22 13:00:41 · 598 阅读 · 0 评论 -
Poco读写XML配置文件示例
原XML配置文件: ZHANGSAN 127.0.0.1执行后XML配置文件: ZHANGSAN 127.0.0.1 1521Poco读取修改配置文件代码: #include #include std::string fileName = "D:\\test.xml"; Poco::AutoPtr pXML(new Poco::Util::XMLCon原创 2015-04-07 14:33:25 · 3168 阅读 · 0 评论 -
C++ SOCKET函数注释及示例代码
函数简介://创建套接字//@param af通信区域,AF_UNIX、AF_INET(国际网区域)、AF_NS等,DOS、WINDOWS仅支持AF_INET//@param type套接字类型,SOCK_STREAM(TCP流式套接字,面向连接可靠的数据传输,可控制流量,数据长度无限制)、SOCK_DGRAM(数据包式套接字,无连接服务,数据包以独立包形式发送)、SOCK_RAW(原原创 2015-01-12 13:45:49 · 976 阅读 · 0 评论 -
21天学通C++--阅读笔记3
数组数组是数据存放地址的集合,每个地址保存相同类型的数据。int intArray[10];//int类型为4个字节,编译器会分配4*10个字节的连续内存给该数组 数组初始化int intArray[2];//一维数组声明int intArray[2] = {1, 2};//对两个元素都赋值in原创 2015-02-26 14:09:47 · 882 阅读 · 0 评论