将消息发送到“屏幕”以由 /dev 上的设备接收

将消息发送到“屏幕”以由 /dev 上的设备接收

我的问题可能看起来微不足道......但这是因为尽管我有长期的 linux/unix/osx 系统经验,但我发现自己缺乏一些基本概念。

我创建了一个小型蓝牙/arduino 开关来控制家里的一些电器。这是一个简单的程序,如下所示http://www.tinkernut.com/2014/03/arduino-bluetooth-basics/

要启用或禁用我的开关,我这样做:

screen /dev/tty.HC-06-DevB

然后我在控制台中输入 0 或 1,我的开关就会打开或关闭。

有用。真的,这没什么难的...只是我不知道与/dev/中的资源通信背后的原理,并且我不知道如何开始学习。

我怎样才能有一个简单的命令来发送 1 或 0 到这个特定的设备?就像是:

echo 1 > screen /dev/tty.HC-06-DevB

我尝试了下面的命令,它不起作用:

echo 1 > /dev/tty.HC-06-DevB
zsh: resource busy: /dev/tty.HC-06-DevB

在哪里可以了解 /dev 中的这些“东西”是什么?

PS:我使用的是 OS X El Capitan。

答案1

这是的手册screen。查找screen您感兴趣的特定命令行选项。

例如,-r重新连接到分离的屏幕进程。
-R如果可能则重新连接,否则启动新会话。我认为这就是您正在寻找的选项。

所以,我会这样做:

$ screen -R /dev/tty.HC-06-DevB

也来自手册页:

-D (-r) 分离并注销远程(然后在此处重新连接)。

如果您认为我误解了某些内容,请随时发表评论。

答案2

经过多次阅读,并感谢 Bibek_G 的回答帮助我在互联网上找到了一些链接,我终于明白了我需要什么以及如何使事情发挥作用。实际上,我想做的不需要屏幕......正确的命令是:

sudo echo 1 > /dev/cu.HC-06-DevB

一开始没用,因为我没有用过sudo

顺便说一句,我还学会了如何使用screen

谢谢你们。

相关内容