自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

丁劲犇技术发布空间

技术无止境,踏实是正途。

  • 博客(311)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 开源玩具总动员-本博客的知识关系图

作为一个非全职编程爱好者,基本是把计算机周边当做高档大玩具来玩的,顺便带着有兴趣的学生搞一搞学习。这篇文章作为全站的一个导航篇,把本博客的主干要点汇聚一下。

2024-03-06 20:56:19 1150 2

原创 热烈庆祝长三角师范院校智慧教学大赛圆满结束

第五届长三角师范院校教师智慧教学大赛于2023年12月19日顺利结束。安徽师范大学、淮北师范大学均获得一等奖。感谢所有参赛学校老师们的努力!我的母校从安徽师范大学淮北分校、淮北煤炭师范学院一路走来,朝气蓬勃,踏实耕耘,沉稳坚韧,祝愿学校越办越好。

2023-12-23 13:13:09 184

原创 自然语言模型的哲学小谈

近期,以chatGPT为代表的大语言模型表现非常惊艳。,以及推理能力,很难不让我们期待未来人工智能的发展,同时冷静思考一下为什么自然语言模型能够取得巨大进步。本文从科普的角度,探讨思维的形成,以及思维与自然语言之间的关系。

2023-04-22 20:26:18 1741 1

原创 从《三体》科技爆炸看50年来计算机的应用发展

作为一个老程序猿,没有完整看过《三体》原著一直以来是我的遗憾。最近刚因为《流浪地球》的原因,趁热打铁拜读了刘慈欣的原著,真的太震撼了。站在老程序猿的角度,这部鸿篇巨制真的大饱口福,回味无穷。老丁比刘慈欣先生小十几岁,是标准的75后,也是从78-80这段时间有了最初的记忆。对近50年来生活的变化,用作品里“科技爆炸”这个词形容再合适不过,能够亲自见证以计算机技术为代表的科技发展,是属于老程序猿的幸福。

2023-03-13 22:47:37 750

原创 小学阶段计算机编程启蒙闲谈

