代码拉取完成,页面将自动刷新
同步操作将从 阿衰0110/串口网络调试助手+qt6+qml 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#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();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。