自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hakuna___Matata的博客

希望能每天都有些进步

  • 博客(46)
  • 收藏
  • 关注

原创 [HDLBits] Countbcd 4位BCD加法计数器

需要使用4个BCD加法计数器来进行组合实现。

2025-07-24 18:17:20 374

原创 上位机开发中的设计模式(3):装饰器模式

装饰器模式是一种结构型设计模式动态地给对象添加额外功能,而不改变其原有结构通过**包装(wrapping)**原始对象来提供增强功能遵循开闭原则(对扩展开放,对修改关闭)UML核心组件Component:定义原始对象的接口:原始对象的具体实现Decorator:持有Component引用并实现相同接口:具体的装饰器实现。

2025-06-14 11:38:49 590

原创 上位机开发过程中的设计模式体会(2):观察者模式和Qt信号槽机制

摘要: 观察者模式与Qt信号槽机制均用于对象间通信,核心目标是解耦和一对多通知。联系在于两者均支持事件驱动和松耦合设计,但区别显著:观察者模式需手动管理观察者列表(代码量大),适用于通用C++场景;信号槽依赖Qt框架,通过元对象系统自动处理连接,语法简洁且支持跨线程通信。选择依据:非Qt项目或需精细控制时选观察者模式;Qt项目优先信号槽,尤其涉及GUI或多线程。信号槽是观察者模式在Qt中的高阶封装,权衡性能换取开发效率。(150字)

2025-06-10 20:30:06 588

原创 上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

本文分享了QT/C++开发中三种创造型设计模式的应用体会。工厂方法模式通过动态配置生成不同测试对象,符合开闭原则但会增加子类复杂度;单例模式用于管理日志系统和独占设备,确保全局唯一实例但可能造成高耦合;生成器模式灵活构建SCPI设备对象,适合复杂构造场景但可能过度设计。这三种模式分别适用于创建相似对象、管理全局资源和构建复杂对象等场景,合理使用能显著提升代码的可维护性和扩展性。

2025-06-09 22:19:41 1021

原创 AGain DB和倍数增益的关系

Again DB和倍数增益的关系

2025-06-06 10:07:34 419

原创 C++ QT 如何生成dll提供給python使用

在 Qt Creator 中生成一个包含device.dll(供 C++ 使用)和(通过 C 接口供 Python 调用)的项目,需要分步骤配置。

2025-04-02 22:39:31 669

原创 CMOS HBLANK和VBLANK

/ VBLANK 高字节 (0x0414 = 1044 行,含有效行 + VBLANK)[有效行1] [HBLANK] [有效行2] [HBLANK] ... [有效行N] [VBLANK(多行HBLANK)]一帧的垂直消隐期(VBLANK)由多行组成,每一行结束时都会有一个水平消隐期(HBLANK)。作用:为传感器提供时间完成当前行的读取,并准备下一行的扫描(例如复位模拟电路、切换行地址)。在全局快门传感器中,VBLANK 是曝光时间的一部分(曝光通常在 VBLANK 之前完成)。

2025-03-25 10:40:17 1456

原创 C++ QT选择多个文件夹

但无法进行选择多个文件夹;

2025-03-03 11:19:29 356

原创 C++ QT chip layout tool开发浅思

工作中需要利用padlist + Chip size + Chip Center + Pixel size + Pixel Center生成一副Chip Layout tool SVG图像。

2024-12-20 17:47:55 368

原创 C++ QT UI日志更新

来异步地更新文本编辑器。这意味着更新文本编辑器的操作将在事件队列中排队,稍后由Qt的事件循环处理。这样做的好处是,如果这个函数是在非GUI线程中调用的,它可以安全地更新GUI组件,而不会违反Qt的线程安全规则。C++ QT进行Log记录,打印然后更新在UI上,一般可以通过QPlainTextEdit进行信息更新。但存在一个问题,可能在关闭exe时会因为访问已经release的对象造成内存溢出。确保了信号和槽的调用是异步的,即在接收者的事件处理线程中执行。可以使用以下方法进行log的记录。

2024-11-15 10:59:37 512

原创 C++ QT 工具日志异步分批保存

使用Qt的信号和槽机制,将文件写入操作异步化。您可以创建一个槽函数来处理文件写入,并在需要保存数据时发射一个信号,槽函数在接收到信号后异步执行文件写入操作。:类似于Linux的logcat技术,您可以将大量数据分批次写入文件,每次只处理一小部分数据,这样可以减少单次操作的时间,避免长时间的阻塞。这样可以确保主线程的响应性,不会因为长时间的文件操作而卡死。:将耗时的文件写入操作放在一个单独的线程中执行,这样可以避免阻塞主线程。多线程能力,将耗时任务交由子线程执行,避免主线程的长时间阻塞。

2024-11-12 09:52:00 502

原创 C++ QT 信号槽 connect

函数用于连接信号和槽。如果你尝试将同一个信号连接到同一个槽多次,Qt会确保槽函数被调用多次,每次信号发出时都会触发槽函数多次。槽函数中有状态改变或副作用,那么这些改变或副作用也会被多次执行,可能会导致逻辑错误或不一致的状态。:如果槽函数中涉及到内存分配或其他资源管理,多次调用可能会导致资源泄露或其他问题。槽函数会被调用三次。:这可能会导致不必要的性能开销,因为槽函数会被不必要地多次调用。,这样你可以根据需要处理这种情况,比如记录日志或者忽略重复连接。这样可以确保每次都是重新建立连接,避免重复连接的问题。