最近闲来和一位退休的小学老师聊天。他教数学,兼任信息学老师,便聊到小学阶段的计算机编程启蒙。聊的很有兴趣,也感慨科技的发展。1 第一代儿童编程启蒙改革开放之后,邓爷爷提出,计算机要从娃娃抓起。小学最早一批计算机教学,使用的是中华学习机,主要教学内容是计算机操作、打字以及简单的编程(LOGO、BASIC)。在教学实践中,由于缺少图形化的编程教学工具,教育工作者考虑到学生语文、数学,尤其是英语(笔.........

2020-01-30 21:52:58 5062 1

原创 浅谈普通大专院校的计算机基础教学注意事项

笔者陆续在普通大专、本科、职业技术院校从事计算机基础学科教学多年,对如何提高学生自身的主观能动性,做好计算机能力教学有很多思考与尝试。为师者的坚持我们几个教学一线的老师,基本坚持亲自动手做教学实验素材,并把并不充裕的研究金费用到刀刃上。指导学生学到东西的同时,更重要的是教学生尽快适应更高台阶的需求,让高考并不是很顺利的学子们,能够抓紧宝贵的3~4年机遇,学到真本领、成就自己。要么尽快适应职......

2018-06-13 22:12:02 1158 5

原创 基础软件国产化闲谈

现代软件是高度国际化的,在互联网上,传播、发布易如反掌。我们普通人更不会不去关心这些东东都是哪个国家的。事实上,很多时候真的说不清楚,开源项目有各个国家的团队参与,那么,为什么还要再扯国产化这个蛋疼的话题呢?笔者认为,软件国产化讲的是“基础软件国产化”,基础软件是孕育大师的舞台,基础软件和开源社区紧密绑定,基础软件改善行业环境。...

2016-08-29 20:55:00 9591 3

原创 穿越时空的纪念册

整理屋子,故纸堆中翻出了93年的电脑报合订本,偶有兴趣的翻看了一下,一不小心就荒废了一下午。跟随着编辑的脚步,脑海中记忆的门缓缓的开启了。 还记得SPDOS+WPS吗?我是93年在中学机房接触SPDOS 1.0 + WPS的,坐在长城单色显示器边,战战兢兢地输入“SPDOS”,"B:","WPS",“西山DOS”系统便启动了。当时特别喜欢GW-Basic, QB...

2012-07-04 00:10:10 5674 10

原创 使用Manjaro制作SDR业余软件无线电LiveDVD发行版

本文详细介绍了如何基于Manjaro Linux定制开箱即用的LiveDVD系统。文章首先说明如何通过修改Packages-Desktop文件预装Qt开发工具、SDR软件(如GNU Radio、Gqrx)、数据库等必要软件包,然后指导将代码资源和UHD FPGA镜像拷贝到Live系统目录。通过buildiso工具构建ISO后,建议在虚拟机中测试并同步配置修改,最终制作成U盘启动盘。该定制系统集成了开发环境、无线电工具和科学计算软件,可直接引导物理机使用,无需安装系统即可获得完整功能。

2025-12-29 21:38:45 392

原创 使用AI辅助开发SDR-多相滤波DDC/DUC工具核心原理详解

本文介绍了软件无线电中数字上下变频(DDC/DUC)的多相滤波实现技术。重点分析了传统方法的冗余计算问题,提出多相滤波通过拆分滤波器和交换操作顺序来提升效率。文章详细阐述了多相滤波的数学原理,包括滤波器"分身术"和零元素排除机制,并给出了环形缓存和索引预计算等关键工程实现技术。通过代码示例展示了如何在实际应用中高效处理不同采样率信号的转换与合路输出。该技术相比传统方法显著减少了计算量,适用于SDR系统的处理需求。

2025-12-20 22:22:59 677

原创 全面测试QtSql操作PostgreSQL数据库时戳字段的行为

本文详细测试了Qt SQL模块操作PostgreSQL时戳字段时的各种行为差异。通过双层模拟测试(操作系统时区×QDateTime时区×SQL会话时区×SQL绑定方式),共产生54条测试记录。测试程序基于Qt 6.10.1开发,模拟了北京、芝加哥、伦敦三种操作系统时区,测试了本地时刻和UTC时刻两种QDateTime对象,以及三种SQL会话时区(UTC、北京、芝加哥)和三种绑定方式(QDateTime对象、无时区字符串、有时区字符串)。旨在全面分析不同组合下时戳字段的行为,指导实际应用中的数据一致性排查。

2025-12-13 14:24:50 969

原创 Visual C++下使用Win32 API为Release模式导出崩溃堆栈

本文介绍了在Windows环境下生成崩溃转储文件(dmp)的方法。通过Win32 API和DbgHelp库实现了异常代码转字符串、获取系统信息、解析调用堆栈等功能。核心代码展示了如何初始化符号引擎、遍历堆栈帧并生成详细的崩溃报告,支持x86/x64架构区分,可用于调试定位程序崩溃问题。相关实现已开源在Gitcode项目中。

2025-12-06 11:28:24 953

原创 MSYS2下使用libbacktrace为MINGW编译器Release模式导出崩溃堆栈

文章摘要: 本文介绍了在MSYS2/MinGW环境下使用libbacktrace库实现程序崩溃堆栈回溯的方法。作者针对Windows平台下MinGW编译器难以生成PDB调试文件的问题,提出了基于libbacktrace的解决方案。文章详细说明了安装libbacktrace库的步骤,并提供了一个完整的工具头文件实现,包含信号捕获、堆栈回溯和日志记录功能。该方案支持自定义日志路径,能捕获SIGSEGV等常见崩溃信号,并输出详细的调用栈信息(函数名+行号)

2025-12-01 22:07:40 693

原创 使用gitea和git管理发布MarkDown格式的技术文章

本文介绍了如何利用Gitea托管技术文档的方法。通过导出Markdown和HTML格式文档,使用Python脚本替换图片链接,将CSDN等平台的技术文章迁移到Gitea进行集中管理。文章详细说明了文档下载、图片处理、链接转换等步骤,并展示了通过Excel生成目录分类的方法。虽然不同平台的Markdown渲染引擎存在兼容性问题(如公式、Mermaid图表),但Gitea仍可作为团队技术文档管理的有效解决方案。这种方法既能实现代码托管,又能统一管理技术文档,提高了团队协作效率。

2025-11-30 11:31:19 871

原创 业余无线电收卫星系列(2)-实现天线姿态与卫星速率输出与应用

本文介绍了如何将业余无线电卫星跟踪模块集成到qplanetosm GIS平台中,并实现与TaskBus系统的数据交互。首先通过Celestrak开放数据和开源C++代码获取卫星的方位、俯仰和径向速率等关键参数,然后在orbit插件中将这些数据封装为事件广播。系统通过stdin/stdout与TaskBus对接,使用监听器模式实现事件分发,最终将卫星跟踪数据输出为可被其他模块使用的标准化格式。文中还展示了该模块在UHD射频补偿中的应用,通过全局变量记录实时速度和补偿频率,为卫星通信提供动态频率校正。

2025-10-30 19:34:59 771

原创 现场工程师抓狂-PostgreSQL跨区域WAL复制诡异故障排查:MTU惹的祸

介绍了因为运营商MTU和大区机房交换MTU不匹配导致的PostgreSQL大流量数据中断导致的诡异故障。

2025-10-30 13:06:05 699

原创 业余无线电收卫星系列(1) C++/Qt从源码搭建卫星轨道跟踪模块

本文介绍了利用开源卫星轨道预测工具实现业余无线电卫星跟踪的技术方案。作者基于Michael F. Henry教授的开源C++代码库,在自研GIS工具中集成了轨道预测功能。该方案采用TLE星历标准数据,通过SGP4/SDP4算法模型计算卫星位置,可预测低轨卫星运动轨迹。文章详细解析了TLE格式规范及实现原理,并提供了示例代码展示如何获取卫星位置信息。此外,作者还针对多普勒频移效应进行了USRP B210模块的频率补偿设计,为后续接收气象卫星云图做准备。该工作将专业级卫星跟踪功能引入开源GIS工具.

2025-10-26 14:15:43 707

原创 使用B210在Linux下实时处理ETC专用短程通信数据(5)-业余软件无线电户外经验

本文分享了业余软件无线电户外实践的经验要点:1)推荐高性能便携计算机配置,强调实时Linux内核和散热管理;2)介绍通过调整天线距离和增益解决强弱信号接收难题;3)提供不同户外场景的供电方案,包括车载逆变和太阳能锂电池组合;4)着重提醒需严格遵守无线电法规,包括频率使用限制、敏感区域规避和信息安全等注意事项。文章结合图表数据,为业余爱好者提供了兼顾性能与合规性的实用操作指南。

