接收javascript中的异步数据

接收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

我使用的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"

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。