将值从 C++ 传递到 Javascript

Passing Value from C++ to Javascript

我有一个从传感器读取值的 C++ 文件,我想在网站上动态显示这些值。所以我正在寻找一种方法将这些值(整数)从我的 cpp 文件传递​​到 javascript 并在网站上显示它们。

我的第一个简单尝试是每秒从我的 cpp 脚本中将值作为变量写入 js 文件。然后 Js 使用此文件作为源并在站点上显示其变量:

cpp:

fprintf(file, "var mx=%d, my=%d, mz=%d, ax=%d, ay=%d, az=%d, gx=%d, gy=%d, gz=%d;\n",
    imu.raw_m[0], imu.raw_m[1], imu.raw_m[2],       // M = Magnetometer
    imu.raw_a[0], imu.raw_a[1], imu.raw_a[2],       // A = Accelerometer
    imu.raw_g[0], imu.raw_g[1], imu.raw_g[2]        // G = Gyroscope
);

html/js:

<script src="./imu.js" type="text/javascript"></script>

现在的问题当然是,我需要一直刷新页面,因为 imu.js 文件被网站缓存了。

我宁愿有一种方法可以直接将整数从 cpp 文件传递​​给 js 脚本。我阅读了一些关于 json 或 Google 的 V8 脚本的内容。但我想先听听你的建议。

顺便说一下,我 运行 这个在 raspi 上,如果这很重要的话。

感谢您的帮助

编辑:

我将尝试使用 mysql 数据库,我的 cpp 文件使用来自 http://dev.mysql.com/doc/connector-cpp/en/ 的 Connector/c++ 写入来自传感器的数据,我的网站读取他们。

您可以将您的 C++ 代码编译成一个 Node.js 插件,然后您可以在您的插件中注册一个 JavaScript 函数,C++ 在更新值时调用该函数。这样你就可以以一种管理和控制的方式将值直接从 C++ 传递到 Javascript。

Node.js 的额外好处是能够托管您的网页并执行所有在 C++ 中可能会很麻烦的 Websocket 和 HTTP 操作。

如果您的脚本知道如何访问数据文件,则无需刷新!如果您手头有一个网络服务器:请注意您的数据文件可以通过您的网络服务器访问,然后让您的脚本通过 ajax (link to w3schools)

请求该文件

我正在 BeagleBone Black 上做类似的事情。使用 websocketd,您几乎可以将任何程序转换为 websocket 端点,然后通过 stdin 和 stdout 命令发送数据。这对您来说是一个特别好的解决方案,因为 websocket 旨在处理不断变化的信息。