Code Monkey home page Code Monkey logo

scada_software_based_on_qt's Introduction

SCADA_software_based_on_Qt

一个基于Qt调参上位机.

邮箱: [email protected], 欢迎讨论交流.

1. 简介

这个项目是我在闲鱼接的单子, 客户让做一个用于电机控制器的参数调整软件, 并能显示一些曲线. 下面是客户需要的软件界面效果: 客户需求上位机界面

下面是我完整的界面效果: 实际完成界面

客户是做电机驱动开发的, 下位机部分已经做好了, 使用的是STM32F407的单片机, 但是需要设计一个上位机软件, 用于调整其中的一些参数并显示一些曲线.

2. 技术方案

由于客户要求有图像界面, 考虑到我学过的技术, 所以计划使用Qt来开发. 客户单片机上预留的用于调参的接口是串口, 所以要使用串口来与单片机通信. 如上图, 可以看到界面中大多数使用的都是按钮和文本框, 还有一些显示控件.

3. 曲线显示

为了方便参数的调整, 还需要显示出来一些量的曲线. 这里我使用Qt自带的QChart来绘制曲线.

解决一个小Bug

在做曲线显示部分的时候遇到了一个小bug, 就是曲线显示的效果很奇怪, 有时候显示, 有时候又没有反应. 后来我上网查了好大一会才找到问题所在, 就是由于使用的是Qt封装好的控制串口的接口, 其内部有缓冲区, 而这个缓冲区默认是是满缓冲的(而我没有设置), 所以当缓冲区不满时就不会将数据向上转送, 所以曲线不会有显示, 当缓冲区满了以后才会刷新一次到应用层, 才会有曲线显示.

这也给我提了一个醒, 以后在应用层使用串口, 就一般都会有缓冲区, 而缓冲区有缓冲模式可选: 无缓冲, 行缓冲, 满缓冲. 要学会自己去设置为自己需要的缓冲模式.

4. release版本打包发布

由于客户那里没有安装Qt的开发和运行环境, 所以他一定缺少了很多运行时所需的动态库, 所以如果直接把exe发送给客户, 在他的电脑上一定无法运行. 所以要对软件进行打包发布.

首先将编译模式改为release版本, 然后使用Qt自带的打包工具对可执行文件进行打包. 但在这之后还并不能让exe在没有Qt环境的PC上运行, 直接执行exe还会报找不到xxx.dll, 就是各种依赖. 这里我使用Dependencies工具来找到exe执行时需要的动态库, 然后把这些动态库放到exe所在的目录即可. Dependencies工具在./assets/Dependencies_x64_Release目录下了, 需要的朋友可以自取!


2023年8月20日23:26:00

scada_software_based_on_qt's People

Contributors

twithz avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.