2025-09-14 19:47:00 948 2

原创 使用B210在Linux下实时处理ETC专用短程通信数据(4)-CPU单核实时处理56MHz带宽4频点16bitIQ

本文介绍了基于B210 SDR设备的56MHz带宽实时处理方案,重点解决ETC系统上下行4频点数据的采集与解调问题。实验采用i7-6700K处理器和Linux系统,配置B210以56MHz采样率覆盖5790-5840MHz频段,实现了单核CPU实时处理4个频点16bit IQ数据。文章详细说明了硬件配置、软件参数设置及核心处理算法,包括下采样、FM0解调、HDLC帧提取和CRC校验等关键步骤。通过优化处理流程,该系统能够在无磁盘存储限制下充分释放B210的带宽潜力,为ETC信号分析提供高效解决方案.

2025-08-25 06:30:00 848

原创 使用B210在Linux下实时处理ETC专用短程通信数据(3)-SDR平台集成

本文介绍了将ETC信号处理模块集成到taskBus平台的过程。该模块能够实时处理20MHz采样的IQ数据,解析ETC ClassA基础ASK波形和FM0编码,支持上下行链路切换。作者分享了模块的功能设计、代码实现方法,以及在实际测试中的表现。整个系统在高端硬件上运行流畅,处理20M数据时性能优异。

2025-08-19 12:40:47 1034

原创 使用B210在Linux下实时处理ETC专用短程通信数据(2)-CPU单核高速数据处理

