背景: 在编写QT上位机界面时,界面在运行的时候经常出现卡死或者直接挂掉的怪现象. 正文: 上位机有个函数为check_receive():该函数的作用为定时调用循环检测USB是否有数据.若有,则将信息打印到界面窗体上.界面上有两个QTableWidget窗体 "ui->can1tableWidget与ui->can2tableWidget",根据传上来的的数据某个字节信息为1.或2来打印到对应的窗体上.代码如下: QTableWidget *canselWidget =…
VC++编写简单串口上位机程序   转载: http://blog.sina.com.cn/s/articlelist_1809084904_0_1.html VC++编写简单串口上位机程序 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面.写上位机程序的编程语言.编译环境等不少,VB.C#.LABVIEW等等,我会的语言很 少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相 当蹩脚的C++写出…
用vc++MFC开发过不少跟单片机通讯的上位机程序了.搞懂了MFC架构,开发还是很快的,与底层单片机程序通讯,可以用串口.usb.网络.短信形式.串口现在用的越来越少了,一般电脑跟单片机在一块,使用串口.随着物联网的兴起,使用短信.网络来做电脑与单片机通讯越来越多了,对于物联网,上位机的管理端就特别重要了,大量终端的管理,要做到方便查看,方便搜索. 这是个以前做过的项目,药实验仪,采用的串口通讯,这个项目做的不错,但是最终客户没有给钱,估计找人把软件的限制给破解了,悲催.如有人对此项目感兴趣可以…
https://www.cnblogs.com/yangfengwu/p/11104167.html 先说一下整体思路哈.. 咱滑动的时候 会进入这个,然后咱呢不直接从这个里面写发送 因为这样的话太快了,,咱的单片机是用任务处理 咱就做一个10ms的定时器,实时检测进度条值的变化,如果这次的值和上次的值不一样就发送 定义一个变量用来存储上次的状态 现在测试一下,发给另一个串口,然后计算下 好现在控制灯               自己去测试吧,自己扩展成控制舵机,控制电机转速都可以 然后给大家C…
(说明:我们的编程环境是windows xp下,在Qt Creator中进行,假设在Linux下或直接用源代码编写,程序稍有不同,请自己修改.) 在Qt中并没有特定的串口控制类,如今大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们能够去 http://sourceforge.net/projects/qextserialport/files/ 进行下载,也能够去下载我上传到网上的: http://download.csdn.net/source/176278…
转载:http://blog.csdn.net/yafeilinux/article/details/4717706  作者:yafeilinux (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动.) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourceforge.net/projects/qextser…
在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类.我们可以去 http://sourceforge.net/projects/qextserialport/files/ 进行下载,也可以去下载我上传到网上的: http://download.csdn.net/source/1762781  或 http://www.qtcn.org/bbs/read.php?tid=22847 下载到的文件为:qextserialport-1.…
本文章原创于www.yafeilinux.com 转载请注明出处. (说明:我们的编程环境是windows xp下,在Qt Creator中进行,如果在Linux下或直接用源码编写,程序稍有不同,请自己改动.) 在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类. 源码和范例都可以到我们网站的资源下载页面进行下载. 下载到的文件为:qextserialport-1.2win-alpha.zip 其内容如下图: 我们在windows…
该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 导语      程序要实现的功能是:程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直接关闭这个对话框,便不能进入主窗口,整个程序也将退出.当进入主窗口后,我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口. 程序里我们先建立一个工程,设计主界面,然后再建立一个对话框类,将其加入工程中,然后在程序中调用自己新建的对话框类来实现多窗口. 在这一篇还会涉及到代码里中文字符串…
一直在做软件测试的工作,天天与程序员不依不饶的争论细节的问题,没想到自己也有那么一天走上程序员的道路,由此开始,我的博客天天更新自己的学习状态,分享自己的心得. C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言.并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似:它包括了诸如单一继承.接口.与Java几乎同样的语法和编译成中间代码再运行的过程.但是C#与Ja…
没有任何人敢保证自己写的程序没有任何BUG,尤其是在商业项目中,程序量越大,复杂度越高,出错的概率越大,尤其是现场环境千差万别,和当初本地电脑测试环境很可能不一样,有很多特殊情况没有考虑到,如果需要保证程序7*24小时运行,则需要想一些办法能够让程序死了能够活过来,在嵌入式linux上,大部分会采用看门狗的形式来处理,程序打开看门狗驱动后,定时喂狗,一旦超过规定的时间,则硬件软复位等.这种方式相对来说比较可靠,如果需要在普通PC机上运行怎办呢?本篇文章提供一个软件实现守护进程的办法,原理就是ud…
https://www.cnblogs.com/yangfengwu/p/11102026.html 首先规定下协议  ,CRC16就不加了哈,最后我会附上CRC16的计算程序,大家有兴趣自己加上 上位机发送: 0xaa 0x55  0x03  占空比(四字节)  低位在前  高位在后 注意哈:其实仪器仪表 高位在前 低位在后 用的多  由于咱的单片机和上位机都是小端,咱为了方便所以那样规定的协议 其实只要明白了原理  自己调换就可以 单片机解析协议,然后修改占空比 先用调试助手发几个数据测试一…
应用说明: 本上位机程序是我在做锂电池产线项目的时候开发的,用于采集设备数据以及实现设备自动控制,下位机采用基恩士PLC,超声波机采用上海一家的超声波焊接机,实现电芯极耳的自动焊接,上位在设备焊接过程中记录焊接数据,同时监控设备异常. 主要功能有:@1.设备监控:@2.PLC TCP/IP通讯:@3超声波焊接机通讯;@4扫码枪通讯:@5.用户登录方可有操作权限:@6数据采集:@7PLC控制:@8数据持久化等 1.其主界面见下图: 2.参数设置界面如下: 3.IO界面见下图: 4.手动操作界面如下…
使用Qt编写客户端的程序的示例或demo较多,但是编写服务器端程序的demo很少.当然,服务器端的程序一般不需要带界面,这点我们可以理解.不过有些时候我们还是需要使用Qt编写一个简单的测试用的服务器代码,这时候该怎么处理呢? 首先,头文件中需要做这两个对象:QTcpServer * serverListen;QTcpSocket *serverConnect; 其中,serverListen主要是用来监听的,这是QTcpServer类特有的一些功能.而serverConnect是和客户端程序一样…
前面学习了USB相机硬件固件.设备驱动,可以实现USB设备识别.数据发送的功能.然后,非常重要的一部分,USB设备发出的数据,我要怎么接受,怎么查看发送的数据是否是正确的.网上百度了下,大部分人都使用的是C++的开发平台,而我想在.NET下使用C#制作上位机来实现USB设备数据的接收以及数据的显示,这里的数据为图像数据.查找了很久,C#部分的设计确实很少,大体的思路都有说道,但是更加清晰详细的解释没有.下面就针对我这几天查阅的资料作一分享: 基于VS开发平台,.NET架构下C#的USB设备编程,…
新阁教育喜科堂不得不说,工业圈是个比较奇怪的圈子,各种各样的项目需求都有,有的人就希望价格低,功能实现即可,有的人又不在乎价格,就要界面好看.最近有一个小伙伴又提出了这样的需求,用最简单的方式,最低的成本,最少的代码,实现本地的PLC数据上云.我想了一下,如果想实现这种需求,我们就要站在巨人的肩膀上,用现成的轮子,将它们进行组装,变成自己的东西.那么这次,我们就采用S7.NET+Log4Net+SQLSugar+MySQL来实现一个西门子PLC数据上云的案例. 1.框架实现 关于这4个组件,有一…
前言 上一节我们已经基本上把超声波硬件的发射和接收模块全部做好了,接下来我们着手开发一个软硬结合的基于C#的平面定位软件! 目录 一.整体思路 二.效果提前展示 2-1.软件部分展示 2-2.硬件部分展示 三.基于C#的客户端软件说明 3-1.整体框架介绍: 3-2.部分技术细节介绍 3-2-1.串口操作 3-2-2.JiSuan函数说明及核心算法介绍 四.阶段小结 五.相关链接 一.整体思路 >_<" 如下图,利用我们上三节开发的超声波发射与接收设备构成一个:2固定接收头+1可移动…
一.通信socket socket()函数 Python 中,我们用 socket()函数来创建套接字,语法格式如下: socket.socket([family[, type[, proto]]]) 参数 family: 套接字家族可以使AF_UNIX或者AF_INET type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM protocol: 一般不填默认为0. 二.ur接口(30001&30002) Primary & Secondary…
在工业相机中对摄像头要求较高,且采集的图像数据要求是源数据,未经过任何处理. 为了兼容xp.win7(32bit 64bit) 程序采用VS2008  MFC编制,参考网上一些应用. CYUSB驱动与CYAPI开发包以前68013上位机程序的编写过程中,应用程序端通过调用DeviceIoControl() API或CREATEPIPE() API与驱动进行交互,继而读写控制硬件设备,在新的68013A的驱动中采用了两种新的调用方法:第一种是继续使用DeviceIoControl()函数读写,不同…
一.前言 开始做了两年web.期间也整了一段时间winform.后来做了两年工控上位机,也就是做工控这两年发现机器跟面向对象真是如此贴切,也是我从处理数据和流程的思维转变为面向对象思维的开始.这对我后来学习mvc5.owin..net core以及其它各种框架的学习有非常大的帮助,我发现我能看懂源码,也能理解这些大牛为什么要这么去设计这些类,这些类是如何协同工作去实现一个复杂的可扩展的框架,因为这些框架.设计模式最最根本还是以面向对象的思维来处理具体场景的具体问题.这一瞬间有一百万种可能,转变思…
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多帮助,将心得写在这里供大家参考. PS:本文中谈的是用QT封装一个包含界面的DLL,然后在其他任何地方使用任何语言来调用这个DLL,不是那种在qt creator里面建一个dll工程,然后再在qt creator里建一个调用该dll的工程的情况(这种示例可参考该链接http://download.c…
一般直接编写的QT动态库是无法被Windows下的VC6.0等调用的. 如下步骤 第一步:必须要在QT界面库源码下包含qtwinmigrate的源码包和库,网上可下载到. 第二步:在QT的proc文件中添加以下的一行 include,路径自行修改 第三步:在需要到处的动态库DLL的cpp文件中包含如下有关qtwinmigrate的头文件 第四步:基于前面的工作,如果你到处动态库,你需要调用动态库的最开始阶段比如自定义的DLL的init函数 编写下面的代码 基本的简单的工作到这里结束了,下面是我的…
用C#编写上位机,基本流程是[1]串口配置,[2]串口发送数据,[3]串口接收数据. [1]串口配置 串口的属性配置包括: No.1串口端口号 No.2串口波特率 No.3串口数据位 No.4串口停止位 N0.5串口校验位 串口的上述属性,分别将值存储进combobox里边,然后带用户根据实际情况自己进行选择,设置也比较简单. 串口的打开和关闭,采用try-catch这对组合,可以自动打开和关闭处理过程中出现的问题. [2]串口发送数据 串口发送数据,采用串口的write属性,该属性有三种重载方…
项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码 与三菱FX3U进行通讯 1. 第一种方法是自己写代码实现,主要代码如下: //对PLC的Y7进行置1 byte[] Y007_ON = { 0x02, 0x37, 0x30, 0x37, 0x30, 0x35, 0x03, 0x30, 0x36 }; //选择串口参数 SerialPort sp = , Parity.Even, ); //打开串口 sp.Open(); //写入数据 sp.Write(Y007_O…
1.      概述... 2 2.      ServerSuperIO.Core跨平台开发环境... 2 3.      ServerSuperIO.Core特点... 2 4.      ServerSuperIO.Core与ServerSuperIO区别... 2 5.      嵌入式应用... 2 6.      上位机应用... 2 7.      云服务应用... 2 8.      应用和测试说明,以Linux平台为例... 2   概述 我们的大数据平台(云)平台的数据接收服…
回顾自己学习Qt以来九年了,在这九年多时间里面,从本论坛学习不到不少的东西,今天特意整了一下自己开源过的资源的帖子,整理一起方便大家直接跳转下载,不统计不知道,一统计吓一跳,不知不觉开源了这么多代码,感谢qtcn提供这么好的平台,给大家学习交流,互相进步.说明:以下的统计的顺序是从远到近.早期的源码大部分在Qt4.7.0下编译的,需要自行修改源码才能兼容Qt5. 1:颜色拾取器V1.0  http://www.qtcn.org/bbs/read-htm-tid-46711.html 2:QT制作…
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多帮助,将心得写在这里供大家参考. PS:本文中谈的是用QT封装一个包含界面的DLL,然后在其他任何地方使用任何语言来调用这个DLL,不是那种在qt creator里面建一个dll工程,然后再在qt creator里建一个调用该dll的工程的情况(这种示例可参考该链接http://download.c…
一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零.如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的. 在给出方法之前,先来了解一下代码和数据的存放规则.属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢. 什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定准确,所以喜欢举一些例子来辅助…
源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零.如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的. 在给出方法之前,先来了解一下代码和数据的存放规则.属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢. 什么是初始化数据变量,什么又是非初始化数据变量?(因为我…
一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零.如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的. 在给出方法之前,先来了解一下代码和数据的存放规则.属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢. 什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定准确,所以喜欢举一些例子来辅助…