Ai
1 Star 2 Fork 5

觉皇/WINUSB_PC_Test

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
mainwindow.cpp 2.68 KB
一键复制 编辑 原始数据 按行查看 历史
觉皇 提交于 2023-06-04 21:26 +08:00 . 首次提交
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "winusbdriver.h"
WinUSBDriver winusb;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("WINUSB测试");
connect(&winusb,SIGNAL(recvSignals(unsigned char *,int)),this,SLOT(usbRecvSlot(unsigned char *,int)));
connect(&winusb,SIGNAL(disconnectSignals()),this,SLOT(disconnectSlot()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::usbRecvSlot(unsigned char *buf,int len)
{
if(ui->chkBoxHexRecv->isChecked())
{
QString fmtString;
for(int i = 0; i < len; i++)
{
fmtString += QString::asprintf("%02X ", buf[i] & 0XFF);
}
ui->te_recv->append(fmtString);
}else
{
QTextCodec* codec = QTextCodec::codecForName("GBK");
QString text = codec->toUnicode(QByteArray((char *)buf, len));
ui->te_recv->append(text);
}
}
void MainWindow::on_pb_open_clicked()
{
if(ui->pb_open->text().compare(QString::fromUtf8("打开")) == 0)
{
int vid = ui->le_vid->text().toInt();
int pid = ui->le_pid->text().toInt();
if(winusb.open(vid,pid) == 0)
{
ui->pb_open->setText("关闭");
}
}else
{
winusb.close();
ui->pb_open->setText("打开");
}
}
void MainWindow::disconnectSlot(void)
{
winusb.close();
ui->pb_open->setText("打开");
}
void MainWindow::on_pb_send_clicked()
{
QString text = ui->te_send->toPlainText();
if(ui->chkBoxHexSend->isChecked())
{
text.remove(" ");
QByteArray data(text.length() / 2, 0);
uint32_t size = 0;
StrToHex(text.toStdString().c_str(), text.length(), (uint8_t *)data.data(), &size);
winusb.send(data);
}else
{
QTextCodec* codec = QTextCodec::codecForName("GBK");
QByteArray data = codec->fromUnicode(text);
winusb.send(data);
}
}
void MainWindow::on_chkBoxHexSend_toggled(bool checked)
{
QString fmtString;
QString text = ui->te_send->toPlainText();
if(checked)
{
QTextCodec* codec = QTextCodec::codecForName("GBK");
QByteArray data = codec->fromUnicode(text);
for(int i = 0; i < data.size(); i++)
fmtString += QString::asprintf("%02X ", data[i] & 0XFF);
}else
{
text.remove(" ");
QByteArray data(text.length() / 2, 0);
uint32_t size = 0;
StrToHex(text.toStdString().c_str(), text.length(), (uint8_t *)data.data(), &size);
QTextCodec* codec = QTextCodec::codecForName("GBK");
fmtString = codec->toUnicode(data);
}
ui->te_send->setText(fmtString);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/jhembed/WINUSB_PC_Test.git
git@gitee.com:jhembed/WINUSB_PC_Test.git
jhembed
WINUSB_PC_Test
WINUSB_PC_Test
main

搜索帮助