首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash脚本从串行设备读取N字节二进制数据并将其保存到文件中

Bash脚本从串行设备读取N字节二进制数据并将其保存到文件中
EN

Stack Overflow用户
提问于 2020-12-12 14:44:38
回答 1查看 961关注 0票数 0

我正在尝试编写一个Bash脚本,以便从连接到我的嵌入式设备的串行设备接收已知数量为Bytes的文件(我们正在谈论的是1MB)。然后,必须将这些字节保存到文件中以供以后的操作使用。

我尝试过类似于(stty raw; cat > blob.bin) < /dev/ttyS0的东西,但是我希望cat在达到我所期望的字节数时停止,因为脚本在文件完成后需要在其他函数上取得进展。

数据流将从外部设备启动,并将持续运行,直到外部设备的二进制文件结束为止。

在Linux上工作,不幸的是我不能使用Python或其他编程语言。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-14 19:51:18

由于@meuh的评论,我能够使用dd编写一个工作脚本

代码语言:javascript
运行
复制
dd ibs=1 count=$PLBYTE iflag=count_bytes if=/dev/ttyS0 of=/.../dump.bin

使用dd操作数计数和时差,(计数接收到的字节和读取1字节/块)和$PLBYTE预期的字节数。

该脚本现在按照预期工作。

确保在非规范模式(-icanon)中设置stty,否则超过4096字节的数据将被截断,而dd将不会收到预期的字节数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65266213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档