QT上位机开发(网络程序界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        传统的上位机对接方式还是以232、485、can为主,随着网络的发展,越来越多的设备都是以网络进行通信的。毕竟相比较之前,网络通信的方式太多了,设备之间仅需要交换机、路由器就可以通信,不需要放在一起。传统消费领域的网络通信,一般是电脑和电脑之间的通信。而工业领域,网络通信更多是设备和设备之间的通信,设备本身除了网络之外,还有其他用途的。比如,这个设备可能是做调度的,另外一个设备做数控的等等。

1、工业生产中的网络有哪几种形式

        这取决于设备本身是移动的机器人、pad设备,还是固定的作业设备。如果是机器人,或者是pad设备,那么在工厂车间内肯定要布置wifi信号,至于2.4g还是5g,可以根据自己的情况决定。当然,如果都是固定的生产设备,使用有线网络也是不错的选择。

2、使用udp还是tcp

        udp比较适合网络较差的作业环境,tcp适合网页较好的作业环境。当然,如果网络真的不算好,作为移动设备来说,自身的安全检测一定要非常到位才行。

3、网络协议如何写

        对于业务人员来说,网络协议越简单越好,最好是xmlrpc这种协议。客户设备如果已经有协议的,尽量让客户提供标准的sdk协议。如果客户自身也没有协议,那就约定一个简单的协议,比如http协议等等,用postman确定没问题了之后再进行写代码验证。

4、网络转换设备是什么情况

        由于上位机软件设备一般自带的接口数量是有限的,比如有限的232、485、can和usb。所以这个时候,如果上位机想扩展一下访问的设备数,但是没有对应的接口,这个时候网络转换设备就发挥作用了。网上有很多的网络转io、网络转232、网络转485设备,它们价格不贵,配置也很简单,使用起来十分方便。用户需要做的,就是把232/485报文转成网络报文,发送出去就好了。此外,接收也是一样。

5、网络sdk的选择

        在c++这一块,要编写c++网络代码,有三种选择。一种是使用windows network api编程;一种是使用boost编程;剩下来一种是使用qt专门的网络api编程。这方面,我倒是建议优先用boost和windows network api编程。前者有跨平台的优势,后者使用比较简单和方便,学会了就算不用qt也能自己写控制台程序。相比较而言,我倒是不建议选择qt网络编程,毕竟学会了只是用在qt平台而已,适用范围远远没有前两者那么广泛。

6、网络调试

        网络中出问题是很正常的,这个时候就要好好准备几个工具了。第一,使用ping命令验证是否在线;第二,使用pinginfoview查看丢包率;第三,使用postman查看http api接口收发是否ok;第四,也是运用最广泛的,那就是wireshark抓包大法,几乎可以解决所有的网络问题。

7、网络界面开发和验证

        如果对网络有兴趣,大家可以自己写一个server、client程序。两个程序用qt和designer把界面画出来,直接用windows network api写程序就可以了。而且,两个程序可以部署在同一台电脑上面,这样也能方便测试。这里先给出了server的参考设计界面,

        接着给出了client的参考设计界面。因为如果是client部分,其实稍微修改下即可,

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 00:22:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 00:22:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 00:22:03       82 阅读
  4. Python语言-面向对象

    2024-01-06 00:22:03       91 阅读

热门阅读

  1. 分布式缓存考点梳理 + 高频面试题

    2024-01-06 00:22:03       44 阅读
  2. matlab中如何将视频保存成图像

    2024-01-06 00:22:03       55 阅读
  3. 【大数据】Doris 数仓使用规范原则

    2024-01-06 00:22:03       51 阅读
  4. Linux 挂载磁盘, 无数据案例

    2024-01-06 00:22:03       55 阅读
  5. 法大大实名认证的情况

    2024-01-06 00:22:03       50 阅读
  6. 自有图片数据制成npz格式数据集

    2024-01-06 00:22:03       60 阅读
  7. GIT使用简介

    2024-01-06 00:22:03       49 阅读
  8. C单词翻转

    2024-01-06 00:22:03       56 阅读
  9. uniapp 分享例子做个记录

    2024-01-06 00:22:03       55 阅读
  10. SpringBoot实用开发(十)-- MongoDB的安装

    2024-01-06 00:22:03       56 阅读
  11. 【力扣每日一题】力扣2397被列覆盖的最多行数

    2024-01-06 00:22:03       50 阅读