XuQi's Blog

  • 首页

  • 归档

V2X之V2I介绍

发表于 2019-07-07 更新于 2019-10-20

V2I功能列表

道路危险状况提示 HLW (Hazardous Location Warning)

场景

image-20190715205112678

阅读全文 »

V2X之V2V介绍

发表于 2019-07-06 更新于 2019-10-20

术语定义

主车host vehicle,HV

装有车载单元且运行应用程序的目标车辆。

远车remote vehicle,RV

与主车配合能定时广播V2X消息的背景车辆。

车载单元on-board unit,OBU

安装在车辆上的可实现V2X通讯,支持V2X应用的硬件单元。

路侧单元road side unit,RSU

安装在路边的可实现V2X通讯,支持V2X应用的硬件单元。

V2X

车载单元与其他设备通讯,包括但不限于车载单元之间通讯(V2V),车载单元与路侧单元通讯(V2I),车载单元与行人设备通讯(V2P),车载单元与网络之间通讯(V2N)。

阅读全文 »

C-V2X白皮书

发表于 2019-07-05 更新于 2019-10-20

C-V2X概述

C-V2X内涵

V2X 车用无线通信技术是将车辆与一切事物相连接。

image-20190705224220769

阅读全文 »

wireshark插件开发之vsomeip协议

发表于 2019-07-05 更新于 2019-10-20

wireshark插件开发之vsomeip协议

XuQi 2019/07/08

Lua语法介绍

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua 数据类型

Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

数据类型 描述
nil 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
userdata 表示任意存储在变量中的C数据结构
table Lua 中的表(table)其实是一个”关联数组”(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过”构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。
阅读全文 »

鱼骨图分析法

发表于 2019-07-04 更新于 2019-10-20

鱼骨图的产生及定义

特性要因图,是指一个问题的特性在受到一些要因的影响时,我们将这些要因加以整理,使之成为有相互关系而且有条理的图形,这个图形称为特性要因图。因其外观酷似鱼骨,又称“鱼骨图”。

注意:这里的“特性”指的是一个可以量化和量测的问题,感性的东西不适于作为鱼骨图分析的对象。

例如:我们讲“我们的产品竞争力不强”,它不能作为鱼骨图分析的对象,如果改为“为什么我们的价格比市场平均价格高20%”,则可作为一个特性来做鱼骨图分析,我们要把问题描述清楚,这是第一步。

阅读全文 »

C++常用工具类

发表于 2019-07-01 更新于 2019-10-20

编码规范

https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/

禁止拷贝基类

为什么禁用拷贝(复制)构造函数
  • 浅拷贝问题

    默认生成的拷贝构造函数会直接拷贝成员指针的地址,这样两个对象的指针指向同一个缓冲区,导致析构的时候两次删除同一片区域的问题(这个问题又叫双杀问题)

    解决办法:

    1. 自己编写拷贝构造函数

    2. 使用 shared_ptr 这样的智能指针

    3. 禁用拷贝构造函数和赋值操作符

阅读全文 »

MySQL数据库

发表于 2019-06-25 更新于 2019-10-20

数据库连接

1
mysql –u用户名 [–h主机名或者IP地址,-P端口号] –p密码

命令输入在mysql> 之后:

  • 用q\、quit、exit三种命令可以退出命令行实用程序;
阅读全文 »

C++性能优化指南

发表于 2019-06-25 更新于 2019-10-20

优化动态分配内存的变量

减少动态变量的使用

静态地创建类实例
1
2
3
MyClass myInstance("aaaa"); // Good
MyClass *pInst = new MyClass("aaaa");
MyClass myInstance = MyClass("aaaa");
阅读全文 »

socket编程

发表于 2019-06-24 更新于 2019-10-20

Server的生命周期

1. 创建

1
int socket(int domain, int type, int protocol);

2. 绑定

1
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

3. 监听

1
int listen(int sockfd, int backlog);

4. 接收

1
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

5. 结束

阅读全文 »

c++11并发指南

发表于 2019-06-19 更新于 2019-10-20

与 C++11 多线程相关的头文件

C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是 ,,,和。

  • :该头文主要声明了两个类, std::atomic 和 std::atomic_flag,另外还声明了一套 C 风格的原子类型和与 C 兼容的原子操作的函数。

  • :该头文件主要声明了 std::thread 类,另外 std::this_thread 命名空间也在该头文件中。

  • :该头文件主要声明了与互斥量(mutex)相关的类,包括 std::mutex 系列类,std::lock_guard, std::unique_lock, 以及其他的类型和函数。

  • :该头文件主要声明了与条件变量相关的类,包括 std::condition_variable 和 std::condition_variable_any。

  • :该头文件主要声明了 std::promise, std::package_task 两个 Provider 类,以及 std::future 和 std::shared_future 两个 Future 类,另外还有一些与之相关的类型和函数,std::async() 函数就声明在此头文件中。

    Linux GCC4.6 环境下,编译时需要加 -pthread

一句话话概括各个库的特征

  • std::thread创建就允许,允许后台运行
  • std::mutex 加锁解锁要配对
  • std::lock_guard 自动解锁
  • std::unique_lock 关联互斥体
  • std::promise 许诺给个未来
  • std::package_task 任务和返回值打包给线程
  • std::async 比package_task简单,自动创建线程
  • std::condition_variable 一般和unique_lock 一起用
阅读全文 »
123…5

XuQi

44 日志
30 标签
© 2019 XuQi
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Muse v7.3.0