Flowshutter源码分模块阅读.1(主干)

原创 云深之无迹 2022-05-20 12:24


太勤快了,点子太多了,生产队的猪都没这么勤快。


其实前面的几篇文章就相当于阅读完毕,只是代码进行了较大规模的改变,所以这里重新读,安装功能模块更新若干篇,感谢姜主任的持续工作!



谢谢,次次拉下来的代码都不是最新的


目前看,这个库已经很完善了,最近最大的变化就是全部面向对象的重写,大概重构了1300多行。



是的,改完的代码清爽了许多~


其次就是速度的提升,使用了一种探针(其实就是加了计时代码):



就像这样



作者言传身教(因材施教?)他最近脾气挺好哈



果然又失去了理智


因为mpy虽然开发速度很OK,但是它太慢了,所以就需要找到拉跨的代码,这也是探针出现的缘故。



对了这东西不叫探针,应该叫时间戳?



实例化的时候会被打印出来



可以看到关于时间运行的结果,这个结论就是:从boot出来之后到第一个I2C被例化 中键隔了能有3.3s。



另外OTA的功能也完善了,就是缺个美工:



其实看着还不错


另外也调整了一些文件的实现行为:



主要是再不写,可能明天就又更新了



另外值得一提的是,使用visio重新绘制的图,有点好看~~~



示意图




另外,看看人家的项目主页



再看贡献者,哟,还有我呢!


因为更新的快速,所以这里使用了桌面的Github,做增量的下载:



写HTTPS链接



注意需要科学上网


一次写完肯定不好,因为代码解耦的已经很好了,所以源码的阅读上面也是按照模块来写,多写几篇。



基本的文件结构没有变化,为了阅读的体验做了一些文件的删除,留主体:



就是这样,但是商业化什么的,记得按照规则来,不是你删除就可以的事情。


Sony multi+FlowBox


FlowShutter-硬件原理即&代码解读


flowshutter Win环境下烧录教程


另外读以前,也可以研究一下我以前写的东西。



通用的版权声明我也删除了,另外以前的main文件是很长的一堆,现在分开了:



就像这样



因为我还没有细致研究,这里先挖个坑。



另外有个小细节,版权的文件也是写入固件的



写这个文章期间,作者吐槽别的,我以为又改了代码,没改就行



太难了,勤快



当然是继续写



作者写法



PEP8得规则,这个倒是无所谓



一开始得机器频率就开到最大,不过这个东西东西也不用考虑功耗。



设置这块调用read方法,这里写得很健壮,而且这个json文件是机内生成的,不是提前载入。


_load_方法就是生成这个json文件,让我们看看:



在此


在内部又调用了:



把版本号,设备的模式,触发的模式,相机协议,ota的信息打包成字典,通过dump函数写入json。也就是默认的设置。



尝试在已经有的设置里面的取设置,而且将索引拿到。



如果写入的设置超过了设置索引,就把文件强行关了,接着调用update(),覆写一次默认的设置文件。



回到这里,下面的except无非就是有错的时候做什么,不写了



刺激不,这才是主文件里面的一句话而已



任务的类里面,除了初始化以外有两个函数。



里面的子函数我就先不进去了,以后单独写文章。



持续的内存回收



这段代码,我觉得写的很出色,一是把UI的绘制线程单摘出来了,绘制过一次将任务的列表清空一次。


其次是使用倒数的方法,自动的在20个周期后GC一下。后面的三个函数就不说了,注释很ok。



使用了一个定时器,200HZ的发包,以及回调函数就是我上面说的函数,UI,电压,按键等都放入定时器中处理。


其实按照ISR写法的规则,这个函数其实是有点长的,可以考虑把后面的函数:



写成中断好一些,可能性能会高一些。



另外,默认的协议是SONY。



这块异步的代码,舍不得写了,下篇文章继续



最后也期待姜主任的新品



你的代码由我来守护(由我来BB)



好了,没心愿了



哎,就是这么简单

