EchoSight开发记录
蒋志强
我会不定期的更新 开发进展。最近更新进展于2024年1月15日
1.背景
由于某些不可抗逆的原因,离开了以前的彩超大厂,竞业在家,难得有空闲的时间。我计划利用这段时间 自己独立 从零开始 搭建一套 彩超系统的软件工程框架。这个框架的设计水准力求达到目前商业级产品中 第一梯队 的水平。
这套工程框架,我暂时取名为EchoSight。Echo表示声音/回声,Sight本意为视野/看见的意思,所以EchoSight就是通过超声成像的意思,非常务实;开发基本完成后,如果没有什么特别原因,我会把程序分享出来(可执行程序),请各位业内大牛指教。
作为目标达到商业级 优秀的工程框架,EchoSight需要满足很多的要求,包括:
1. 框架的可扩展性;
2. 框架的高度灵活配置性;
3. 后续扩展开发的模块独立性与低耦合,以及模块的封装;
4. CPU线程调度的安全高效与透明简单;
5. CPU SIMD与GPU执行的高效实时性;
6. 离线仿真配置与在线运行配置的近似性与可替换性;
7. 彩超链路分析与输出的便捷接口;
8. 工程框架与matlab良好的联调机制;
其它更多 TBD...
因此,这会是一个满大的挑战,特别是对我自己一个人独立开发而言。自己最终在这段时间内能做什么程度,我自己也不知道。这样挑战的单人项目,已经处于我个人能力圈的边缘地带,能做成什么样,实践是检验能力的唯一标准。干,就得了,生死看淡,不服就干!
随着项目的推进,也许自身在系统上的短板或工程的短板就暴露出来了,补上了,自己能力圈也就扩大了。
2.开发进展记录
2.0 初步构思
(难以记时)
基本框架思路成型,然后又推倒几次,目前觉得基本可行。
2.1服务器搭建 完成
(2023年12月15日)
工程代码,开发设计文档,系统仿真内容 SVN服务器搭建完成。
Q:为啥不用GIT ?
A:GIT用得不熟,SVN用得多。开发的辅助工具,不在这些无关紧要的东西上本末倒置。
2.2 基础类的设计与多线程策略
(2023年12月25日)
基础类框架的设计开发第2次推倒重构,C++从ISO C++11改为C++20,以便使用C++最新特性设计。各模块空转情况下,多线程运行正常;
2.3 离线数据模块工作正常与多模块配置正常
(2023年12月30日)
通道数据仿真模块连线,注入数据正常,与其它各模块多线程配合未见异常。
扫查序列定义解析 正常,链路多模块配置与运行时自动搭建正常,XML解析正常;
2.4 Matlab仿真数据与工程匹配
(2023年01月09日)
仿真数据不能完美符合自己的需求,重新实验多种仿真工具field II, KWave, Focus,PField,MUST等。顺便还发现了某仿真平台里的又一个BUG,与作者联系(这是我发现他的第二个BUG了)。
更新开发设计文档。更新标准IQ波束合成模块,B模式模块。软件连线工作正常,图像结果异常,调试进行中...
2.5 数据解包模块重构与波束合成更新
(2023年01月15日)
解包模块重构,支持任意FPGA打包策略。matlab仿真找到折中方案,满足需求,更新离线数据。
标准IQ波束合成模块调试,解决若干BUG(调试脱了一层皮),更新MLA支持,更新变迹计算的更优策略。
标准IQ波束合成 工程输出 与 matlab输出 基本匹配,未见明显异常。节前 重要 阶段性节点!