从我学习计算机、软件相关知识开始,十几年来,我曾经使用过的上位软件集成开发工具按时间顺序依次为(这些集成开发工具,有些我已不常使用,有些甚至完全被淘汰):
visual foxpro
visual basic
visual c++
delphi
matlab
visual studio
QT
android studio
使用的编程语言有:foxpro,
VB,
c,
c++,
pascal,
matlab,
c#,
java
除此之外,还有以下的脚本语言:
lua,
python,
javascript,
php
现在,最常使用的集成开发环境有delphi以及android studio,其中delphi主要用于开发有人机交互界面显示的上位机开发软件,用于数据采集、存储、显示。
基于delphi开发了控制器的远程升级程序、控制器内置网页生成下载工具以及modbus数据采集、设置工具。delphi在十年前非常流行,其特点是非常小巧,我使用的安装包还是当前上大学时从隔壁学校图书馆下载的delphi 7的破解版,大约400M的大小。
虽然近十年前,delphi已经没落,很多风靡一时的delphi相关的网站估计已经消失,但是,从网站上依然能找到非常多的第三方库。还能满足大部分应用要求。
在我的电脑上,也有装visual studio和QT,但是用得不多,曾经用visual studio帮朋友研究过shadowsock,曾经用QT修改过xmpp客户端,用于测试公司的产品。
visual studio和QT都太庞大了,安装包都有好几G,电脑打开IDE之后,变得非常卡,影响效率。远不如delphi用得得心应手。
android studio主要用来编写控制器的app,设计的app是web app,主要用html5+javascript实现,再打包成app,基于java的原生app编写并不多。至于matlab,之前主要是用来做数据分析,算法研究,以及电路分析.
比如,以前做智能电表项目的时候,需要用到快速fft变换,直接调用matlab的fft函就得到结果,再与自己通过单片机c语言实现的fft函数进行比较,验证函数正确性.
比如PID的控制算法的研究,之前借助matlab的simulink做一些仿真,研究PID的参数整定,非常方便.
用来做电路分析也非常方便,通过电路理论(比如基尔霍夫电流、电压定律),我们通常对电路可以得到n元一次方型组,通过matlab的符号矩阵运算,可以很快速得到结果。
自从matlab6.5在windows 7的系统上无法安装,下载windows 2010又没有license之后,我就对matlab就彻底失望了,近五年没碰过了。
我用php语言主要是用来编写服务器程序,在wordpress的基础上实现了控制器的管理后台,采用workerman实现了一个tcp服务器。
下图是基于VUE+element UI+websocket实现的网页前端:
我觉得随着技术的发展,解释型的脚本语言会大型其道,其特点就是简单,资源多。
目前来看,最火算是python了。
接下来的发展趋势是物联网、云计算,根据这样的趋势,我觉得未来软件的系统架构会是如下图:
跟设备配置使用的上位机软件需要有几大功能:
1) 基于串口,USB,TCP/IP的实时数据采集
2) 数据存储,数据的展示
3) 人机交互界面
4) 数据分析
结合未来的软件发展趋势,这些数据最终需要上传到云服务器,进行大数据的云计算,并通过前端的UI展示出来。
python是同时满足这几大功能需求的上位机软件开发语言。
数据分析有强大的pandas库,支持和matlab一样的矩阵运算,支持大数据处理,最关键是免费的。
设备通信pyserial库,应用尽有...
要做好一个系统,一个产品,需要精通各方面的知识,比如电子、电路,单片机,C,delphi, HTML5, javascript,前端框架(如VUE, bootstrap,element UI),PHP,mysql, redis,TCP/IP, websocket, HTTP,workerman,lua, android...
这是题外话, 不管怎么样,去学python吧,未来是python的天下。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有