• 大小: 50KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签: 串口通信  

资源简介

与硬件通信的程序基本上要用到串口,虽然qt5以后集成了串口通信类,但是个人觉得那个串口通信类有点问题,在linux上表现很好,windows上大数据会有怪怪的问题出现,而且只能在qt5以上的版本才能用,无奈大部分的嵌入式linux上还停留在4.7.1到4.8.5左右的版本,所以本人一直喜欢用第三方的串口通信类做处理。 程序调试中经常需要串口调试,甚至还需要模拟设备数据回复,甚至串口转网络出去,特意将这些常用功能都做到一个串口调试助手中去。 基本功能: 1:支持16进制数据发送与接收。 2:支持windows下COM9以上的串口通信。 3:实时显示收发数据字节大小以及串口状态。 4:支持任意qt版本,亲测4.7.0 4.8.5 4.8.7 5.4.1 5.7.0 5.8.0。 5:支持串口转网络数据收发。 高级功能: 1:可自由管理需要发送的数据,每次只要从下拉框中选择数据即可,无需重新输入数据。 2:可模拟设备回复数据,需要在主界面开启模拟设备回复数据。当接收到设置好的指令时,立即回复设置的回复指令。例如指定收到0x16 0x00 0xFF 0x01需要回复0x16 0x00 0xFE 0x01,则只需要在SendData.txt中添加一条数据16 00 FF 01:16 00 FE 01即可。 3:可定时发送数据和保存数据到文本文件:,默认间隔5秒钟,可更改间隔时间。 4:在不断接收到大量数据时,可以暂停显示数据来查看具体数据,后台依然接收数据但不处理,无需关闭串口来查看已接收到的数据。 5:每次收到的数据都是完整的一条数据,而不是脱节的,做了延时处理。 6:一套源码随处编译,无需更改串口通信类,已在XP/WIN7/UBUNTU/ARMLINUX系统下成功编译并运行。

资源截图

代码片段和文件信息

#include “app.h“
#include “myhelper.h“


QString App::PortName = “COM1“;
int App::BaudRate = 9600;
int App::DataBit = 8;
QString App::Parity = “无“;
double App::StopBit = 1;

bool App::HexSend = false;
bool App::HexReceive = false;
bool App::Debug = false;
bool App::AutoClear = false;

bool App::AutoSend = false;
int App::SendInterval = 1000;
bool App::AutoSave = false;
int App::SaveInterval = 5000;

QString App::SendFileName = “send.txt“;
QString App::DeviceFileName = “device.txt“;

QString App::Mode = “Tcp_Client“;
QString App::ServerIP = “127.0.0.1“;
int App::ServerPort = 6000;
int App::ListenPort = 6000;
int App::SleepTime = 100;
bool App::AutoConnect = true;

void App::ReadConfig()
{
    if (!CheckConfig()) {
        return;
    }

    QString fileName = QString(“%1/%2_Config.ini“).arg(AppPath).arg(AppName);
    QSettings set(fileName QSettings::IniFormat);

    set.beginGroup(“ComConfig“);
    App::PortName = set.value(“PortName“).toString();
    App::BaudRate = set.value(“BaudRate“).toInt();
    App::DataBit = set.value(“DataBit“).toInt();
    App::Parity = set.value(“Parity“).toString();
    App::StopBit = set.value(“StopBit“).toInt();

    App::HexSend = set.value(“HexSend“).toBool();
    App::HexReceive = set.value(“HexReceive“).toBool();
    App::Debug = set.value(“Debug“).toBool();
    App::AutoClear = set.value(“AutoClear“).toBool();

    App::AutoSend = set.value(“AutoSend“).toBool();
    App::SendInterval = set.value(“SendInterval“).toInt();
    App::AutoSave = set.value(“AutoSave“).toBool();
    App::SaveInterval = set.value(“SaveInterval“).toInt();

    App::SendFileName = set.value(“SendFileName“).toString();
    App::DeviceFileName = set.value(“DeviceFileName“).toString();
    set.endGroup();

    set.beginGroup(“NetConfig“);
    App::Mode = set.value(“Mode“).toString();
    App::ServerIP = set.value(“ServerIP“).toString();
    App::ServerPort = set.value(“ServerPort“).toInt();
    App::ListenPort = set.value(“ListenPort“).toInt();
    App::SleepTime = set.value(“SleepTime“).toInt();
    App::AutoConnect = set.value(“AutoConnect“).toBool();
    set.endGroup();
}

void App::WriteConfig()
{
    QString fileName = QString(“%1/%2_Config.ini“).arg(AppPath).arg(AppName);
    QSettings set(fileName QSettings::IniFormat);

    set.beginGroup(“ComConfig“);
    set.setValue(“PortName“ App::PortName);
    set.setValue(“BaudRate“ App::BaudRate);
    set.setValue(“DataBit“ App::DataBit);
    set.setValue(“Parity“ App::Parity);
    set.setValue(“StopBit“ App::StopBit);

    set.setValue(“HexSend“ App::HexSend);
    set.setValue(“HexReceive“ App::HexReceive);
    set.setValue(“Debug“ App::Debug);
    set.setValue(“AutoClear“ App::AutoClear);

    set.setValue(“AutoSend“ App::AutoSend);
    set.setValue(“SendInterval“ App::SendInterval);
    set.setValue(“AutoSave“ App::AutoSave);
    set.setValue(“SaveInterval“ App::SaveInterval);

    se

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-11-26 17:06  com\
     文件        5380  2016-11-26 16:39  com\app.cpp
     文件        1773  2016-11-26 16:39  com\app.h
     文件         818  2016-11-26 16:06  com\com.pro
     目录           0  2016-09-29 21:34  com\file\
     文件        9682  2015-10-24 19:26  com\file\device.txt
     文件         484  2013-07-25 21:20  com\file\send.txt
     文件       16866  2016-11-26 16:59  com\frmcomtool.cpp
     文件        2300  2016-11-26 16:24  com\frmcomtool.h
     文件       14815  2016-11-26 16:49  com\frmcomtool.ui
     文件         283  2016-11-26 16:06  com\main.cpp
     文件       92854  2013-08-01 16:24  com\main.ico
     文件          92  2016-09-19 13:42  com\main.qrc
     文件          37  2013-04-18 10:27  com\main.rc
     文件       19126  2016-09-27 08:21  com\myhelper.h
     目录           0  2016-09-30 10:11  com\qextserialport\
     文件       31472  2016-07-31 15:57  com\qextserialport\qextserialport.cpp
     文件        6927  2016-07-31 15:57  com\qextserialport\qextserialport.h
     文件         257  2016-09-26 21:00  com\qextserialport\qextserialport.pri
     文件        2641  2016-07-31 15:57  com\qextserialport\qextserialport_global.h
     文件        6365  2016-07-31 15:57  com\qextserialport\qextserialport_p.h
     文件       13534  2016-07-31 15:57  com\qextserialport\qextserialport_unix.cpp
     文件       13377  2016-07-31 15:57  com\qextserialport\qextserialport_win.cpp
     文件         495  2016-01-25 11:02  com\qextserialport\readme.txt
     文件         908  2016-11-26 16:54  com\readme.txt

评论

共有 条评论