本文介绍了使用C语言重写Octave程序,实现实时处理ETC车联数据的方法。通过三个关键优化:1)采用全静态内存分配,避免动态内存频繁开销;2)使用环状缓存技术动态刷新均值信息;3)实施无滤波降采样降低CPU负载。测试表明,该方法能在1-2秒内处理1GB的20M采样数据,显著提升处理效率。完整代码已开源,适用于OBU到RSU的Class A AM FM0差分曼彻斯特编码解调。这些优化使系统在普通PC上也能实现稳定实时处理,为ETC车联应用提供了高效解决方案。

2025-08-19 11:35:18 784

原创 使用B210在Linux下实时处理ETC专用短程通信数据(1)-基本原理

本文介绍了业余软件无线电爱好者如何通过录制ETC系统的DSRC通信波形,结合国家标准GB/T 20851进行分析的过程。文章详细描述了使用B210软件无线电设备进行波形采集的技术方案,包括采样率选择和触发机制优化。通过Audacity和Octave工具对波形进行初步分析,发现下行链路采用14K波特的唤醒方波和256KBd的调幅信号,上行链路则为512KBd调幅波形。研究过程中还发现ETC系统使用了一种特殊的FM0差分曼彻斯特编码,需要通过比较前后比特变化来正确解码。文章展示了如何通过编写MATLAB代码实现

2025-08-18 06:30:00 1031

原创 开源软件与文化:从嬉皮士精神到数字时代的协同创新

摘要:开源软件从嬉皮士文化和黑客伦理中孕育,经历了自由软件运动的洗礼,最终演变为全球技术创新的重要范式。始于Richard Stallman的GNU计划和Linus Torvalds的Linux内核,开源理念通过"大教堂与集市"模式获得广泛认同。如今,开源已超越技术范畴,成为推动数字经济发展的核心力量,中国等国家正积极参与全球开源生态建设。从反主流文化到主流商业应用,开源运动展现了技术民主化的强大生命力。

2025-08-07 21:20:07 1263

原创 现场工程师的好搭档--借助AI五分钟盘活内核滚挂的Manjaro系统

本文记录了作者在Manjaro系统内核更新时遭遇停电故障的修复过程。由于停电中断了内核更新,导致/boot目录下关键文件缺失,系统无法启动。作者通过AI指导,使用VirtualBox虚拟机作为救援环境,挂载损坏的移动硬盘系统分区,进入chroot环境后重新安装linux612内核包并重建initramfs文件,成功恢复了系统启动能力。整个过程展示了AI在系统故障诊断和修复中的实用价值,以及现场工程师灵活运用技术工具解决问题的能力。

2025-08-02 21:09:01 1110

原创 Qt Graphs 模块拟取代 charts 和 data visualization的技术测试

Qt 6.10将弃用charts和data visualization模块,功能将合并到graphs模块。这一重大API变化需要开发者注意兼容性问题:1) QML渲染器依赖3D加速,在虚拟机或老旧硬件上性能较差;2) graphs模块强制使用QML混合编程,增加了C++调用QML的复杂度。测试代码展示了如何通过QQuickWidget集成graphs模块,实现动态折线图功能,包括数据刷新和交互事件处理。开发者需评估现有应用对这些模块的依赖,提前规划迁移方案。

2025-07-19 15:39:26 1395 4

原创 用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame

本文介绍了如何在Qt框架中集成Turbo Vision字符界面库。通过将Turbo Vision的事件循环运行在独立线程中,实现了与Qt主线程的并行运行。作者展示了如何改造Turbo Vision的编辑器示例,使其成为Qt应用程序的一部分,包括: 下载并编译开源的Turbo Vision库 创建Qt控制台项目并配置工程文件 使用QtConcurrent在子线程运行Turbo Vision事件循环 通过多重继承将QObject与TApplication结合 改造编辑器示例代码使其兼容Qt环境

2025-07-05 20:13:02 892 3

原创 在VSCode中借助AI丰富C++Qt应用程序

