- 博客(16)
- 收藏
- 关注
原创 基于模型-视图关联架构的HMI控制器控件界面与底层数据交互机制开发
本文提出了一种嵌入式系统开发中的动态界面生成方案。通过资源管理系统将控件属性以文本形式存储,采用单字符标识属性确保解析唯一性。设计通用属性结构体和解析函数,实现文本数据到内存结构体的自动填充。采用双向关联机制,在控件属性中保存数据指针,在数据结构中保存控件指针,形成模型-视图关联模式。该方法实现了界面元素与代码的分离,便于维护和动态调整,适用于需要频繁修改界面的嵌入式系统开发场景。
2025-12-05 17:58:47
109
原创 正则表达式在C/C++、NotePad++ 和 Python 中的应用差异总结
摘要:本文系统介绍了正则表达式在C/C++、NotePad++和Python中的实际应用。重点讲解了正则表达式的基础语法,包括特殊字符匹配、数量控制、位置锚点、字符组和分组捕获等核心概念,并提供了常见应用场景的代码示例。文章特别强调了转义字符的处理技巧和不同开发环境下的使用差异,最后总结了快速记忆正则表达式关键要素的口诀。通过具体案例展示了如何在文本处理、数据提取等场景中高效运用正则表达式。
2025-11-25 15:07:56
332
原创 QT异步多线程开发解决UI阻塞问题的关键点总结
语音处理控件运行时出现主线程UI阻塞问题,导致文本提示语显示异常。经分析发现,同步执行的语音识别函数阻塞了主线程,使Qt事件循环无法及时处理重绘事件。最优解决方案是将语音识别移至独立线程,通过信号槽机制实现线程间通信。具体实现包括:创建专门的工作线程类,实现识别逻辑;主线程通过信号触发识别任务,工作线程完成后再通过信号传回结果。这种方法有效解决了UI阻塞问题,实现了文本的依次显示。作为次选方案,可使用QApplication::processEvents()强制刷新UI,但不推荐频繁使用。多线程方案是更优的
2025-11-24 15:13:10
317
原创 基于AM67A的嵌入式语音识别开发(五)--QT项目集成和切换指令解析(精确查找)
本文介绍了将语音识别模型Vosk集成到实际项目的完整流程。首先验证了模型在终端设备运行的可行性,随后详细说明了项目对接的三个关键步骤:1)前期准备,包括配置项目路径和模型文件;2)语音识别核心代码移植,展示了音频解析和文本转换的实现;3)设计语音助手交互控件,包含UI布局、音频组件初始化及操作流程控制。测试采用点击触发方式,实现了从录音、音频处理到文本转换的完整功能链路,为后续集成全局语音唤醒等高级功能奠定了基础。
2025-11-20 15:06:06
272
原创 基于AM67A的嵌入式语音识别开发(四)--QT实现
嵌入式语音识别实现方案 本文介绍了基于Vosk API和QT框架的嵌入式语音识别实现方案。研究发现当前嵌入式板卡对图像处理的支持优于语音识别,因此选择开源Vosk模型作为核心,其特点包括提供C语言API、轻量化部署和多语言支持。实现过程分为三个主要步骤: 环境搭建:配置Vosk库文件和中文语音模型,设计项目目录结构 QT工程配置:设置.pro文件路径,实现音频加载和识别功能,包括WAV文件解析和JSON结果提取 界面设计:创建包含标题、文本框和功能按钮的GUI界面,并应用自定义样式表优化视觉效果 该方案特别
2025-09-15 15:53:37
833
原创 基于hpm6e00evk开发板的I2C驱动程序接口函数编写学习
最近和对象一起学习硬件入门时,完成了开发板驱动接口的API函数编写任务。我们主要参考了例程文件,最终整合成一个.h和.c文件。其中遇到的第一个问题是如何整理I2C模块的6个例程文件,这些文件包含了Polling、中断和DMA三种工作模式。
2025-09-15 10:23:08
285
原创 QT新手开发中遇到的一些字符串转换问题和常见错误
主要是值传递的问题,拷贝字符串(strcpy 或 strncpy),是直接拷贝复制,指针赋值(浅拷贝)则需要注意会出现指针悬挂或覆盖的问题。上个任务是在QT工程中做一个多语言切换的功能,其中针对不同控件做了不少接口,涉及到很多字符串类型转换问题,不堪其扰,抽空系统的整理一下。1.常用的三种类型:char, const char, QString。最常见的遇到一些从文件读取字符串时,可能出现各种状况。2.互相转换方法----特指。3.一些开发过程中遇到的问题。最后整理一下关于函数返回参数。
2025-08-28 15:37:08
239
原创 基于QT的控制器系统IO信号诊断功能实现(上)
文章摘要:本文介绍了IO诊断模块的开发过程,该模块用于检测系统输入/输出及模拟量信号。采用双模块设计(诊断模块和硬件配置模块),通过物理点和逻辑点映射实现灵活配置。重点讲解了点位分配算法、覆盖/交换功能的弹窗实现(包括替换、覆盖、取消按钮交互),以及强制功能的位运算处理。模块开发过程中暴露的问题使其成为新人锻炼的理想项目,体现了诊断系统在硬件测试中的重要性。
2025-07-15 16:23:11
886
原创 基于QT的画面控制器多语言切换和单位转换功能开发
本文总结了嵌入式设备多语言支持与单位转换功能的实现方法。针对车间设备使用频率低的特点,重点优化了成本控制、内存占用和维护难度。主要实现包括:1)按需加载资源文件;2)封装初始化函数提高可调试性;3)优化语言切换机制;4)简化词库维护流程;5)采用哈希表提升查询效率。通过分配唯一ID索引、构建轻量化数据结构、设计动态加载机制等方法,解决了多语言切换中的性能问题。文中详细介绍了词库制作、文件加载、数据库初始化等核心模块的实现,并分享了字符串处理等实用调试技巧。该方案在保证低频使用需求的前提下,有效提升了系统整体
2025-07-10 14:41:26
524
原创 基于AM67A的嵌入式语音识别功能实现(二):模型训练及转换onnx格式
本文介绍了基于MASR中文语音识别项目的部署与验证过程。作者选用AISHELL-1数据集,因设备限制将数据量缩减至7000条样本进行训练,在GTX 1060显卡上运行24小时后获得70%准确率的基准模型。通过测试样本验证了模型效果,展示了语音识别结果与真实文本的对比。最后,文章详细说明了将训练好的PyTorch模型转换为ONNX格式的完整代码流程,包括输入输出维度设置等关键细节。该项目为中文语音识别提供了一个可行的实现方案,为后续优化奠定了基础。
2025-07-09 22:13:37
211
原创 基于AM67A的嵌入式语音识别功能实现(三):虚拟机端编译及验证
摘要: 本文介绍了三种在TIDL SDK中编译和验证ONNX模型的方案: .prototxt配置方式:旧版方法,需配置prototxt文件指定模型参数,执行tidl_model_import.out进行编译,但可能存在路径问题。 YAML模板导入:新版推荐方法,通过model_list.yaml配置模型路径、量化选项等,运行run_import_on_pc.py生成部署文件。 TVM+Python编译:适用于语音等序列模型,需配置TVM环境,调用tvm.contrib.tidl.compile编译模型,生成
2025-07-09 18:05:46
1108
原创 基于AM67A的嵌入式语音识别功能实现(一):镜像烧写和虚拟机编译环境搭建
**摘要:**本文详细介绍了TI AM67A开发板的镜像烧写与配置流程,包括SD卡烧写、启动模式设置、串口连接和网络配置。同时提供了虚拟机编译环境搭建的完整步骤,重点解决Docker构建中的常见问题(如网络超时、依赖冲突等),并给出优化方案(国内镜像源、手动安装依赖等)。通过SOC环境变量设置完成工具链配置,为后续模型部署提供基础环境支持。
2025-07-09 16:03:22
846
原创 基于AM67A的嵌入式语音识别功能实现(前言)
摘要:本文分享了在注塑机控制器中集成AI功能的开发经验。项目包含语音识别(语音转文本、指令识别、人机交互)和图像处理两大模块,旨在提升设备智能化水平。开发过程中面临硬件操作生疏、外文文档查阅、功能自主开发等挑战,通过系统学习成功实现功能部署。文章还探讨了车间收音优化、云数据库搭建等后续技术难点,为工业设备智能化转型提供了实践参考。(150字)
2025-07-08 21:41:45
290
原创 VS2010连接MySql数据库的方法
最近做C#项目的时候需要用到这个功能,网上方法不太全面,这里总结一下:1.打开VS2010,创建一个窗体应用程序,右击解决方案,点击添加引用2.最困扰的点,需要引入一个MySql和VS连接的数据文件,网上不是很清楚,这里上传给大家链接:https://pan.baidu.com/s/1aV2PDXZy5SznLEsKakb1Nw提取码:7cm93.代码上面写入using MySql.Data.MySqlClient;using MySql.Data;其他部分如下所示:完成,若有什么问
2020-08-31 22:10:37
1420
1
原创 基于WebGIS使用高德JS API实现自定义路径规划
在项目中我们可能会用到直接在网页前端输入经纬度坐标或地名来规划路径,当然,规划路径这块高德已经做好了,下面主要是实现如何在前端输入字段达到显示路径目的,首先,看下我的网页前端效果:注释:这里为什么要把经纬度分开呢,主要还是因为之前的方法,更好的让坐标数组化,方便JS识别,详情可见上篇博客:Django中引用高德JS API并实现数据库存放后台的一种思路1.我们先写好html中的代码,最开始我用的Form表单,提交后老是自动刷新,获取值变得尤为困难,后面改成一般的input之后问题得以解决,我这里用
2020-08-20 17:56:49
3351
9
原创 使用Django做WebGIS项目中关于高德JS API数据交互的一种思路
Django中引用高德JS API并实现数据库存放后台的一种思路首先看下我做的页面主要功能这里面两个功能,一个添加点,一个路径回放功能,需要一些点的数据,但是高德API的框架是必须将数据写在JS文件中,加上Django框架数据只能渲染到前端HTML页面中,并不能写到js中,实际开发中肯定是需要写在数据库中的,所以需要一点优化。常用办法肯定是用AJAX获取数据渲染,但是这里有一点不同之处,通常AJAX获取数据后还是要渲染到html容器中,如下图:尴尬的是,高德JS API的调用在html的位置并没
2020-08-16 16:29:31
1630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