前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flowshutter源码分模块阅读.1(主干)

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

作者头像
云深无际
发布2022-06-15 15:58:48
3940
发布2022-06-15 15:58:48
举报
文章被收录于专栏:云深之无迹

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

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

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

目前看,这个库已经很完善了,最近最大的变化就是全部面向对象的重写,大概重构了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)

好了,没心愿了

哎,就是这么简单

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档