本文介绍了如何利用VSCode搭配国产AI助手辅助Qt开发。作者对比了VSCode与传统IDE(QtCreator/VS)的差异,指出VSCode凭借开源特性、可扩展性和语言支持优势,成为AI插件最丰富的编辑器。文章详细讲解了VSCode环境下Qt项目的配置流程,包括安装Qt扩展包、CMake工具链选择及调试配置。针对qmake与CMake的取舍,作者分析Qt正逐步向CMake过渡的趋势。最后推荐使用VSCode+CodeGeeX的组合,发挥AI在代码补全和注释生成方面的优势,提升Qt开发效率。

2025-06-10 07:26:01 1600

原创 开始在本地部署自己的 Gitea 服务器

本文详细介绍了在Windows 10系统上部署轻量级开源代码托管平台Gitea的完整流程,包括下载安装、初始配置、SSH服务器设置等关键步骤。作者对比了Gitea与Gitblit的特性差异,指出Gitea在社区活跃度、资源占用和现代化功能方面的优势,同时也分析了Gitblit在用户界面和仓库组织上的优点。文章还探讨了个人开发者使用版本控制系统的必要性,强调Git在代码版本管理、本地实验性开发等方面的实用价值。对于需要搭建个人代码仓库的开发者,本文提供了切实可行的部署方案和配置建议。

2025-06-05 19:57:55 3256 3

原创 基于Qt的MCP LLM代理服务开发实战:从0到1扩展大语言模型

摘要 本文介绍了如何利用Qt框架开发符合MCP协议的AI代理服务器,实现科学计算领域C++算法与AI工具的对接。文章首先阐述了MCP协议的核心功能,包括服务初始化、工具列表查询和工具调用等JSON-RPC交互流程。随后详细讲解了基于Qt 6.9的开发环境搭建和项目结构设计,重点展示了初始化流程和工具列表查询的代码实现。该方案通过轻量级封装现有C++计算功能,为传统科学计算系统赋予AI调用能力,兼具开发效率和性能优势,是连接科学计算与大语言模型的有效桥梁。 关键词:MCP协议、Qt开发、AI代理、科学计算、工

2025-05-28 21:30:21 1833 2

原创 范式之殇-关系代数与参照完整性在 Web 后台的落寞

最近参加了一个PostgreSQL相关的茶会,感慨良多。原本话题是PostgreSQL 在 SELECT 场景中凭借其成熟的查询优化器、丰富的功能特性和灵活的执行策略,展现出显著优势。结果后来,就跑题了,原因是有人提出这些特性其实用的极少。笔者饶有兴趣地听完了全程,很感慨。本文就围绕 “范式之殇 - 关系代数与参照完整性在 Web 后台的落寞” 这一主题,讨论为什么关系代数在非金融行业不再流行。

2025-05-09 22:11:07 1273

原创 桌面大爷学Web(1) 使用 vite + vue创建第一个app

一直以来都是Qt + PostgreSQL的桌面开发者,对Web做的很少,很想有空体验一下做一个完整的Web应用的感受。咨询了朋友,推荐node.js和vite+vue组合,今天就来试试。全程使用AI辅助学习,不懂就问,棒极了。后续准备系统学习一下vite+vue的编程,最终看看能不能和我的其他专栏如 PostgreSQL、OpenStreetMap、Qt、软件无线电联系起来。

2025-04-22 22:20:04 710

原创 DeepSeek协助优化-GTX750Ti文物显卡0.65秒卷完400MB float 音频512阶时域FIR

从不熟悉CUDA,到使用CUDA完成了性能还可的滤波器,用了4个小时。我用自己的文物显卡 NVIDIA GeForce GTX 750 Ti (Compute Capability 5.0),只有2G的显存,1G的主频,做时域512点fir卷积,竟然只需0.65秒就跑完100M float数据(411MB文件大小)。最近在学习cuda,准备给我的taskBus SDR添加CUDA的模块支持,以便可以用PC机压榨山寨 B210那56M的带宽。通过反复迭代,得到了希望的结果。

2025-03-30 17:15:13 1504

原创 为msys2 qtcreator 添加minimap插件显示滚动条缩略图

minimap插件是KDE和VS里非常好用的滚动条插件,但是一直以来,QtCreator里都没有默认安装。近期有国外大佬 cristian-adam已经在github上更新了最新的版本,可以用了!本文介绍了安装方法,效果,以及概略介绍了工作原理。