评论
  • 国际标准IPC 标准:IPC-A-600:规定了印刷电路板制造过程中的质量要求和验收标准,涵盖材料、外观、尺寸、焊接、表面处理等方面。IPC-2221/2222:IPC-2221 提供了用于设计印刷电路板的一般原则和要求,IPC-2222 则针对高可靠性电子产品的设计提供了进一步的指导。IPC-6012:详细定义了刚性基板和柔性基板的要求,包括材料、工艺、尺寸、层次结构、特征等。IPC-4101:定义了印刷电路板的基板材料的物理和电气特性。IPC-7351:提供了元件封装的设计规范,包括封装尺寸
    Jeffreyzhang123 2025-01-02 16:50 79浏览
  • 在科技飞速发展的今天,机器人已经逐渐深入到我们生活和工作的各个领域。从工业生产线上不知疲倦的机械臂,到探索未知环境的智能探测机器人,再到贴心陪伴的家用服务机器人,它们的身影无处不在。而在这些机器人的背后,C 语言作为一种强大且高效的编程语言,发挥着至关重要的作用。C 语言为何适合机器人编程C 语言诞生于 20 世纪 70 年代,凭借其简洁高效、可移植性强以及对硬件的直接操控能力,成为机器人编程领域的宠儿。机器人的运行环境往往对资源有着严格的限制,需要程序占用较少的内存和运行空间。C 语言具有出色
    Jeffreyzhang123 2025-01-02 16:26 68浏览
  • 起源与诞生:AI 技术的起源可以追溯到 20 世纪 40 年代,随着计算机技术的兴起,科学家们开始思考如何让机器具备类似人类的智能。1950 年,英国数学家艾伦・图灵提出了著名的 “图灵测试”,为 AI 技术的发展奠定了理论基础。1956 年,美国达特茅斯学院举行了一次人工智能研讨会,标志着 AI 作为一门独立学科的诞生。符号主义阶段(20 世纪 50 年代 - 70 年代):研究人员主要关注如何使用符号逻辑和推理规则来模拟人类思维,试图通过构建复杂的逻辑系统来解决各种问题。然而,由于这种方法的
    Jeffreyzhang123 2025-01-02 15:15 70浏览
  • 在科技飞速发展的今天,5G 通信技术无疑是最耀眼的明星之一。它如同一场数字革命的风暴,以其前所未有的速度、极低的延迟和强大的连接能力,为我们的生活、经济和社会带来了翻天覆地的变化,开启了一个万物互联的崭新时代。5G 技术的卓越特性5G,即第五代移动通信技术,相比其前辈们,有着诸多令人瞩目的特性。首先是超高速率。5G 网络的理论峰值下载速度可达 10Gbps,这意味着下载一部高清电影只需短短几秒钟,而 4G 网络可能需要几分钟甚至更长时间。这种高速率让高清视频流、云游戏等对带宽要求极高的应用变得流
    Jeffreyzhang123 2025-01-02 14:18 56浏览
  • 前言近年来,随着汽车工业的快速发展,尤其是新能源汽车与智能汽车领域的崛起,汽车安全标准和认证要求日益严格,应用范围愈加广泛。ISO 26262和ISO 21448作为两个重要的汽车安全标准,它们在“系统安全”中扮演的角色各自不同,但又有一定交集。在智能网联汽车的高级辅助驾驶系统(ADAS)应用中,理解这两个标准的区别及其相互关系,对于保障车辆的安全性至关重要。ISO 26262:汽车功能安全的基石如图2.1所示,ISO 26262对“功能安全”的定义解释为:不存在由于电子/电气系统失效引起的危害
    广电计量 2025-01-02 17:18 67浏览
  •  在这个日新月异的科技时代,智能家居正以前所未有的速度融入我们的日常生活,从智能灯光到温控系统,从安防监控到语音助手,每一处细节都透露着科技的温度与智慧。而在这场智能化浪潮中,一个看似不起眼却至关重要的组件——晶体管光耦,正扮演着连接物理世界与数字世界的隐形桥梁角色,默默推动着智能家居行业的发展与革新。 晶体管光耦——智能家居的“神经递质”晶体管光耦,作为一种能够将电信号转换为光信号,再通过光信号控制另一侧电路开关的电子元器件,其独特的工作原理使得它在隔离传输、抗干扰及保护电
    晶台光耦 2025-01-02 16:19 48浏览
  • 2层PCB设计时候回路的寄生电感计算方式。由两个平面构成电流路径的回路电感,取决于每个平面路径的局部自感和它们之间的局部互感。平面越宽,电流分布就越扩散开,平面的局部自感就越小,从而回路电感也就越小。平面越长,局部自感就越大,从而回路电感也就越大。平面间距越小,平面之间的互感就越大,从而回路电感也就越小。当该区域为正方形,即长度等于宽度时,无论边长是多少,长和宽之比始终等于1。令人惊奇的是,一对平面上的边长为100mil的正方形区域和边长为1in的正方形区域的回路电感相同。平面对上的任一正方形区
    tao180539_524066311 2025-01-02 13:51 35浏览
  • 从无到有:智能手机的早期探索无线电话装置的诞生:1902 年,美国人内森・斯塔布菲尔德在肯塔基州制成了第一个无线电话装置,这是人类对 “手机” 技术最早的探索。第一部移动手机问世:1938 年,美国贝尔实验室为美国军方制成了世界上第一部 “移动” 手机。民用手机的出现:1973 年 4 月 3 日,摩托罗拉工程师马丁・库珀在纽约曼哈顿街头手持世界上第一台民用手机摩托罗拉 DynaTAC 8000X 的原型机,给竞争对手 AT&T 公司的朋友打了一个电话。这款手机重 2 磅,通话时间仅能支持半小时
    Jeffreyzhang123 2025-01-02 16:41 72浏览
  • 常见通信标准无线通信标准蜂窝移动通信标准:如 2G(GSM)、3G(WCDMA、CDMA2000、TD - SCDMA)、4G(LTE)以及 5G 等。以 5G 为例,其具有高速率、低时延、大容量等特点,为智能交通、工业互联网和物联网等领域提供支持。无线局域网标准:主要是 IEEE802.11 标准,也就是我们常说的 Wi - Fi。例如 IEEE802.11ac 和 IEEE802.11ax(Wi-Fi 6)等标准,不断提升无线局域网的传输速度和稳定性。短距离无线通信标准:包括蓝牙(Bluet
    Jeffreyzhang123 2025-01-02 14:33 37浏览
  • 早期概念与探索阶段(19 世纪以前):在古代,人类就对自动机械充满了想象,如古希腊时期的希罗发明的自动门、水钟等自动装置,中国古代的指南车、木牛流马等,虽然这些装置不能称之为真正的机器人,但为后来机器人的发展奠定了思想基础。从概念走向实践阶段(19 世纪~20 世纪初):随着工业革命的到来,自动机概念开始与实际机械设计结合,出现了具有实际功能的自动机械,例如雅卡尔提花机等,可通过穿孔卡片控制编织图案,为后续可编程控制的机器人发展提供了灵感。现代机器人产业萌芽期(1920 年代~1950 年代):
    Jeffreyzhang123 2025-01-02 14:53 75浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