- 博客(236)
- 收藏
- 关注
原创 QT 开发经验分享
现如今有不少的兴起的后起之秀,比如Electron、Flutter等等,而这些新奇的语言他们的强项就是界面的开发,我用Electron写出来的界面效果可以任意吊打我之前写过任何一款Qt界面,不是一个量级的碾压,并且开发成本很低,这就是我不建议去深入Qt界面样式的原因,拿自己的弱项碰他人的强项,反向田忌赛马,花很多时间和精力放到一个收益很低的方向,是很吃亏的事情,如果说Qt的其他内容都会的差不多了,然后再来学学。性能上的卓越这点没什么好说,秉承了C++的优良血统,脚踩其他语言,众所周知,
2025-02-05 14:45:38
987
原创 沟通需要的不是技巧,而是懂人性
很多时候,下属不听你的,并不在于你说得对不对,而在于你的沟通有问题。你想说服别人,推动别人去做某件事,你先要照顾好别人的利益,简单来说,这事做了,对他有什么好处;当你看到一个员工犯了错误,你要想到你也是这么一路走过来的,你仿佛看到了曾经的自己,你不是为了批评而批评,而是去帮助他。沟通的时候,当别人提出自己的看法的时候,无论你有多么强烈的反驳欲望,都要克制自己,耐心听对方讲完,而不要打断对方。最后,结束谈话前,不以严厉的语言作为结束,而是给对方鼓励、希望,让对方重新振作,不致陷入被批评的低落情绪中。
2024-12-12 17:04:39
308
原创 训练自己的结构化思维,说话有逻辑
如果发言内容与工作成效相关,可以在陈述到相关内容的时候cue到某个人(尤其是在座领导)会给你带来意想不到的效果,最忌全程不提别人,全是自己的功劳的表述,即使成绩满满,也给人一种揽功诿过的不良印象。我很喜欢在开会的时候观察记录别人的具体发言(尤其是发言框架),特别是领导的发言内容,我发现结构化的思维表达很重要,不会让你出现思绪混乱,胡言乱语的窘迫。因为一般的交流发言,都是有领导在场的,而你日常的工作,领导却看不到,所以宁肯把日常的工作丢一边也要通过刻意练习表达准备交流发言的内容。我想让别人知道哪些细节?
2024-12-12 15:11:04
310
原创 一个可以很旺自己的习惯
如果你是管理者,管理者的级别越高,会议也就越多,你要开8个会,早上做TDL的时候,会发现有3个尤为重要,那么就要想清楚开这3个会的目标是什么,方法是什么,要拿到什么结果,该如何引导。同样,你的下面也可能会有管理者,因此你要记录下属在管理团队时的一些管理案例,并且在Review下属时,分享给他,指出他在管理当中的问题,辅导他,帮助他成为合格的管理者。“头痛医头,脚痛医脚”,他忙碌且迷茫。我的领导做了两件事,他首先告诉我:“Cherry,你是我选的人,我选你,一定是你有非常优秀的地方,我相信你能做好!
2024-11-18 13:44:47
610
原创 走向管理岗,狠狠记住这7句话
很多时候,领导都只有目标,没有计划,他们调动下属的时候存在臆想,觉得自己认为重要的事情,下属也认为同样重要。在奖励惩罚的背后,你要视人为人,帮助他认识到自己的局限性或者可能性,激发他们提升自己的意愿,并且找到改进的方法,成为更好的人。等最后他的上司问起来,他才想起来,一去看,发现下属才完成10%,他就气急败坏地说:“为什么让你们做的事,还没有做?但很多管理者做得不好,他只看重结果,不重视过程,在布置了任务后,就不管不顾了,做起了“甩手掌柜”,什么都不过问。你看,检查的过程,其实也是辅导下属的机会。
2024-11-18 13:15:28
793
原创 做个现代的“六化”程序员
专门性的硬件平台,将会逐渐成为小众,物联网这么多年,没有发展起来,除了商业上的原因、标准上的原因,技术的原因就是硬件平台没有通用化,需要各种小众的硬件设计,无法规模化。“云”是另一个虚拟的世界的底层基础。把自己的精力投入到具有创造新生产性质的事情上,为社会创造增值的价值,为自己增加个人的资产。与最神奇的地方在于,它把无数个通用化的硬件平台,作为资源,协同起来进行“计算”与“存储”。有无数个智能的机器人,不求回报的,无时无刻的帮我们打工的老板。“六化”一个漫长的数字资产的积累过程,这是一个艰苦的创业过程。
2024-09-23 13:21:40
334
原创 串口通信中QString与QByteArray的互相转换
QByteArray在串口通讯中经常被使用,通信处理过程中,经常会涉及到数据格式的转换,有一定必要较为全面详细的对QByteArray数据转换与处理部分进行阐述。本文通过以下几个部分加以介绍在使用串口发送数据时可以选择字符串发送或者十六进制发送,关于两者的区别,需要从计算机存储数据的格式说起。在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。
2024-07-30 16:40:50
2608
原创 QByteArray::fromHex() 、QByteArray::toHex()原理及使用
第二步,以“31”为例,fromHex表示从16进制。所以把31当做16进制数,转成十进制数是3*16+1=49. 结合ASCII码对照表,十进制数49对应数字1,把数字1当做字符“1”。有时候从网络获取到一串的mac地址却是没有使用":"或空格分隔开来,未免会让用户阅读困难起来。变量test1用8个字符保存“31323235”,每个字符8位,两个字符16位。QByteArray::fromHex转换时,每16位作为转换单元。第一步,把“31323235”分成4组,“31”,“32”,“32”,“35”
2024-07-30 16:02:21
1741
原创 串口QSerialPort类同步与异步接收和发送数据及常见问题解决
QT作为C++的库,也是一样的道理。通讯的一方(B)如果不能及时处理串口数据,会设置自己的RTS为低电平,B的RTS连着对方(A)的CTS,A发现自己的CTS为低电平,将停止发送数据;因此每个bit紧接着下个bit,不存在额外的间隔,不管是起始bit,数据bit,奇偶bit,停止bit。通讯的双方A和B,假如A给B发送数据时,B反应过慢,A不管不顾的不停发送数据,结果会导致数据丢失。电脑串口以及一般使用的开发板串口都是默认8个数据bit,一个停止bit,(起始1bit是必须的)默认无奇偶校验位,无流控。
2024-07-23 10:31:34
3113
原创 常见通信方式(TTL、RS232、RS485、CAN、I2C)总结
1、从单片机软件编程角度来说,RS232、RS-485最终结果都是转换为TTL电平方式与单片机通信(CAN收发器把差分信号转化为TTL-->CAN控制器(MCU))。逻辑1:-1.5V--0V 逻辑0:+1.5V--+3V)这里的电平指CAN_High、CAN_Low 两线间的电压差。半双工、(逻辑1:+2V--+6V 逻辑0: -6V---2V)这里的电平指AB 两线间的电压差。全双工(逻辑1: 2.4V--5V 逻辑0: 0V--0.5V)全双工(逻辑1:-15V--5V 逻辑0:+3V--+15V)
2024-07-16 17:20:00
2484
原创 嵌入式软件必备知识--通讯协议(UART、I2C、SPI、CAN)
UART是异步,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收。UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。UART全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),它通常称作UART,是一种异步收发传输器, 是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;
2024-07-16 16:13:22
2159
原创 UART协议 分析
这里以发送字符‘D‘为例,通过璞石示波器,直接观察TTL实现传输的信号(探头接地端连接设备共地端,探头信号端连接上图蓝色信号线),可以获得如图 1‑4所示的信号波形。从波形可以看出,当没有数据传输时,UART信号会一直保持在高电平(具体信号幅度由I/O的供电电压决定),数据传输时信号发生跳变,传输完成后信号重新回到空闲的高电平状态。付出的成本则是在物理层需要对应的电平转换芯片来实现,发送端需要将内部的高低电平信号转换成电压更高的+/-电压信号,接收端需要将+/-电压信号转换成内部的高低电平信号。
2024-07-16 14:54:19
826
原创 串行通讯协议--起止式异步通讯协议 【异步通信中数据发送和接收的全过程】
异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,如图所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。传输数据时先传送字符的低位,后传送字符的高位。由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。
2024-07-16 10:22:12
1523
原创 模数转换基本原理
随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测领域中,信号的处理无不广泛地采用了计算机技术。由于自然界中的物理量,如压力、温度、位移、液位等都是模拟量,如要用数字技术处理这些模拟信号,则往往需要一种能。反之,能把数字信号转换为模拟信号的电路称为。A/D和D/A转换器是现代计算机系统中不可缺少的基本组成部分。A/D转换器和 D/A 转换器在工业控制系统中的作用如图 10.0所示。在【模拟信号】与【数字信号】之间起转换作用的电路——【模数】转换器和【数模】转换器。
2024-07-09 14:38:22
346
原创 波(横波、纵波、声波)、声音的采集、声音的储存
声音作为波的一种,频率和振幅就成了描述波的重要属性,频率的大小与我们通常所说的音高对应,而振幅影响声音的大小。将薄膜作为电容的一端,当代表声音的气墙过来的时候,将会推动薄膜震动,从而有规律地改变它和电容另外一端的间距。(后续,这一面面气墙在碰到人的耳朵时,就会引起人耳骨膜的摆动,与骨膜相联系的神经细胞会对这种震动的频率和幅度产生反应,反应成大脑理解的声音)从图像中可以看出,(纵波)波形图的横坐标表示的发生振动的物体(也即固定的每个质子),而纵坐标表示的是质子在某个时刻距离其基准产生的位移!
2024-07-08 16:41:21
2256
原创 声波、光波、电磁波,自然界中的波动现象
波由一种介质进入另一种介质时,传播方向的改变称之为波的折射,比如筷子在碗中的弯折现象,就是由于光的折射造成的。波的散射是指由于传播介质的不均匀引起的,当波通过不均匀的介质时,一部分会偏离原来的传播方向。在不同介质中机械波的传播速度也不同。多普勒效应并不是由于波源向外发出的频率因运动发生了改变,而是由于运动造成观察者所接收到的完全波的个数发生变化,在我们看来似乎是波源发出的波的频率发生了改变。波传递的是振动能量,而波的传递过程中介质中粒子的实际位置并没有发生改变,比如人的声带并不会随着声波的传播而离开口腔。
2024-07-08 16:23:08
1530
原创 Windows和Linux的换行符CRLF/LF(\r\n,\n)
CR是Carriage-Return的缩写,即回车;LF是Line-Feed的缩写,即换行。CR和LF是在计算机终端还是电传打印机的时候遗留下来的东西。电传打字机就像普通打字机一样工作。在每一行的末端,CR命令让打印头回到左边。LF命令让纸前进一行。虽然使用卷纸的终端时代已经过去了,但是,CR和LF命令依然存在,许多应用程序和网络协议仍使用这些命令作为分隔符。Linux(unix) 和 mac 默认使用 "\n" 作为换行符;Windows 默认使用 "\r\n" 作为换行符;
2024-07-04 10:50:06
1042
原创 配置数据的3种存储方式:QSettings 、QSQLite 、QJSON
在Qt中,你可以使用多种方式来保存和管理配置数据。配置数据的用途:(1)应用程序重启后配置数据的保存(2)不用应用程序之间交换配置数据(3)应用程序内部不同对象之间交换配置数据以下是几种常见的方法:1、QSettings 、2、QSQLite 、3、QJSON1、QSettings 类QSettings 类QSettings是一个方便的方式,用于读取和写入应用程序的配置数据。它可以将配置数据保存在操作系统的注册表(Windows)、配置文件(Unix-like),或者内存中。
2024-06-21 14:24:20
1480
原创 QString、QList、QVector、QMap、QHash、QSet、QPair基础用法
它提供了高效的基于键的查找和插入操作,并使用哈希函数来散列键以提高性能。以上是QList的一些常用操作,它还提供了更多的成员函数和功能,如拷贝构造、深拷贝、元素访问等。以上是QString的一些常用操作,它提供了很多其他方法来操作和处理字符串。它提供了方便的插入、删除和访问操作,并支持迭代器和算法等功能。QVector是Qt中的一个动态数组容器类,用于存储同一数据类型的元素。QSet还提供了其他一些功能,如集合的排序、集合的交叉验证等。它提供了高效的查找和插入操作,并保持元素的唯一性。
2024-06-21 10:42:31
912
原创 其实每个行业都有各自的辛苦,好的程序员并不累,他们乐此不疲
被胜利冲昏头脑后的大跃进,往往后面伴随着是致命的结局,过由不及。如果一辈子找不到自己该有的坚守和立足的点,并基于这个点在这个时代的大趋势中不断乘风破浪前进,自我主动驱动有所作为建树,而是沦为在别人的体制制度中被驱赶一生,我想无论什么工作都只是一时的寄托,外加自己错误的欲望肯定苦累不断。原来层面有限,只知道自己圈子里的专业方向上校友的工作状态,他们大部分也是随波逐流,无赖处于开发的最底层,上不去,工作都是搬砖造轮子,需求又不停,一直累得不行。不扯了,不论如何,积极的心态,规律的作息运动,正确的事情。
2024-06-20 14:38:01
557
原创 读书、看电视应该身临其境去读、去看(不是为了娱乐,而是为了对人生有帮助)
我觉得自己犯的那么多严重错误,其实以前都是在书上见过的,可就是不当回事,把它当一个故事看过哈哈一笑而过,有的时候还把这些故事当作谈资来炫耀自己知道的事情多,现在想起来真是万分后悔。每看一个故事,就要想一想,自己当前是什么样的情况,会不会落入这种情况,如果落入这种情况应该怎么应对。想想自己以前真的是太肤浅了。电影,电视,小说,历史,都是如此。虽然不可能会把所有的极端情况都碰到,但是好歹是对自己心灵的练历。里面值得总结和学习的东西太多了~看电视剧要认真看,不能哈哈笑过去就算了。理论联系实际啊联系实际。
2024-06-20 14:26:00
244
原创 聪明人不做的十件事(他们不会让自己过去的错误干扰他们今天的生活)
通常情况下,真正聪明的人都极富创造性、同情心、感恩心态,而且,他们为人行事非常谦虚。他们把过去留在了身后,因为他们知道,你不可能改变这些错误,但却能从中获取经验和教训,并将其看作一次自我成长的机会。聪明人知道,当你尽你所能,努力地梦想、创造、构建、思索以及热爱时,你的生活将会变得更好。他们不让任何毫无意义的事情及不必要的任务打扰和分散他们的注意力。他们笃信善良的力量,而且一个行为良好的举动,很可能在未来将给予他们同样的回报。因为一般情况下,他们都很害羞,而且,他们不觉得有必要告诉全世界他们非常聪明。
2024-06-20 14:19:28
476
原创 懂市场比懂产品重要,懂产品比懂技术重要
大多数想找靠谱程序员的公司,都没理顺业务需求,就指望着程序员给他们一边迭代一边优化呢。一个创业公司,最好三样都要有,但应该CEO是懂市场,经理懂产品,程序员最好懂技术。财务——不要出错,搞出什么漏洞来,或者把到手的钱给弄丢了~如果业务真能梳理清楚,那找外包或者招派驻技术,是最省钱的。两个凡是必须严格遵循, 不遵循要么滚蛋, 要么滚到下面去。美工——有钱最好请个美工,最起码也要请人设计修改一下~行政——事情安排不要出问题,更不能得罪客户~这还不算,销售也要厉害一点,不能守株待兔~搞的“技术”全是制造麻烦的。
2024-06-20 14:12:11
370
原创 模型索引(QModelIndex)
返回指向此索引对应模型的指针。返回值是常量指针,因为调用模型的非常量函数可能会使模型索引无效,并可能使应用程序崩溃。
2024-06-17 15:00:49
1003
原创 gitlab 服务器 搭建 (ubantu)
3)修改默认的gitlab nginx的web服务80端 /var/opt/gitlab/nginx/conf/gitlab-http.conf。gitlab自带nginx服务器,占用80端口,很容易和服务器上其他的web服务器冲突,因此有必要修改相应的端口。2)修改/var/opt/gitlab/gitlab-rails/etc/unicorn.rb。gitlab非常的占用内存,至少需要4GB的可用内存。1)修改/etc/gitlab/gitlab.rb。修改/etc/gitlab/gitlab.rb。
2024-06-13 15:55:36
472
原创 【C++ JSON 开源库json.hpp】nlohmann入门使用总结4 复杂json 解析构建
nlohmann/json 是一个方便易用的 C++ JSON 库,可以实现将 JSON 数据与 C++ 对象相互转换的功能,支持常见的 JSON 数据类型,例如对象、数组、字符串等。本文将针对 nlohmann/json 的集合和字典功能进行讲解,并介绍如何从 JSON 对象中解析特定字段。文末有实体代码 将创建一个足够复杂的json字段用于了解类型是怎么加入和创建的。
2024-06-11 17:04:43
1222
原创 【C++ JSON 开源库json.hpp】nlohmann入门使用总结3
以前更多使用 Qt5 专门的 QJsonDocument 及其相关类来读写 JSON 文档,但用久了发现比较麻烦,不够简洁美观,所以更换使用 nlohmann。nlohmann是一个用于解析 JSON 的开源 C++ 库,口碑一流,使用非常方便直观,是很多 C++ 程序员的首选。处有详细说明用法,但篇幅过长,不便于迅速阅读抓重点。而且,所举例的某些用法实践上其实比较少用到,而某些实践上常用到的一些用法,官网却缺例子。所以这里简要总结了一下它的主要用法,并加上几个示例,希望能帮助刚接触的同学快速用上。
2024-06-11 15:54:59
1304
原创 【C++ JSON 开源库json.hpp】nlohmann入门使用总结2
在自定义类命名空间中定义两个函数即可像basic value一样进行反序列化和序列化:from_json(const json& j,T& value)、to_json(json& j,const T& value)需要将 to_json 和 from_json 以及要进行转换的结构体,写到同一命名空间下;#include <iostream> //文件操作头文件。
2024-06-11 14:41:06
2362
原创 【C++ JSON 开源库json.hpp】nlohmann入门使用总结1
在网络中,常用的数据传输序列化格式有XML,Json,ProtoBuf在公司级别的项目中=大量的在使用 ProtoBuf作为数据序列化的方式,但是数据的序列化方式可选择:Json、XML、Protobuf(也叫数据序列化方式)。Json采用完全来存储和表示数据。简洁和清晰的层次结构使得 Json 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON是什么JSON:avacriptbjectotation(JavaScript 对象表示法)
2024-06-11 12:59:34
3003
原创 在Qt中使用QtWebApp搭建HTTP服务器
最近在开发Qt的http服务器功能,研究比较了一番,选择了QtWebApp方案,相对其他开源库,比较推荐使用该方案,功能齐全,简单易用,如果赶项目的话,极力推荐。下面介绍一下Qt集成QtWebApp步骤:1、下载QtWebApp源码:KingJamesGyq/QtWebApp把源码拉下来到本地,将httpsever目录整个移植到自己的项目工程下。 2、在pro文件包含httpserver这样就完成集成源码了,剩下的就是根据你自己的业务需求去开发了,细节可以参考Demo1和Demo2。
2024-05-14 11:24:28
1490
2
原创 QT/C++ 、QtWebApp 基于Http通信的局域网五子棋小游戏
由于工作需求,需要在QT上实现一个HttpServer,查找了一些开源的库最终选择了QtWebApp来完成这个需求,这个相对于其他的C++库来说比较契合QT,实现信号槽方便。下面这个五子棋就i是利用该库实现的一个demo。
2024-05-14 10:44:01
322
原创 QT/C++、QtWebApp 基于Http通信的前后端分离式框架
QtWebAdmin是基于QtWebApp+QJsonWebToken+SQLite的前后端分离轻量级C++快速开发框架,以QtWebApp作为底层cppweb,前端采用layui。QtWebAdmin内置部门管理、用户管理、角色管理、菜单管理、数据数据字典,常用系统监控等基础功能,整合了layui前端常用组件。QtWebAdmin定位于以Qt/C++为后端,整合前端框架,引入SQLite作为数据库,自定义了CacheApi作为内存缓存区。
2024-05-14 10:32:20
2089
4
原创 Qt:编译器、MSVC、Mingw、dll调用
到底选择哪个版本,MinGW 比较方便,配置易上手适合初学者,MSVC功能强大,适合进阶,但是具体项目上要根据依赖的第三方库选择版本。如果你的第三方库是msvc的,能可能就必须msvc,如果第三方库是mingw的可能就必须mingw。跨平台开发的话,用的库基本上一定是Linux能用的库,而Linux能用的库一定是在mingw下支持会比较好。(mingw甚至能 include unistd.h 之类的Linux专用头文件),那就优选mingw。注意Qt版本:msvc和MinGW版本的区别。
2024-05-07 13:13:49
3121
原创 QT C/C++ 使用 CryptoPP加密解密
CryptoPP 是一个开源的密码学加密库,提供了大量的密码学算法和功能,包括对称加密、非对称加密、哈希函数、消息认证码 (MAC)、数字签名等。这里重点介绍一下对称加密算法(AES)的使用和注意事项。
2024-05-06 17:10:16
3473
原创 Qt JSON详解一
JsonValue包装了Json支持的数据类型,JsonValue相当于一个箱子,可以重载JsonValue得到不同数据类型。
2024-04-30 11:02:47
1962
原创 nginx学习 安装、配置、反向代理、负载均衡、动静分离、前后端分离
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP。在高并发访问的情况下,Nginx是Apache服务器不错的替代品。官网数据显示每秒TPS高达50W左右。本文为读者朋友们介绍Nginx是目前中的主流方案,Nginx是一个轻量级的高性能HTTP反向,同时它也是一个通用类型的代理服务器,支持绝大部分协议,如TCP、UDP、SMTP、HTTPS等。Nginx与Redis相同,都是基于。
2024-04-25 15:13:13
713
原创 Ubuntu系统安装mysql
进入 vi /etc/mysql/mysql.conf.d/mysqld.cnf 找到bind-address,把127.0.0.1修改成0.0.0.0。首先要先使用无密码登录数据库一定要使用 sudo mysql -uroot -p 刚安装好可以这样登录.已经亲自试过了。这个时候. 你在Linux中正常使用mysql -u root -p 然后输入你的密码已经可以正常进入mysql.都经过了本人的亲测.!不用输入任何密码直接回车.然后按照以下命令把数据库的连接和密码都改一下就行了简单吧.
2024-04-23 15:20:10
445
麻省理工大学电路与电子学课件
2023-11-27
CANopen轻松入门学习质料
2023-11-27
周立功ControlCAN二次开发库以及接口函数使用手册
2023-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人