1 Star 0 Fork 11

leozhong/串口网络调试助手+qt6+qml

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
serial.cpp 1.83 KB
一键复制 编辑 原始数据 按行查看 历史
#include "serial.h"
#include <QDebug>
Serial::Serial()
{
// 定义文本编码
tc = QTextCodec::codecForName("UTF-8");
}
QStringList Serial::serialScan(void)
{
QStringList serialPortList;
serialDescription.clear(); // 每次扫描先清除串口描述信息
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
this->setPort(info);
serialPortList.append(this->portName());
serialDescription.append(info.description());
//qDebug() << this->portName();
//qDebug() << info.description();
}
// 解决无串口连接时 打不开软件的问题
if(serialPortList.length() <= 0) serialPortList.append("None");
if(serialDescription.length() <= 0) serialDescription.append("None");
return serialPortList;
}
bool Serial::serialOpen(QString serialName, int baudRate)
{
this->setPortName(serialName);
if(this->open(QIODeviceBase::ReadWrite)) {
this->setBaudRate(baudRate);
this->setDataBits(QSerialPort::Data8);
this->setParity(QSerialPort::NoParity);
this->setStopBits(QSerialPort::OneStop);
this->setFlowControl(QSerialPort::NoFlowControl);
// 下位机发送数据会响应这个槽函数
connect(this, &QSerialPort::readyRead, this, &Serial::ReadData);
return true;
}
return false;
}
// 读数据
void Serial::ReadData()
{
dataBuf = this->readAll();
this->rxByte += tc->toUnicode(dataBuf).length();
emit this->readSignal(this->rxByte);
}
// 写数据
void Serial::sendData(QByteArray sendData)
{
int byteTemp;
byteTemp = this->write(sendData);
// 发送失败返回-1
if(byteTemp != -1)
{
this->txByte += byteTemp;
emit this->sendSuccess(this->txByte);
}
}
// 关闭串口
void Serial::serialClose()
{
this->clear();
this->close();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/leozhong30/AS_TOOL_QML_X64.git
[email protected]:leozhong30/AS_TOOL_QML_X64.git
leozhong30
AS_TOOL_QML_X64
串口网络调试助手+qt6+qml
master

搜索帮助