2024-11-01 15:15:19 629 2

原创 C++ QT checked和checkable

C++ QT checked和checkable除了checkbox还有什么控件具有该项特性

2024-09-04 17:26:52 862

原创 C++ QT QLineEdit如何限制输入

QLineEdit如何限制输入

2024-09-04 17:00:18 609

原创 C++ QT 一个log打印的相关学习

QT工具log记录

2024-09-04 16:20:53 640

原创 经历过的两款TestTool的架构简画

公司A野蛮而健壮基于Visual Studio ,以C++ 作为基础语言,用MFC写界面;测试对象是半模乃至整机阶段的手机;测试工具需要和手机、各个外部治具,Mes进行交互;使用者是各个自有工厂和代工厂公司B草创未久基于pycharm,以python语言进行脚本开发,没有UI界面测试对象是FPGA乃至整机阶段的蓝牙耳机测试工具需要交互的对象是耳机、手机,使用者是测试组成员。

2024-07-19 15:44:20 297

原创 C++ Debug:如何使用DbgHelp来为crash的release版本收集崩溃信息

【代码】C++ Debug:如何使用DbgHelp来为crash的release版本收集崩溃信息。

2024-04-09 09:36:18 456

转载 C++三特性之继承(2)

虚继承

2023-02-08 16:18:57 301

转载 C++ 三特性之继承(1)

三特性之继承(1)

2023-02-07 19:11:30 161

原创 逆序数对的个数和归并排序

逆序数对的个数和归并排序

2023-02-02 10:09:05 196

原创 贪心算法-nowcoder

贪心算法

2023-01-29 16:41:06 301

原创 python 多线程的学习历程

python 多线程的学习历程

2023-01-29 11:38:15 151

原创 最长递增子序列

最长递增子序列+动态规划

2023-01-17 19:42:16 143

原创 利用pylink下载hex/bin文件

利用pylink下载hex/bin文件

2023-01-06 16:50:48 977

原创 装饰器的使用

装饰器

2023-01-05 16:03:32 167 1

原创 Isochronous Broadcasting state

Isochronous Broadcasting state的spec相关

2022-07-25 20:47:25 719

原创 Classic BT/ BLE Set Event Mask

BT Event mask

2022-06-23 20:59:32 481

原创 低功耗蓝牙BLE-Advertising State/Scanning State

低功耗蓝牙BLE-Advertising State/Scanning State

2022-05-16 20:44:04 872 1

原创 低功耗蓝牙BLE-standby state

BLE-standby state

2022-05-16 17:12:42 338

原创 git 操作的一般流程

git的一般操作

2022-05-13 16:21:23 449 5

转载 C++ essential(Day 3)

函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下: data_types (*func_pointer)( data_types arg1, data_types arg2, ...,data_types argn);eg:intadd(intnLeft,intnRight);//函数定义该函数类型为int(int,int),要想声明一...

2019-06-05 21:54:53 232

原创 C++ essential(Day 2)(重载函数和模板)

重载函数(overload function) 在C语言中,不允许函数有同名函数,C++通过重载函数名来避免这类麻烦。你可以在同一个程序里使用同名的两个或多个函数。函数名重载可以让函数使用起来更“自然”。使用了重载的程序也更容易读和写。 C++中声明重载的函数跟声明其它函数没什么不同。只不过它跟其它的某个函数重名。重载函数必须使用不同的变量,否则编译器没法区分它们。...

2019-06-04 20:51:16 237

原创 C++ essential(day 1)

对于一个完整的程序,在内存中的分布情况如下图:  栈区: 由编译器自动分配释放,像局部变量,函数参数,都是在栈区。会随着作用于退出而释放空间。栈由系统自动分配,速度较快,在windows下栈是向低地址扩展的数据结构,是一块连续的内存区域,大小是2MB。 堆区:程序员分配并释放的区域,像malloc(c),new(c++) 。堆需要程序员自己申请,并指明大小,速度比较慢。在C中用mall...

2019-06-04 20:05:23 286

原创 tensorboard 遇到的错误

1.writer=tf.summary.FileWriter("./",sess.graph)可以将graph保存到当前文件夹2.利用G: ,cd dir进入gragh的上级目录3.tensorboard --logdir=new(new为graph保存的当前目录)4.可以获得Starting TensorBoard b'54' at http://DESKTOP-FUCN962:...

2018-07-17 10:22:34 875

原创 两个月的懈怠

Numpy的基础:import numpy as npa_array=np.arange(-10,10)#产生一个步进为一的序列,从-10到9a_array.shape=(2,10)#变为2*10矩阵a_array[(a_array%2==1)]=0#将其中奇数位赋值为0。c_array=np.arange(70)c_array.shape=(2,7,50)#或者c_carry.resh

2018-01-18 22:23:08 289

原创 Python Day10:另一个小练习

一次小练习,

2017-10-28 20:40:31 309

原创 Python Day9 :一个小练习

一次小小的练习

2017-10-15 15:57:30 482

原创 python Day11:Numpy里的一些基础

Nmupy里的一些

2017-10-10 15:23:53 376

原创 python Day8 :集合

集合的一些笔记

2017-10-08 14:35:46 339

原创 python Day7:dict的一些知识点

dict的一些知识点

2017-10-07 16:38:28 309

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除