2025-03-03 08:00:00 401 1

原创 国产OS上完整编译Qt5.15、搭建基本开发环境需要的库

近期有师弟问我国产OS安装Qt5.15编译老是不完整,不是没声音,就是没视频,或者没有xcb。通过QEMU模拟Arm64,闲来20几天摸索,完整编译了Qt5.15,并编译成功了我的SDR玩具taskBus。使用DeepSeek,协助生成了包的列表.

2025-02-23 13:42:14 1107

原创 碳基生物的悲歌-DeepSeek思考实现Linux动态库递归收集工具

这是碳基生命的悲歌,还是地球文明的拐点?今天因为复杂的Linux so 依赖问题,想写一个递归ldd收集所有依赖的工具。抱着试试看的态度,问了DeepSeek,经过5分钟的思考,给出的脚本一次运行通过,我的天,它的思考过程让我害怕。

2025-02-22 23:10:32 1318 1

原创 叹为观止--基于ollama + PageAssist / AnythingLLM 部署32b单机版DeepSeek

本文介绍了利用开源框架ollama和浏览器扩展Page Assist、开源前端AnythingLLM运行DeepSeek的过程,并测试满血版的思考能力,非常惊人!32b的中配版也可以很好的作为助手对本地数据进行初步的筛选和摘要。

2025-02-15 22:39:05 1072

原创 使用 MSYS2 qemu 尝鲜Arm64架构国产Linux系统

近期,我的师弟咨询我关于Arm64架构的国产CPU+国产OS开发工具链问题。他们公司因为接手了一个国企的单子,需要在这类环境下开发程序。说实在的我也没有用过这个平台,但是基于常识,推测只要基于C++和Qt,应该问题不大。

2025-01-28 21:47:11 1475 1

原创 2025年1月OpenStreetMap渲染工具链技术变化和数据导入情况

2025年,又是一年。不知什么时候,导入OpenStreetMap离线数据成了我折腾电脑的一个习惯。本文记录了新的技术变化

2025-01-14 07:45:00 1904 1

原创 在无GUI的Linux系统中使用字符图案和VNC运行Qt Widgets程序

大部分服务器并没有GUI,运行的是基础的Linux系统,甚至是容器。如果现实情况不允许我们安装图形界面,是不是就完全无法使用这些程序了呢?答案是否定的。本文介绍如何在字符界面下使用Qt GUI程序。

2025-01-01 08:30:00 859

原创 慧眼识珠-基础科研团队可选择MSYS2全栈工具链

计算机是碳基大脑的延伸,选择合适的工具,会显著降低学习成本,提高你的效率。本文介绍了非IT行业的工程师如何选择工具链的技巧。

2024-12-22 09:15:10 1290 1

openOBD MSYS2 Ucrt64 构建版

老车年检前想自己读取OBDII状态,一般开源的软件是 openOBD. 但是它依赖 wxWidgets,编译不简单。好在有MSYS2,我们直接编译了一个64位的版本,供使用。选择相应连接线的速率,即可读取内容。一般速率是38400,也有9600的,都试试看。一般启动后直接显示已连接说明速率对了。如果界面卡死,说明速率不对。OBD线在网上买个几十块的就行了,OBD转USB,而后笔记本连上就能读。

2024-12-07

Lenovo T490 温度墙修复软件

客户使用LenovoT490 win11 跑GQRX SDR,接入SDR在5MHz采样率下,机器卡顿。这对于10代i7CPU显然是不正常的。后续发现上网页也卡,卸载杀毒、重装系统、BIOS电源设置、系统最大性能、主动散热全部设置后,故障依旧。 下载安装 TPFanControl,我下载的是0.63。安全第一,首先保证风扇能够强力运行,吹得手暖和。下载安装Throttlestop, 关闭 BDPROCHOT 以及 TPL 中对两个Limits进行锁定。 https://goldenhawking.blog.csdn.net/article/details/135313297

2023-12-31

基于Qt的多线程流水线异步服务器稳定版

