如何使用node.js检查sense帽子屏幕的开|关
我正在使用sense帽子在raspberry pi工作。现在我正在使用红色节点的sense帽子模拟器。现在我必须检查sense帽子屏幕的状态。我该怎么做 我尝试使用:如何使用node.js检查sense帽子屏幕的开|关,node.js,raspberry-pi,node-red,Node.js,Raspberry Pi,Node Red,我正在使用sense帽子在raspberry pi工作。现在我正在使用红色节点的sense帽子模拟器。现在我必须检查sense帽子屏幕的状态。我该怎么做 我尝试使用: msg.payload.screen==“打开” 及 msg.screen==“打开” 但是没有起作用。谁能帮帮我吗 我也尝试过: msg.background==“off | on”和msg.device==“off | on”根本不确定您实际想做什么,但这应该会有所帮助 SenseHat帧缓冲区是一个8x8 LED矩阵。这意味
msg.payload.screen==“打开”
及
msg.screen==“打开”
但是没有起作用。谁能帮帮我吗
我也尝试过:
msg.background==“off | on”
和msg.device==“off | on”
根本不确定您实际想做什么,但这应该会有所帮助
SenseHat帧缓冲区是一个8x8 LED矩阵。这意味着有64个LED,您可以向/dev/fb1
中的每个地址写入16位RGB565值,以使LED显示特定颜色。64个LED,每个LED的2个字节表示128个字节
因此,要关闭所有LED,您可以发送一组(128字节)的零:
dd if=/dev/zero of=/dev/fb1 bs=128 count=1
以及打开前几个随机颜色的LED:
echo AnyJunk > /dev/fb1
因此,如果要检查所有指示灯是否熄灭,则需要将帧缓冲区中的128字节与零进行比较。您可以通过生成128字节的零,然后像这样运行cmp
:
cmp <(cat /dev/fb1) <(dd if=/dev/zero bs=128 count=1)
cmp“传感器屏幕的状态”是什么意思?任何LED是否为非黑色?@techhunter侧边栏信息告诉您节点允许您执行的所有操作。我不知道你从哪里得到了screen
,但这不是这个节点所做的。发送到设备的命令应该:具有命令id/类型的'display'被格式化为JSON对象,有一个名为'screen'的属性,其值为'on'或'off'。例如:{“屏幕”:“开”}或{“屏幕”:“关”}@Knollerary我想检查sense hat是否收到了{screen:on}{screen:off}命令。@techhunter啊,你正在上物联网课程。任务是通过WatsonIoT从Bluemix上的Node RED向运行Node RED的raspberry Pi发送命令。Pi上的流应该接收该命令,并将其转换为适当的命令以发送到附加的SenseHAT。您不会将{screen:on}发送到SenseHAT本身。请关注Coursera作业论坛。您好,非常感谢您的代码。但它看起来像linux平台上的python代码。我赞成你的答案,因为它将有助于其他人谁搜索以上。
echo AnyJunk > /dev/fb1 # Turn some LEDs on
# Check all zero, but they are not so the comparison fails
cmp <(cat /dev/fb1) <(dd if=/dev/zero bs=128 count=1)
1+0 records in
1+0 records out
128 bytes (128 B) copied, 0.000237917 s, 538 kB/s
/dev/fd/63 /dev/fd/62 differ: byte 1, line 1
echo $?
1
dd if=/dev/zero of=/dev/fb1 bs=128 count=1
cmp <(cat /dev/fb1) <(dd if=/dev/zero bs=128 count=1)
1+0 records in
1+0 records out
128 bytes (128 B) copied, 0.000289063 s, 443 kB/s
echo $?
0