julianmueller
julianmueller

Reputation: 131

Passing Value from C++ to Javascript

i have a c++ file which reads values from a sensor and I want to display those values on a website dynamically. So Im looking for a way to pass these values(integers) from my cpp file to an javascript which displays them on the site.

My first, simple try was to write the values into a js file as variables every second from my cpp script. The Js then uses this file as a source and displays its variables on the site:

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>

The Problem now is of course, that I need to refresh the page all the time, because the imu.js file is cached by the website.

I'd rather have a way to directly pass to integers from the cpp file to the js script. I read something about json or Googles V8 script. But I'd like to hear your suggestions first.

By the way, Im running this on a raspi, if this is important.

Thanks for your help

EDIT:

I'm goning to try it with a mysql database, in which my cpp file writes the data from the sensor with Connector/c++ from http://dev.mysql.com/doc/connector-cpp/en/ and my website reads them.

Upvotes: 0

Views: 4946

Answers (3)

mbbackus
mbbackus

Reputation: 13

I'm doing something similar on a BeagleBone Black. With websocketd you can turn pretty much any program into a websocket endpoint and then send data via stdin and stdout commands. This would be a particularly good solution for you since websockets are designed to handle information that's constantly changing.

Upvotes: 0

Matthias
Matthias

Reputation: 3556

You do not have to refresh if your script is smart about how to access the data file! In case you do have a webserver at hand: Take care that your data file is accessible by your webserver and then let your script request the file via ajax (link to w3schools)

Upvotes: 0

TheZapper
TheZapper

Reputation: 152

You could compile your C++ code into a Node.js plugin, you can then register a JavaScript function with your plugin which the C++ calls when it updates the value. That way you can pass values directly from C++ into Javascript in a managed and controlled way.

Node.js has the added benefit of being able to host your webpage and do all the Websocket and HTTP stuff that can be a pain in C++.

Upvotes: 1

Related Questions