上位机开发需要学什么(上位机6大必备技能)


a2473b550a32ef9fdfd6740f13c21b49.png

文 | Edward

帮我写个软件

“你是学软件的,帮我写个软件吧,要可以显示当前的温度,湿度”,一个好久没有联系的朋友突然找我说。

“啊,我是做单片机软件的,不会写电脑软件”,我回答道。

“什么吗,软件不应该是电脑上运行的软件吗?还一直说自己是软件工程师呢,连个软件都不会写”朋友答道。

这是很久之前我和一位朋友的对话。

结束之后,我脑中突然出现了一个念头,他作为一个业外人员,当然不懂嵌入式软件和上位机软件的区别,但是万一有一天突然老板这么对我说,那我该怎么回答他呢?而且作为一个软件工程师,难道不应该学一门上位机开发软件吗?总不能每次写个小的界面,还要跑到软件组去,拉下脸求别人帮忙写个?

想到这里,我后来开始学习了一门上位机软件,而在我学习上位机软件的过程中,我发现这种软件的开发思路,也对我C语言的开发有很多启示。

为什么要写上位机软件?

可是,为什么我们要学一门上位机软件呢?做好自己的单片机软件难道不好吗?

这个问题我觉得可以从以下几个方面来说:

首先,如果你做工业自动化控制,如PLC上位机开发需要学什么,PLC工程师其实是很方便来写一个上位机的,之前西门子等各大PLC厂商,推出了很多配套的上位机软件开发工具,尽管它们放到目前来看,界面设计很不人性化,美观度也不行,但是总的来说是一套东西是非常完整的。他们那时候常用的软件如WinCC,组态王等软件,都可以帮助他们轻松完成。

b1c59a8fc8cdb93bba9a723cd49be316.png

现在这样子的界面,确实很难登录大雅之堂了,但是还有另一部分人,他们用着NI控制卡,用着LabView,开发上位机那是分秒之事。

58dc76caba625e8dfc92e2c9ea9337f6.png

而我们的单片机控制器,确实比他们的都要来的先进,功能强大,自由度高上位机开发需要学什么(
做好自己的单片机软件,难道不好吗?(图)
),但是这个上位机软件是呈现给客户的东西,是客户最能直接感受到的“软件”,因此学会个上位机是很有必要的,因为它可以帮我们把强大的单片机软件展示出来。

其次,在我们平时软件调试的时候,或者软件完成之后,有很多预留的参数需要我们去读写,甚至这些参数和我们的单片机软件息息相关。比如当你做一个运动控制软件的时候,PID参数可能要通过通讯接口在现场实时调整,这时候,如果我们一遍遍烧写程序,或者通过调试软件不断地发协议过去,是个非常累且不直观的工作,而此时如果我们实现写完一个上位机软件,在调试现场就可以非常轻松地修改参数了,修改完成后,坐在沙发上就可以喝茶看手机了(这个是我自己臆想的)。

486646c53624356d025ba19987d60eca.png

上位机控制单片机_幻兽机 上位_上位机开发需要学什么

最后,上位机开发,总离不开学习高级语言,虽然很多做底层的都鄙视高级语言,但是不可否认的是,高级语言确实有很重要的思想在里面,这个思想如果你单纯做C语言是怎么样都接触不到的,那就是所谓的“面向对象”的设计思想。如果掌握了这种思想,并将其用于C语言的开发中,那对C语言开发也会非常有帮助。

3abac47223eedc7349a8171d6ce96acd.png

该学哪个上位机软件

说了这么多,该学哪个上位机软件呢?

确实,目前的上位机开发软件非常多,而且每家的架构甚至编程语言都完全不一样,下面简单罗列几家:

WPF和Winform

WPF,WInform和.net C#仅仅地扎根在Windows操纵系统底下,因为他们是微软亲手一步步构筑起来的,所以微软爸爸不下血本地去帮助他们成长。如果说要在Windows底下开发一个工具软件,且没有跨平台的需求,那么WPF,WInform和.net C#的组合是最最最适合的,没有之一。而且就语言的易上手程度来说,C#的基础功能和C语言是非常接近的,而且C#的面向对象机制设计的非常彻底,不考虑效率的情况下,远远优于C++。而且目前这个工具是有免费的社区版的,难道不试试吗?

56547d515785c0ce0cfef3ebb695b24a.png

QT

Qt是一个跨平台的 C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。

QT目前的最大优势就是跨平台,虽然每家都在宣称自己跨平台,但QT无疑是做的最好的,但是其最大的问题其实是编程语言是C++,C++的优缺点,我们这里就不讨论了上位机开发需要学什么,见仁见智。

其他的还有很多,我们这里就不推荐了,主要原因就是不主流,如GTK+,FLTK,MFC(太老)。

我该学哪个?

如果你不爱折腾

C#和Winform, WPF。

如果你爱折腾

QT。

如果你是个C语言死忠粉

GTK+。

如果你想做个透彻的软件工程师

你告诉我吧。

7d4dbfe583af1db39c6cce38de5dee29.gif

701183063121d420e59aa392cfa867e0.png


免费领取: 只要加微信,回复“入门视频”,即刻获取 全网最系统,最容易入门的的Web前端入门全套视频,C语言入门全套入门视频,大数据全套入门视频,PhP全套入门视频,Pathon全套入门视频,Java全套入门视频!!!微信号:18370228235 ,立即领取!
版权申明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ892482387,本站将立刻清除。

分享到