- 博客(69)
- 资源 (10)
- 问答 (15)
- 收藏
- 关注
原创 15-bag的录制,回放与解析
本教程教你如何使用rosbag record工具来录制ros通信数据。之后在通过rosbag play形式回放录制的数据包此教程不详细解读,仅将rosbag record对应的help文档列出,并给出具体录制例子。
2022-09-28 22:45:20
3620
原创 9_ROS-Service和ROS-Parameter 相关命令行工具
这部分教程使用rosservice和rosparm命令行工具介绍ROS service和parameters.
2022-09-18 23:11:54
202
原创 嵌入式Linux_FreeType_01交叉编译
交叉编译的万能命令使用此万能命令的前提是开源软件的源码里:有configure文件,confiuer支持–host,–prefiex参数.在编译安装完成后,对应的库以及头文件会安装在当前目录的tmp目录下./configure --host=arm-hisiv400-linux --prefix=$PWD/tmpmakemake installfreetype交叉编译freetype版本:freetype-2.10.2.tar.xz直接使用上述的交叉编译万能命令编译过程中报错:ftgz
2021-04-11 21:51:05
535
原创 嵌入式Linux_Framebuffer_04点阵显示汉字
中文的显示与ASCII字符的显示过程是一样的确定要显示的汉字在字库中找到对应汉字的点阵数据使用描点函数绘制汉字点阵数据但是与ASCII字符显示不同的是,汉字需要注意汉字的编码方式。C代码源文件的编码方式和编译出来的程序中的汉字所使用的编码方式也是有差别的。注意: 一般采用ANSI或者UTF-8编码,而不采用UTF-16编码,因为UTF-16编码ASCII字符也是2个字节,此时其中一个字节就是0,在C语言中0表示字符串的结束容易引起误会。在编写C程序的时,不论源码使用的ANSI还是UTF8编码
2021-04-11 21:14:47
647
原创 嵌入式Linux_Framebuffer_03点阵显示ASCII字符串
要在LCD上显示一个ASCII字符,首先需要找到字符对应的点阵.在Linux的内核源码中有:lib/fonts/font_8x16.c以数组的形式保存各自字符的点阵信息.下图左边就是font_8x16.c中fontdata_8x16数组中字符A的点阵数据。由上图可知,要以点阵的形式显示某个ASCII字符只需找到此字符在字符点阵数组中的位置,然后取出此字符的点阵数据,进行绘制即可。代码示例...
2021-04-07 22:03:17
460
原创 嵌入式Linux_Framebuffer_02字符编码
文本文件保存的是字符的编码值,在字符显示的时候字符显示的样子是由字体所决定的.ASCII编码ASCII编码是用一个字节的低7位来表示128个数值,在ASCII码中最高位永远是0.ASCII编码百度百科ANSI编码ANSI是ASCII的扩展,向下兼容ASCII.对于ASCII字符仍用ASCII来表示,对于非ASCII字符则使用2字节来表示.ANSI并不是特定的一种字符编码,它与本地化(local)密切相关,在windows平台上,不同地区的ANSI编码代表不同的字符编码.例如中国台湾的ANSI实际是
2021-04-07 21:34:00
193
原创 嵌入式Linux_Framebuffer_01描点画线
Framebuffer顾名思义,Frame是帧的意思,buffer是缓冲区的。Framebuffer中保存着每一帧图像的每一个像素的颜色值。LCD操作原理驱动程序设置好LCD控制器根据LCD参数设置LCD控制器的时序,信号极性根据LCD分辨率,BPP分配FramebufferAPP通过ioctl获取LCD的分辨率,BPP等参数APP通过mmap映射Framebuffer,在Framebuffer中写入数据。从上图可以看到Framebuffer和LCD的可显示区域是一一对应的。使用F
2021-04-03 23:27:20
770
原创 嵌入式Linux_环境搭建篇_简单的shell命令
shell的功能从键盘接收数据并回显解析输入的字符串,寻找程序,执行程序shell解析字符串,这些字符串使用空格分开,第一部分是程序名,其余是参数shell会从环境环境变量PATH所指定的位置去查找应用程序,当然也可以使用绝对路径或者相对路径直接找到程序找到程序后,启动程序,并传入参数设置环境变量永久修改环境变量对所有用户都有效 /etc/environment#在此文件的最后追加上要加入PATH环境变量的路径#重启或重新登录后生效对当前用户有效 ~/.bashrc
2021-03-27 20:56:59
167
1
原创 嵌入式Linux_环境搭建篇_vim的基本使用
嵌入式学习开篇的虚拟机设置,deepin Linux发行版安装,虚拟机网络配置等基本操作这里就不在介绍了.由于本人对vim也并非使用特别多,但也就是离不开而已,所以这里就简单介绍下基本使用.平时编码等本人还是使用VSCode来进行编码.只有在设备上使用vi或vim来修改参数或查看日志.故也就简单介绍下vim的基本操作即可.配置vim/etc/vim/vimrccp /etc/vim/vimrc ~/.vimrc#之后使用发布的配置文件进行替换cat ~/.vimrc100ask提供的vimr
2021-03-12 14:41:16
127
原创 corrupted double-linked list:0xb4a12bb8问题解决
程序的主要功能进程的主要功能是定期轮训获取设备上所添加的下级设备的信息.最近突然发现在某些情况下会发生WEB获取到的下级设备信息一直不正确的问题.不过此问题也是偶尔发生的,也加上自己的盲目自信一直以为没啥问题就一直没关注此问题.今天测试找到了此问题的稳定复现条件,就详细记录下解决此bug的过程.处理流程bug复现后,使用strace去跟踪发现只要出现WEB获取下级设备信息不正确的情况下总是会出现问题:也就是出现的死锁问题导致的WEB在获取下级设备的时候一直不能获取到正确的设备信息.经过最终的
2021-03-04 11:12:23
5383
2
原创 2.3 OpenCV对图像的基本操作-Sobel边缘检测
操作图片输入输出加载图片文件 Mat img = imread(filename);如果读取的文件是jpg格式的文件,那么默认就会为此文件创建一个3通道的图像.如果你仅仅是加载一个灰度图像可使用: Mat img = imread(filename, IMREAD_GRAYSCALE);注意图片的文件格式由图片文件的文件头决定即图片文件的前几个字节所决定,也可以理解为文件的扩展名.保存文件. imwrite(filename, img);使用cv::imdecode
2021-02-04 14:53:52
353
原创 2.2 OPenCV直接访问像素和filter2D函数两种方式实现图片对比度增强
矩阵的Mask操作是非常简单的.就是我们根据掩码矩阵(Kernel矩阵)重新计算图像总每个像素的值.此Mask值用于调整相邻像素对新像素的影响程度.从数学的角度来看,是用我们指定的值做了一个加权平均数.测试用例要实现对图像对比度的增强,基本上我们会对图像中的每一个像素应用下面的公式: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0NE00zcM-1612349382161)(1_图像对比度增强公式.png)]上图中第一种表示方式是使用公式,第二种表示法是使用M
2021-02-03 18:55:49
420
翻译 MySQL-部分C API解读
C API提供对MySQL 客户端/服务器 低级访问,使得C程序能够访问MySQL数据库中的内容.C API代码是和MySQL一起发布的,并在libmysqlclient库中进行实现.可参考27.8.1节 MySQL C API实现.大多数的客户端API使用libmysqlclient库与MySQL服务器进行通信(Connector/J Connector/Net除外).这意味着,您可以利用其他客户端程序而使用相同的环境变量,因为他们都是libmysqlclient的引用.可在4.1节 MySQL概述中获.
2021-02-03 12:43:12
352
原创 Qt5.6.2 源码交叉编译
写在前面的话此教程主要是将我之前交叉编译Qt5的过程做了简要记录。希望给需要的开发者们一点帮助。版本Qt版本:Qt5.6.2交叉编译器:linux-arm-hisiv400-g++源码下载和解压此处就不再详细介绍了。相信需要交叉编译Qt5的小伙伴们应该都知道如何百度下载[Qt源码](http://download.qt.io/archive/qt/ "Qt源码")以及如何解压创建mkspecs切换到解压后的Qt源码的qtbase/mkspecs目录中.将linux-arm-gnueabi
2021-02-03 12:40:25
939
原创 嵌入式版本Qt5不能使用QStorageInfo类问题定位
嵌入式Qt版本:Qt5.6.2交叉编译器:arm-hisiv400-linux-gcc表现:按照正常流程调用QStorageInfo类,均不能得到正确结果,win/x86 linux下均正常,仅仅arm版不行.查看qt源码分析:相关文件:qt/qtbase/src/corelib/io中qstorageinfo.hqstorageinfo_p.hqstorageinfo_unix.cpp...
2021-02-03 12:38:11
660
原创 linux C获取CPU使用率
/proc/stat 文件介绍/proc/stat文件中是内核/系统的统计数据。此文件可能随着体系结构的改变而有变化。常见的信息如下:gy@gy-PC:~/Desktop$ cat /proc/stat name user nice system idle iowait irq softirq steal guest guest_nicecpu 687385 674 103362 5359975 106204 0 7588 0 0 0
2021-02-03 12:36:03
1499
原创 2.1.基本图像容器
目标 我们有多种方法从现实世界中获取数字图像:数码相机,扫描仪,计算机断层摄影技术,核磁共振成像等。在任何情况下我们看到的都是图像。然而当将其转换到我们的数字设备时,我们所记录的是图像中每个点的数值。 就和上面的图像一样,你可以看到汽车的镜像只是一个包含所有像素点的强度值的矩阵。我们会根据我们的不同需要来获取存储这些像素值,但最终在计算机世界中的所有图像都可能被简化位数字矩阵和描述矩阵本身的其他信息。OpenCV是一个计算机视觉库,它的主要重点是处理和操作这些信息。因此我们首先需要熟悉...
2021-02-02 23:13:45
179
2
原创 1.2. 从一张图片入门OpenCV
目标本实例的目的是使初学者通过本文档的学习,可以掌握从文件读取图片(cv::imread) 使用OpenCV 窗口显示图片(cv::imshow) 将图片另存为新的文件(cv::imwrite)源码#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <iostream>using name
2021-02-02 21:00:31
181
原创 1.1 OpenCV介绍与安装
目前使用版本:OpenCV 3.4.13OpenCV(开源机器视觉库)是一个开源的BSD许可的库,包括数百种机器视觉算法。此文档描述了基于C++的OpenCV 2.x API。自从OpenCV2.4版本以后,C的API已经弃用,不再使用c编译器进行测试。 OpenCV具有模块化结构,意味着其包含着几个共享库或静态库。以下模块可供选择:Core(核心功能):一个紧凑的模块,定义基本数据结构,包括密集的多维数组MAT并且包含供其他模块使用的基本功能。 Imgproc(图像处理):图...
2021-02-02 20:59:14
317
翻译 Onvif再学习---MiniXml-介绍
简介: Mini-XML是一个小型的XML库。您可以使用它在应用程序中读写XML以及和类XML数据文件,而不需要其他大型非标准库。Mini-XML只需要与一个ANSI C兼容的编译器(gcc以及大部分编译器)和一个make程序即可工作。 Mini-XML提供以下功能:读取UTF-8 UTF-16以及写UTF-8的XML文件以及字符串 数据是存储在链表树结构...
2019-07-04 09:18:31
1698
原创 Onvi再学习----分析设计方案
之前版本的Onvif协议是使用gsoap框架生成的,每升级一次onvif版本都需要从onvif官网下载最新的wsdl。然后使用gsoap带的相关工具去生成框架代码。在onvif版本升级的时候改动太多。故考虑使用xml解析库以及socket实现一个onvif的服务器和客户端demo。 从下面的Onvif的请求和响应报文来看,Onvif主要使用的是HTTP协议,另外就是x...
2019-07-04 08:52:26
549
原创 libvlc-源码编译流程记录
一、安装编译vlc的必要工具 VLC需要C11编译器以及开发工具链,建议使用高于4.9版本的gcc,另外clang/LLVM也是可以的。如果你是从git仓库构建,你还需要gnu构建系统即 autotools(autoconf,automake,libtol,gettext)来设置Makefile.并确保这些工具是最新且可用sudo apt-get install git bui...
2019-06-28 09:29:18
3824
原创 ubuntu18.04编译安装mpv
在项目的实际开发过程中,接触了解到了mpv这一优秀的播放器。由于需要将其内嵌到代码中,所以需要将其编译成动态库的形式使用。将自己的编译流程做如下记录:mpv源码URL: URL1: https://github.com/mpv-player/mpv URL2:https://github.com/mpv-play...
2018-09-18 09:32:36
3692
2
原创 线程池-Qt
QThreadPool类使用://pro文件Qt += core//头文件包含 #include <QThreadPool>介绍: QThreadPool类管理了一个线程的集合。QThreadPool管理和回收QThread对象,以帮助减少使用线程的程序在线程创建的开销。每一个Qt应用程序有一个全局的QThreadPool对象,可以使用欧冠globalI...
2018-08-17 10:55:11
1678
g++交叉编译库找不到问题
2022-10-20
arp同一个mac对应2个IP地址
2021-08-05
mysql不能删除表,报如下问题
2019-08-05
libvlc如何去除视频播放时的黑边
2018-11-28
如何从onvif官网获取之前版本的onvif的 wsdl xsd文件
2017-10-16
ubuntu17.04 密码正确登陆不成功
2017-08-24
boa 与onvif融合,出现网页刷新不出来的情况
2017-05-03
Qt如何一个下面的界面中左边的圆环怎么实现状的环形按钮如何实现
2017-04-11
Qt中手敲代码的部件在构建工程后显示不出来
2017-02-22
IPC无规律异常重启bug的测试思路
2017-02-09
onvif视频编码改变拉流故障
2016-10-21
onvif设置视频参数改变编码后web拉不出流
2016-10-18
glibc detected检测到段错误
2016-09-27
奇怪的c++string字符串
2016-08-03
C++builder中关于excel异常处理
2016-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人