接收javascript中的异步数据
我使用的Linux嵌入式设备只能运行QML/Javascript项。没有可用的编译器,没有Python,没有curl,没有Node.js,没有包管理器。。。但是我可以写bash脚本 我需要从bash脚本向QML/JS对象发送异步数据。 到目前为止,我做了相反的事情:JS读取从bash脚本创建的文件:接收javascript中的异步数据,javascript,bash,udp,qml,ipc,Javascript,Bash,Udp,Qml,Ipc,我使用的Linux嵌入式设备只能运行QML/Javascript项。没有可用的编译器,没有Python,没有curl,没有Node.js,没有包管理器。。。但是我可以写bash脚本 我需要从bash脚本向QML/JS对象发送异步数据。 到目前为止,我做了相反的事情:JS读取从bash脚本创建的文件: #!/bin/bash stty -F /dev/ttyS1 115200 -echo echo "Receiver is listening..." file="/dev/ttyS1" whi
#!/bin/bash
stty -F /dev/ttyS1 115200 -echo
echo "Receiver is listening..."
file="/dev/ttyS1"
while read -r line; do
echo "$line"
target=${line:0:1}
echo "$target"
if [ "$target" = "C" ]; then
echo "${line#?}" > /tmp/file1
elif [ "$target" = "D" ]; then
echo "${line#?}" > /tmp/file2
fi
done < "${file}"
Bash脚本:
#!/bin/bash
stty -F /dev/ttyS1 115200 -echo
echo "Receiver is listening..."
file="/dev/ttyS1"
while read -r line; do
echo "$line"
target=${line:0:1}
echo "$target"
if [ "$target" = "C" ]; then
echo "${line#?}" > /tmp/file1
elif [ "$target" = "D" ]; then
echo "${line#?}" > /tmp/file2
fi
done < "${file}"
但它对异步数据没有用处,因为由于轮询时间的关系,我可能会丢失一些内容,或者得到已读内容的副本
我正在寻找从bash脚本向QML/JS项发送字节的另一种方法。我能够从bash发送UDP数据包:
echo "Hello world!" > /dev/udp/192.168.1.10/6188
但我不知道如何在JS中接收它们。
是否有其他的方法来实现同样的目标?最好的方法是在C++中编写一些扩展,它将创建UDP套接字等待数据,然后将它传递给TI QML。否则就没有问题了!只是出于兴趣,Qt是如何为平台编译的?制造商构建了一个Yocto环境并交叉编译了Qt。我认为您应该关注定制扩展的方向。我的意思是,如果您知道什么是平台、Qt版本等,您可以使用交叉编译器构建扩展,然后将其安装到目标平台中。另一个解决方法…可能是WebSocket,但我看到您使用QtQuick1。