我有一个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或Googles V8脚本的内容。但我想先听听你的建议。
顺便说一句,如果这很重要的话,我会在一个raspi上运行它。
感谢您的帮助
编辑:
我正在尝试使用mysql数据库,其中我的cpp文件使用来自http://dev.mysql.com/doc/connector-cpp/en/的Connector / c ++从传感器写入数据,我的网站会读取它们。
答案 0 :(得分:0)
您可以将C ++代码编译为Node.js插件,然后可以使用插件注册JavaScript函数,C ++在更新值时会调用该插件。这样,您可以以托管和受控的方式将值直接从C ++传递到Javascript。
Node.js还有一个额外的好处,就是能够托管你的网页并完成所有可能是C ++痛苦的Websocket和HTTP。
答案 1 :(得分:0)
如果您的脚本对如何访问数据文件很聪明,则无需刷新!如果您手头有网络服务器:请注意您的网络服务器可以访问您的数据文件,然后让您的脚本通过ajax(link to w3schools)
请求该文件答案 2 :(得分:0)
我在BeagleBone Black上做类似的事情。使用websocketd,您可以将任何程序转换为websocket端点,然后通过stdin和stdout命令发送数据。这对您来说是一个特别好的解决方案,因为websockets旨在处理不断变化的信息。