如何使用 boost 从 com 端口读取未定义的字节数
How can I read undefined number of bytes from com port, using boost?
我正在尝试从com端口写入和读取数据。我' 使用
write(*ioboard.port, buffer(cpayload, cpayload.size()));
对于写作,我在收到答案方面遇到了一些麻烦。我尝试了不同的变体
int m = read(*ioboard.port, buffer(answer, 1));
int m = read(*ioboard.port, buffer(answer, 1024));
int m = ioboard.port->read_some(buffer(answer));
在第一种情况下,我在第一次调用写读对后收到答案,第二次后没有答案:幻想读取故障。在第二种情况下,我在第一次通话后没有收到答案:再次由于读取功能。第三个的工作方式与第一个相同。所以现在我需要重新启动我的设备来发送两个命令!
我应该怎么读,如果我知道最大数据大小,但不知道有多少字节,我会以特别的方式得到。
发生这种情况是因为该端口中没有任何东西。我对发生的事情没有深刻的理解,但是我现在通过创建指向/dev/ttyACM0 的符号链接并连接到它来解决这个问题。不明白为什么会这样 - 似乎只更改了描述符。– 沃龙威
如果您
可以使用Qt工具包,请尝试 doc.qt.io/qt-5/qserialport.html
相关文章:
- 编译C++时未定义的引用
- vscode g++链路故障:体系结构x86_64的未定义符号
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 如何使用数组 (C++) 读取具有未定义数量的值的 .txt 文件?
- 从文件行读取未定义数量的变量
- 如何读取NM命令:NM选项-T和-U(未定义)是什么意思
- 未定义的行为怪癖:在缓冲区外读取导致循环永远不会终止
- 读取文件内容时未定义的字符,文件末尾没有换行符
- 如何从uint8_t的缓冲区读取带符号整数,而不调用未定义或实现定义的行为
- 组合框初始化错误:无法读取未定义的属性'constructor'
- 如何使用 boost 从 com 端口读取未定义的字节数
- 使用 iostream 读取和签名字符时未定义的行为
- 读取不是最近在 GCC 中编写的成员是未定义的行为吗?
- c++使用eof()读取未定义的行数
- 从文件中读取对象时未定义的符号
- 通过无符号整数读取无符号字符数组未定义,因此不安全