node.jsを使用して、シリアルデータを取り込むサーバーを作成しています。シリアルデータはHTMLで正常に表示されています。ただし、データを保持できる「var」を作成したいと思います。誰か助けてもらえますか?
これが私のindex.htmlページです:
<!DOCTYPE html>
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
// open a connection to the serial server:
var socket = io.connect('http://localhost:8080');
// when you get a serialdata event, do this:
socket.on('serialEvent', function (data) {
// look for the textDisplay element in the HTML below:
var element = document.getElementById('IDTag');
// set the stuff inside the element's HTML tags to
// whatever the 'value' property of the received data is:
element.innerHTML = data.value;
});
</script>
</head>
<body>
And the latest is:
<div id="IDTag">The RFID Tag ID will show here.</div>
</body>
</html>
これが私のSerialServer.jsドキュメントです。
/*
serialServer.js
a node.js app to read serial strings and send them to webSocket clients
requires:
* node.js (http://nodejs.org/)
* express.js (http://expressjs.com/)
* socket.io (http://socket.io/#how-to-use)
* serialport.js (https://github.com/voodootikigod/node-serialport)
based on the core examples for socket.io and serialport.js
created 21 Aug 2012
modified 14 Oct 2012
by Tom Igoe
Patches and improvements suggested by Steve Klise, Lia Martinez, and Will Jennings
*/
var serialport = require("serialport"), // include the serialport library
SerialPort = serialport.SerialPort, // make a local instance of serial
app = require('express')(), // start Express framework
server = require('http').createServer(app), // start an HTTP server
io = require('socket.io').listen(server); // filter the server using socket.io
var serialData = {}; // object to hold what goes out to the client
server.listen(8080); // listen for incoming requests on the server
console.log("Listening for new clients on port 8080");
// open the serial port. Change the name to the name of your port, just like in Processing and Arduino:
var myPort = new SerialPort("/dev/tty.usbmodemfa131", {
// look for return and newline at the end of each data packet:
parser: serialport.parsers.readline("\r\n")
});
// respond to web GET requests with the index.html page:
app.get('/', function (request, response) {
response.sendfile(__dirname + '/index.html');
});
// listen for new socket.io connections:
io.sockets.on('connection', function (socket) {
// if there's a socket client, listen for new serial data:
myPort.on('data', function (data) {
// set the value property of scores to the serial string:
serialData.value = data;
// for debugging, you should see this in Terminal:
console.log(data);
// send a serial event to the web client with the data:
socket.emit('serialEvent', serialData);
});
});
前もって感謝します!