本资源设置1个资源分,您可以下载作为捐献。 如果您有Git,还可以从http://www.goldenhawking.org:3000/goldenhawking/zoom.pipeline直接签出最新版本 (上一个版本“一种可伸缩的全异步C/S架构服务器实现”是有问题的,现在已经完成更改)。 服务由以下几个模块组成. 1、 网络传输模块。负责管理用于监听、传输的套接字,并控制数据流在不同线程中流动。数据收发由一定规模的线程池负责,实现方法完全得益于Qt的线程事件循环。被绑定到某个Qthread上的Qobject对象,其信号-槽事件循环由该线程负责。这样,便可方便的指定某个套接字对象使用的线程。同样,受惠于Qt的良好封装,直接支持Tcp套接字及SSL套接字,且在运行时可动态调整。(注:编译这个模块需要Qt的SSL支持,即在 configure 时加入 -openssl 选项) 2、 任务流水线模块。负责数据的处理。在计算密集型的应用中,数据处理负荷较重,需要和网络传输划分开。基于普通线程池的处理模式,也存在队列阻塞的问题——若干个客户端请求的耗时操作,阻塞了其他客户端的响应,哪怕其他客户端的请求很短时间就能处理完毕,也必须排队等待。采用流水线线程池避免了这个问题。每个客户端把需要做的操作进行粒度化,在一个环形的队列中,线程池对单个客户端,每次仅处理一个粒度单位的任务。单个粒度单位完成后,该客户端的剩余任务便被重新插入到队列尾部。这个机制保证了客户端的整体延迟较小。 3、 服务集群管理模块。该模块使用了网络传输模块、任务流水线模块的功能,实现了跨进程的服务器ßà服务器链路。在高速局域网中,连接是快速、稳定的。因此,该模块被设计成一种星型无中心网络。任意新增服务器节点选择现有服务器集群中的任意一个节点,接入后,通过广播自动与其他服务器节点建立点对点连接。本模块只是提供一个服务器到服务器的通信隧道,不负责具体通信内容的解译。对传输内容的控制,由具体应用决定。 4、 数据库管理模块。该模块基于Qt的插件式数据库封装QtSql。数据库被作为资源管理,支持在多线程的条件下,使用数据库资源。 5、 框架界面。尽管常见的服务运行时表现为一个后台进程,但为了更好的演示服务器的功能,避免繁琐的配置,还是需要一个图形界面来显示状态、设置参数。本范例中,界面负责轮训服务器的各个状态,并设置参数。设置好的参数被存储在一个ini文件中,并在服务开启时加载。 6、应用专有部分模块。上述1-4共四个主要模块均是通用的。他们互相之间没有形成联系,仅仅是作为一种资源存在于程序的运行时(Runtime)之中。应用专有部分模块根据具体任务需求,灵活的使用上述资源,以实现功能。在范例代码中,实现了一种点对点的转发机制。演示者虚拟出一些工业设备,以及一些操作员使用的客户端软件。设备与客户端软件在成功认证并登录后,需要交换数据。改变这个模块的代码,即可实现自己的功能。

2014-06-07

gqrx-spectrogram.zip

从开源项目gqrx中提取的时频图显示控件。由于原版做的非常棒,可以直接拷贝使用。建议下载本项目后,从github下载最新版的相应文件后覆盖,这样可以一直保持最新。

2020-01-26

UHD 3.15 FPGA镜像

USRPUHD3.15, 和 PothosSDR-2020.01.26-vc14-x64配合,用于GNURadio的加载。

2020-12-05

世界地名对照表Postgres 9.1 导出

拉丁语系、斯拉夫语系的世界地名和中文翻译对照表,postgresql 导出 (9.1),UTF-8编码。 请安装PostgreSQL 后,直接restore即可。

2012-09-08

Qt FCGI 例子

在与APP接口的后台WebService开发方面,估计很少有人直接使用C接口的libfcgi-dev进行开发的了。但是,这不代表此方法是不可行的。在强大的Qt库的支持下,原来使用C++开发webService也是非常方便的。这里我们以获取OpenStreetMap数据库中的地理信息为例子,看看现代C++的威力。

2020-10-12

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

TA关注的人

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