- 博客(84)
- 资源 (11)
- 收藏
- 关注
原创 后端开发就是增删改查?
了解我的朋友都知道,我这11 年,从嵌入式到 C++,从 C++ 转到 iOS,从 iOS 到 PHP,从 PHP 到小程序,从小程序到 golang,从 go 到安卓,从开发到管理,从程序员到 CTO,做到了真正意义的全栈。
2023-11-10 18:01:44 251
原创 程序员毕业五年那些事儿
最近到处都在热议某公司程序员跳楼事件,回想我从12年7月份毕业到现在已经做了整整的五年多的程序员了,其中,程序员的焦虑却一直没有消失过。第一份工作11年9月初,和千千万万毕业生一样开始奔波于各大高校的校园招聘,大学四年参加了各类电子竞赛,立志于毕业后从事硬件开发相关工作,自然参加校园招聘也是参加各类硬件招聘,由于我们学校是个普通的二本学校,因此,各大优秀的公司自然不会到我们学校举行校园...
2017-12-18 22:32:10 2776 4
原创 QT VS2010问题集锦
1.Debug和Release的QT lib包区别Debug下面使用带有d的lib,如QtCored4.libQtGuid4.libQtSqld4.libQtOpenGLd4.lib
2014-10-22 19:05:45 1089
原创 shallow copy and deep copy
shallow copy and deep copy(浅拷贝与深拷贝)C++03性能上长期被诟病的原因有一点就是其耗时且不必要的深度拷贝。简单的理解就是浅拷贝就是拷贝指针,深拷贝就是重新分配内存拷贝数据The default copy constructor and default assignment operators do shallow copies, which
2014-03-10 13:36:55 1100
原创 编码提取以及Base64编码转换工具
前段时间经常用到需要提取汉子的UTF-16、BIG5等编码,搜索了一番实在是没有找到相应的工具,此次采用QT编写了个简单的工具吧,以便以后所需,希望对有需要的朋友有帮助,本人菜鸟一枚,如有错误请指正!下载地址:点击打开链接
2014-03-08 15:23:08 2093
原创 wait morphing
解锁互斥量mutex和发出唤醒信号condition_signal是两个单独的操作,那么就存在一个顺序的问题。谁先随后可能会产生不同的结果。如下: (1) 按照 unlock(mutex); condition_signal()顺序, 当等待的线程被唤醒时,因为mutex已经解锁,因此被唤醒的线程很容易就锁住了mutex然后从conditon_wait()中返回了。 (2) 按照 cond
2014-02-19 14:57:57 1535
原创 Spurious wakeup
Spurious wakeup现象是在条件变量使用中出现的,即一个线程可能即使没有条件变量signal的时候也会被唤醒(a thread might be awoken from its waiting state even though no thread signaled the condition variable.)这样会导致wait线程误以为条件成立,因此,正确做法是通过while判
2014-02-19 14:46:14 1611
原创 C++练习之template操作
C++模板(template)在应用中也是很广泛,我理解的模板就是该类或者该函数可以塞入不同的数据类型,而能正确处理。源码下载地址:git clone https://laneyu@bitbucket.org/laneyu/cplusplus.gittemplate目录下有本文章的完整例子一、类模板(class templates)1、简单使用类模板允许类里面的函数、变量等等使
2014-02-12 17:48:25 1111
原创 C++练习之override操作
C++中override(覆盖)操作符是类封装中应用到最基本的操作,琢磨了下,才算是懂了点点,以下是自己的一些理解,如有不对之处,请指正,谢谢!源码下载地址:git clone https://laneyu@bitbucket.org/laneyu/cplusplus.gitsample目录下既是本文所有例子测试代码一、operator+操作operator+操作主要有四种方式:
2014-02-11 17:38:28 1533
原创 FreeTDS的使用及移植
FreeTDS的使用及移植 前面已经介绍了FreeTDS的基本功能,本篇就来详细介绍FreeTDS的使用以及移植工作。FreeTDS使用是非常简单的,难点是在其移植方面,琢磨了两天才算搞明白,查阅了网上大量介绍FreeTDS的文章,没有找到介绍移植方面的。因此,希望对有需要的朋友有帮助。一、编译安装编译安装FreeTDS和linux下常见的安装软件包是一样的,分为c
2013-12-13 13:46:53 3335 3
原创 Linux下访问SQL的应用及移植
Linux下访问SQL的应用及移植 大多数情况下我们知道在windows下采用SQL数据库,如SQL2000、SQL2005以及SQL2008,在Linux采用MYSQL等等。但是有的情况是,我们需要在linux下面访问SQL数据库,或者在windows下面访问MYSQL。因此像这种需要交叉访问问题就出来了,下面介绍两种在linux下访问SQL常见的方式操作。并且,如果我们是需要在板端进行
2013-12-13 13:40:58 1062
原创 Linux下链接SQL2000完整教程
本文主要介绍了在linux下面操作SQL2000/SQL2008的方法,采用移植开源库FreeTDS进行处理,具体相关操作及测试代码,请下载相应资源。如发现任何疑问及相关错误请留言指正,感谢!点击打开链接
2013-11-21 18:16:44 1175
原创 消息队列的使用
linux消息队列就是类似于FIFO形式的,使用起来还是蛮方便的,可以应用于进程间传递消息,如,某个显示内容功能,就可以采用消息队列进行,以下是项目中应用到的消息队列,用于传递结构体。函数原型:ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long int msgtyp, int msgflg);int msgsnd
2013-11-14 18:39:38 982
原创 SQLite数据库环境搭建及测试
SQLITE数据库安装及测试 源文件下载地址:http://www.sqlite.org/src/info/f062969548http://www.linuxfromscratch.org/blfs/view/svn/server/sqlite.html 一、配置、编译和安装参考文档:http://baike.baidu.com/link?url=0ViZlP3y
2013-11-05 17:25:03 2454
原创 柔性数组
前段时间在解析rtsp的时候感觉到了header+payload格式下,如果payload采用指针方式进行,即将header和payload分开,则在处理的时候颇为不便。今突然发现了柔性数组,感觉颇为好用,特记录如下具体什么是柔性数组,请参考参考资料#include struct test{ int a; double b; char p[]};int main()
2013-10-08 17:02:47 1202
原创 在字符串中查找字符串问题
在某一个字符串查找某个字符串,如果存在则返回相应的位置(offset)如果不存在则返回-1,如,在“finding str“里面查找”str“。这类功能的函数很多库函数都是包括的,如strstr、strchr等等此处不采用相应的库函数,并且查找返回相应的位置信息,而不是地址,原型如下所示:int FindStrFromBuf (const char *buf, int buflen,
2013-10-08 14:07:56 1352
原创 socket编程实用配置
本篇博客主要用于记录平时在socket编程方面实际用到、学到的一些技巧1、socket套接字选项设置SO_REUSEADDR选项,socket可重用,详细参考以下内容(摘自百度百科)设置套接字选项为SO_REUSEADDR,socket可重用,经常在socket通信时进行设置。:编写 TCP/SOCK_STREAM 服务程序时,SO_REUSEADDR到底什么意思?
2013-10-08 10:32:44 1296
原创 网络协议的封包与拆包方法
最近在处理rtsp拆包的时候,发现自己在网络协议方面存在着很大的问题,其中最大的问题就是不清楚如何根据协议进行解析?因此,在做网络协议的拆包的时候如果这些知识没有想清楚,理解透彻,那么在做起来的时候你会发现各种各样的错误让调试起来总是困难重重!因此,我们在解网络协议的时候,第一:清楚该协议格式;第二:熟悉该协议拆包流程; 如,rtp包协议格式如下?那么我们该如何解析呢?
2013-08-24 23:40:13 2849
原创 杂谈
文笔不怎样,可却是越来越喜欢写写、谈谈、聊聊。Anyway,不管如何,俗话说有条件要上,没条件创造条件也要上,上上就有条件了。 今日话题起源于涛哥要搬家,因此,需要去把自己以前的东西全部都搬回来。毕业到如今来深圳也不过一年多点,住处可是一换再换,等段时间又要换了,如今可是习以为常了。和涛哥闲聊中,涛哥问我“重新让你选择,你还会来深圳吗?还会选择创维吗?”第一个问题,我说我会,第二个问题,
2013-08-18 23:18:25 961
原创 RTSP流媒体服务器的搭建与测试
本文主要介绍了live555搭建RTSP流媒体服务器,并采用VLC软件进行相应测试,欢迎下载!下载地址:点击打开链接
2013-08-16 23:46:50 1892 1
原创 Hi3521+NVP1118B音频编解码部分
Hi3521音频部分调试也有一段时间时间了,从刚开始的什么都不知道,到现在大概知道,以下是对目前能够理解到的做一个相应的总结,其中音视频芯片是NVP1118b欲调好海思的音频编解码部分的功能需要了解以下三个个内容:1、Hi3521对NVP1118b的控制方式 Hi3521通过i2c对NVP1118b进行寄存器配置,此处需要知晓NVP1118B有个复位(reset)引脚,只有在改
2013-08-14 22:04:15 4437 2
原创 Hi3521音频解码调试技巧
调试Hi3521音频解码已有四天有余,从刚开始的无法播放音频,到后面的PCM音频的播放,到最后的g.711u音频数据的播放,可谓是一波三折,下面对Hi3521音频解码部分进行整理,希望对读者有用 Hi3521音频解码部分只需要注意以下两点 1、解码PCM波形时,需要选择正确的波形文件,比如8K 8bit 2、解码g.711u音频时,由于内部有一套音
2013-08-06 21:28:46 2044 1
原创 Win7下搭建Qt+OpenCV开发环境
OpenCV是一个基于开源发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效--由一系列C函数和少量C++类构成,同时提供了Phyon、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 应用领域:人机交互、物体识别、图像分割、人脸识别、动作识别、运动跟踪、机器人、运动分析、机器视觉、结构分析等等
2013-08-05 22:11:34 1148
原创 Linux 混杂设备的应用
混杂设备在实际的项目中还是非常有用的,目前,由于工作需要,在海思处理器上面编写了以及基于混杂设备的GPIO驱动,该驱动扩展性极好,能够操作Hi3521上面的所有GPIO,并且能够快速移植到其他海思芯片上,以下是个人对该设备模型的一些理解与应用,希望对读者有用,不足之处请指正!下载地址:点击打开链接
2013-07-30 21:32:27 867
原创 如何有效的进行项目文档管理
在我们平时开发的过程中,经常会发现找不到曾经记录的文档,以及曾经修改过的地方?不管是和团队一起开发还是自己一个人开发,文档的管理都闲的了及其的重要。我们知道有很多开源的软件版本控制软件,如git、svn、hg,以下提出一种个人开发项目管理模型。 首先,请看如下3人组的开发模型,在一个项目中,我们有三个开发人员,developer1,、developer2以及developer3 三
2013-07-29 20:50:00 3205 1
原创 NVP1114B、NVP1118B、NVP1914以及NVP1918系列芯片
NVP1114B和NVP1118B分别做4路和8路D1。NVP1914和NVP1918分别是做4路和8路960H的,同时也支持D1格式这几个芯片都是pin to pin的,因此,用起来是扩展性非常不错如果需要16路的话那可以用多片芯片NVP1118B的简介如下NVP1914简介如下
2013-07-26 17:31:38 7082 8
原创 语音编解码记录
语音编解码技术分为三类:波形编码、参数编码和混合编码波形编码最简单,应用最早,其实施简单、性能优良,但是其编码比特率最高,在16kbps到64kbps之间,且一般很难再进一步下降,G.711的A律或u律、G.721和G.726标准均属于波形编码;参数编码的编码速率较低,基本上在2kbps到4.8kbps之间,语音的可懂度较好,但音质较差,只能达到合成语音质量,其声码器对环境噪声比较敏感,其
2013-07-26 16:52:28 1370
原创 Hi3520A显示视频处理办法
Hi3520A视频是在视频层显示的,而QT是运行在图形层,但是QT运行后会遮挡视频层的视频,因此,需要某种方法将QT视频区域隐藏然后显示后面的视频如:QT的label背景设置为紫色,然后通过硬件透色了图形层上面的紫色,那么该区域就是透明的了就可以显示出后面的视频海思芯片该透色的功能叫做:colorkey,即关键色,如上,将关键色配置成为紫色那么就可以透色了调试过程中,依然是看frame
2013-07-25 18:01:05 3948
原创 Hi3520A移植QT Embedded
海思移植Qt Embedded的资料目前还是比较少,并且每个遇到的问题都不一样,但是最为主要的问题,我相信是在QT移植好了以后,运行QT测试demo,界面无法输出,自己也在改问题上面卡了近两个星期,以下就总结下移植Qt Embedded到Hi3520A的过程。准备资料:1、Qt Embedded 库 2、海思原厂SDK移植开始1、编译Qt EmbeddedQTPATH
2013-07-25 17:53:54 4363 3
原创 QWS透明后鼠标移动出现阴影现象解决办法
现象 QWS背景透明了以后就会出现鼠标移动会有阴影现象,测试代码如下#include #include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); QDialog dialog; QWSServer::setBackground(QColor(0, 0
2013-07-16 21:51:50 1947
原创 QT图形开发
在监控领域中,一般输出设备的图形用户界面内容包括:1、后端OSD:显示画面分割线、通道号、时间等信息,用以界定多画面显示布局。2、GUI界面:包括各种菜单、进度条等元素,用户通过操作GUI界面进行设备配置3、鼠标:提供更方便易用的界面菜单操作方式。 以上3类图形内容可以通过1个图形层实现,也可以通过多个图形层实现。 在实际的项目中,我们一般采用的是在一个图层实现
2013-07-11 11:02:09 1902 1
原创 QPainter类的使用
QPainter类用于低水平的绘制,例如在窗口部件上面绘制工具为做到绝大部分绘制图形用户界面车国内需的需要提高了高度优化的函数。QPainter可以绘制从简单的直线到像饼图和弦这样的复杂形状。它也可以绘制排列的文本和像素映射。通常,它在一个“自然的”坐标系统中绘制,但是它也可以在视和世界转换中做到这些。绘图工具典型的用法是: 构造一个绘图工具 设置画笔、画刷等等
2013-07-09 21:42:17 2175
原创 UML概述
UML(Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。 UML的定义包括了UML语义和UML表示法两个部分。 UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。 UML表示法:UML表示法定义UML
2013-07-08 19:59:48 872
原创 Qt自定义动态图标的实现
常常我们在用Qt做界面的时候,往往需要有一个漂亮的界面,类似于手机里面的各种图标按键,因此,本文考虑如何实现图标按键Qt里面有个QPushButton的类,首先,用Qt自带的QPushButton实现一个按键,如下图效果所示首先,这个按钮不是动态的,因此,没有动态效果,其次,我们多数情况下有自己的按键图标,这个时候C++继承的作用就发挥出来了,我们在QPushButton的基础上派生出
2013-07-06 23:45:45 3200
原创 GoToCellDialog窗体功能完善
上篇文章,我们只是把窗体界面做出来了,并且里面并未有实现任何功能,因此,我们现在来实现里面的功能。面向对象的好处就是,我们通过简单的继承,创建一个新类,而不用修改已有的类,让该类同时从Qdialog和Ui::GoToCellDialog中继承出来,并且由它来实现那些缺少的功能(从而也证明了这句话:通过简单地增加另外一个间接层就可以解决软件的任何问题)。命名的惯例是:将该类与uic所生成的类具有
2013-07-04 15:13:31 1242
原创 Qt Designer工具与uic的使用
当做Qt界面的时候,显然按照前面一种方式全部都有自己写会比较繁琐,而且界面修改起来也不容易,因此,本文介绍下,Qt designer 和 uic,从中可以看到其中的方便还是蛮大的。首先、用Qt Designer生成如下界面,并保存为gotocelldialog.ui然后,我们用uic用户界面编译器(user interface compiler)编译gotocelldialog.u
2013-07-04 14:27:37 6224 2
原创 Qt类的封装
谈到C++第一印象就是面向对象,但是从来都没有用明白多。由于平时从来都没用过C++,但是项目需要现在又要用到Qt,因此,不得不学习C++以及Qt的知识了。 学习了Qt一个类的封装,现在基本明白面向对象是什么意思了,面向对象不在乎就是封装类嘛,将对象的数据、行为等等封装在一起,但是,我们都知道不管是C++还是Qt都提供了各种基类这些。往往这些是不够的,所以面向对象的编程思想就是,运用现有的
2013-06-30 21:29:39 4006
原创 minixml开源包的使用
XML在现在的发展中越显得越重要,目前发现应用在动态页面配置、数据包传输等用处还是相当有作用的。自己编写XML解析器比较耗时,还好现在已经有了做的相当完善的minixml,可以拿过来用了。google上搜索minixml,目前能够下载到的最新版本是2.7下载完成以后,解压、安装minixml,操作命令如下tar -zxf mxml-2.7.tar.gz解压完成后,进入解压出来的文件
2013-06-25 17:01:55 2404
网络协议的封包与拆包方法
2013-08-24
NVP1118B音频解码工作原理
2013-08-14
海思Hi3521音频解码调试技巧
2013-08-06
linux混杂设备
2013-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人