问题标签 [qextserialport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
473 浏览

c++ - 通过 qextserialport 发送文件

我正在使用 Qt 中的 qextserialport 类来实现设备之间的串行传输。现在,我需要使用串口在通过 USB 连接的设备之间发送文件。在过去的几周里,我已经将串行端口用于各种功能,但我不知道从哪里开始实现它。我考虑读取数据事件驱动,直到没有更多数据要读取,事先确定文件的大小(字节数)并将其与数据一起发送,这样如果数据丢失就很清楚了。我还有一个计算 CCIITT 16 位校验和的正确函数,因此我也可以使用它进行检查。因此,我的问题是:

有人可以向我发送一个可以帮助解决我的问题的网站的链接,并向我解释通过 Qt 中的 qextserialport 类发送文件和接收文件的最简单有效的方法是什么。任何帮助都会很糟糕!

0 投票
1 回答
430 浏览

c - Linux 中的串口设置是永久的吗?

我有两个程序要从串口读取,另一端连接了一些设备。第一个程序是使用 Qt 框架编写的,它使用 QextSerialPort 与串行通信。第二个程序是用纯 C 编写的。

问题是这样的:

系统启动后,纯 C 程序在从串口读取数据时出现问题,我知道它可以正确发送数据,因为设备会对数据做出反应,尽管 pselect(即监视 serial_fd)永远不会返回 serial_fd 从设备读取数据。

当我启动第二个程序(用 Qt 编写)时,它会立即从设备发送和接收数据,没问题。

更重要的是,在我启动 Qt 程序,然后是纯 C 程序后,纯 C 突然完美地工作,直到我再次重新启动系统。所以看起来用Qt编写的程序在初始化期间会永久更改一些串口设置,这可能吗?

下面是初始化串口的 Qt 程序的代码片段:

这是来自纯 C 程序:

有什么遗漏还是什么?

最好的问候马雷克

0 投票
1 回答
397 浏览

qt - 无法编译 Qt qextserialport 库

我正在尝试使用 qextserialport 库:

  1. 下载: git clone https://code.google.com/p/qextserialport/

  2. 用 Qt 打开 qextserialport.pro

  3. 编译...(调试模式)

我没有错误,但出现窗口:

找不到可执行文件,请选择一个。

我应该选择哪一个?

注意:我在 MacOSX 10.6 上使用 Qt 3.1.1

0 投票
1 回答
787 浏览

c++ - 从端口读取时缺少 qserialport 数据,但返回 9 个可用字节

qextserialport使用类数据丢失的函数readdata从端口读取时发生

例如serialobj->bytesavailable返回 9 个字节,但从serialobj->readDatapic 微控制器只返回两个字符

0 投票
2 回答
815 浏览

c++ - Qt QextSerialPort 静态库

如何为 Windows 平台制作 QextSerialPort 的静态库以与 Qt 4.8.5 一起使用

我不明白如何修改 .pro 或 .pri 文件来执行此操作。(.prf 文件不断重新生成)。

所以我尝试修改生成的 .vcproj 文件以进行静态构建,并删除了一些定义,但我仍然收到如下警告:

qextserialport.lib(qextserialport.obj) : 警告 LNK4006: "public: __thiscall QextSerialPort::QextSerialPort(class QString const &,enum QextSerialPort::QueryMode,class QObject *)" (??0QextSerialPort@@QAE@ABVQString@@W4QueryMode@ 0@PAVQObject@@@Z) 已经在 qextserialportd1.lib(qextserialportd1.dll) 中定义;第二个定义被忽略

并在运行时得到“系统错误:程序无法启动,因为您的计算机缺少 qextserailportd1.dll”。这当然是真的,因为我正在尝试使用 .lib 进行静态构建

那么我该如何正确地进行静态构建呢?

0 投票
1 回答
774 浏览

c++ - 无法使用 qextserialport 声明串行端口

我已经看到了几个问题并搜索了很多,但我找不到使用 qextserialport 声明串行端口对象的方法,以便在 arduino 中读取和写入。我尝试了用户在How to write on serial port using Qextserialport 中所做的操作,但编译器给了我以下错误:

这是我正在使用的代码:

为什么会出现这个错误?我正在使用 Debian 8.2 和 QT 4.8.6

编辑: 添加行后:

到项目文件,我有以下错误:

0 投票
0 回答
495 浏览

c++ - 未发出 qextserialport 中的 readyRead() 信号

我正在使用qextserialport与 Windows 8.1 上的蓝牙设备进行通信。我定义了一个ComPort类。我需要先{0xA9,0x55}在“COM5”上写一条消息,要求蓝牙设备开始传输数据。然后我就可以开始读取数据了。我有一个终端应用程序,显示我已经编写了消息,并且数据在“COM5”上可用。

问题定义:

comport.cpp中,既不waitForBytesWritten()也不waitForReadyRead()返回true。可用字节数为零,并且onReadyRead()不调用插槽。我的代码有什么问题?

comport.h

comport.cpp

0 投票
1 回答
348 浏览

qt - 使用 QextSerialPort 写入数据总是写入 0 字节

我正在尝试将 1/0 发送到我的 ARDUINO 板并尝试从板上接收一些数据作为响应,我为此使用 QextSerialPort (Qt lib) 但我无法将任何数据写入板并且无法也接收任何数据。

QextSerialPort

qDebug() << "send.size() : " << send.size() << " data = " << send.data() <<" Written = " << port->write(send, send.尺寸()); 此打印: send.size() : 1 data = 1 Written = 0 //意味着我每次都写入 0 个字节

我的代码有问题吗??

我的 Arduino 代码是:

解决了:

我在 Qt5.5 中切换到 QSerialPort 类,它确实工作得很好。

& 我的 aurdino 代码也有问题(复制粘贴效果)

0 投票
1 回答
348 浏览

c++ - 为什么 Qt(4.8) 串行端口 (qextserialport) 从设备中读取数据 2 部分?

这是我的代码:(我使用了 qextserialport)

此代码首先在 Ubuntu 上运行并显示从设备接收的所有字节,但是当我在 linux 嵌入式设备中对其进行测试时,此代码分两部分从串行设备中读取数据。() 我的字节中没有 \n 。我将代码更改为此代码:

但我的输出再次是:

但它应该是:

我的输出大小可能是 48 字节或 512 字节

0 投票
0 回答
26 浏览

linux - 如何在 QextSeriaport 的 readyRead 中修改时序

我对 QT 中的 QExtSerialPort 有疑问。我正在基于 linux 的操作系统下开发 IMX6UL CPU。

我注意到,在波特率为 9600 时,SIGNAL readyRead 在发送我的串行字符串(由 3 个字符组成,大约 3 毫秒)后大约 35 毫秒“激活”

这样,如果我尝试与 CPU 通信,我可以使用大约 30Hz 的最大频率,这对于我的应用程序来说太低了。

此外,如果我使用较低的波特率,35 毫秒的时间会变长(4800 为 80 毫秒,2400 为 175 毫秒)。

我的目标是,当我在 3,5 个字符(即 9600 的波特率,3,5 / 4 毫秒的时间)内不进行传输时,readyReady 将变为活动状态。

我应该修改readyread函数吗?

我想保留这个库,因为我已经写了很多代码。

先感谢您