从疫情开始前,就有了如标题一样的想法和实现的路径,在这里想寻找志同道合的软硬件工程师或者业务类的大佬一起为这个通用类软件添上最后一块砖。目前已经有实现的路径和底层技术积累,以及一个完整的硬件生成的图形化界面。软件部分的预计在10月底完成。
初步的想法:
刚开始我是做家电类的产品的开发的,风扇,取暖器等等,便宜量大,每年都会开很多的模具,半年大概几十,甚至上百项目的软件开发效率,这个主要归功于项目的类型极度单一,代码的复用率高,当时是在慈溪。如果对市场有了解的应该都知道这边主要的产品是做的什么。
所以,当我的软件主框架基本上定型以后,我把我接触到的代码分为三个类别,IO的检测(比如人体,倾倒,霍尔),IO的输出控制(LED的开关,电机的开关),模式类(风扇的开关,档位,韵律模式。),所以对自动化开发的需求就是做一个上位机,我只需要输入名称,给我生成一个命名好的模板模块,我再完成底层的逻辑控制,其实底层也可以复用,只是相对来说做一个需要理解客户不同的需求的上位机基本上不太可能,所以我只需要给我把需要复制粘贴,然后不停的修改相同类型的功能的前缀,变成一个自动化的功能就是最基本的需求。由于自己学过一点点JAVA的内容,所以知道这个功能并不难,只不过那个时候工作太忙,导致没有时间去学习和实现这个简单的想法。
变更的需求:
芯片缺货的时候,我各种移植,这个芯片换到那个芯片,由于自己在设计的时候,比较注意隔离,所以没有花费很多精力,但是也在我自动化开发的事业上,增加了第一个需求就是通用性。(国内赛元有自己的平台,中微的触摸生成,十速的触摸工具,还有就是辉芒。)当时我用的比较多的是基于keil的编译工具,但是因为成本的问题,开始把很多的代码挪到OTP的MCU上面,但是归功于国内IC都有了自己的C编译器,所以对我来说,还是幸运的,如果还是纯汇编编译,那么我的自动化代码也就得胎死腹中了。这个时候老的框架因为只考虑好用,没有考虑开销,所以导致很多代码需要重新设计,编译器和可怜的程序空间,浪不起来。
这里的自动化生成代码,赛元的很牛。我自己构想的就是一个标准的代码框架,然后通过上位机的设置,对固定文件的固定的地址写入固定的数据。然后将整个文件夹复制粘贴到目标文件夹。我一直是基于上位机能简单就简单,不要实现很多逻辑,用MCU的框架和准备,弥补我自己在上位机开发上面的不足。
这个时候,我对代码生成的需求和愿望还不是那么的强烈,因为自己的软件库一大堆写好的模块,用的时候就是复制粘贴,也没有多少的时间开销。所以写出来不如我复制粘贴。属于会的看不上,如果不会,那么生成后底层的代码的实现,就更扯了。这个时候,是属于独行侠的快乐阶段。
三次带团队,三次崩盘的痛苦
如标题,一直到疫情结束,我都看不到培养新人的可能性,但是如果一个利润一两毛的东西,招一个一两万的工程师,也是很不现实的事情。所以我开始录视频,做教程,但是不尽如人意,一直以为这个是个简单的事情,但是实践中,还是有大概率的崩盘,即使有现成的框架,有现成的代码,大概率新人还是会走出自己的各种风格出来,而且查找问题的成本极其的高,毕竟还是属于模仿下的二次开发。而且由于芯片之间的差异,正常卡在一个有范例程序,有资料的配置上面一两天,找问题更是无从谈起。最终的结果就是我半个小时的代码,新人需要一周,还不一定搞定。这里面还有一个就是客户不专业,沟通不畅,硬件丢东西,不是某一个人的问题,做过小家电的基本上跟我一样,需求变个10来次都是家常便饭。这个时候代码自动生成的价值就有了,100%隔离硬件,软件只需要处理部分逻辑。带人的事情就说到这,再来看看硬件这边。
这个时候开始接触硬件,我本身是会画板子,电路也懂一些,大学时候感谢老师系统的培训过,所以原理图,PCB,封装库,都是关联的,案子做多了,基本上都是相同的电源,相同的电路,区别就是多了一个或者少了一个模块,如果基于统一的库,模块固定了以后,其实一个公司用一套库是完全没问题的,好处就是大牛复制个图纸,下面的人建工程,导入,根据板框拉线就好了。另外一个就是由于经常要报价给客户,所以可以把价格也带入进去,加上标准化的模板BOM生成,可以做到一个简单的自动化,但是这个对老板就不友好了,还是需要工程师参与进去,而且里面牵扯到生产工艺,也就是生产的人工等开销,所以需要加入很多考量进去。废案子很多,我想把评估阶段的这个事情阻拦在研发团队之外。
确立目标
刚开始是想自动化软硬件生成工具的,后来加上了一个通用类。原因其实大家都懂,做不到嘛。
对框架感兴趣的,可以看一下分层架构。我的思想来自于学JAVA阶段,但是在看一个帖子的时候,发现自己的应该没跑了。
未完待续。。。。
|