cas 저울, node.js (serialport, socket.io ) 로 데이터 가져오기
html 소스
var clientUrl = location.href; var values = clientUrl.split("?"); parameters = values[1]; var parameterArray = parameters.split("&"); var clientIP = parameterArray[0].split("=")[1];
if(clientIP == null || clientIP.length <= 0)
{
clientIP = "111.111.11.23";
}
document.write("
node.js 소스
const SerialPort = require('serialport')
const Readline = SerialPort.parsers.Readline
const port = new SerialPort('COM5', {
baudRate: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: false
})
const parser = new Readline()
//const parser = port.pipe(new Readline({ delimiter: '\r\n' }));
port.pipe(parser);
//parser.on('data', console.log);
port.write('main screen turn on', function(err) {
if (err) {
return console.log('Error on write: ', err.message)
}
console.log('message written')
})
//////////////////////////////////////////////////////////////////////////////
//status : open, close
var serialStatus = 'close'
// 8080 포트로 소켓을 연다
var io = require('socket.io').listen(9090)
// connection이 발생할 때 핸들러를 실행한다.
io.on('connection', function (socket) {
console.log('io coonneecct')
var date = new Date()
// 요소를 추출합니다.
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDay()
var hours = date.getHours()
var minutes = date.getMinutes()
var seconds = date.getSeconds()
console.log('Node Server Start!! : ' + year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds)
console.log('io sockets connected.')
// client에서 serialEvent가 발생하면 데이터를 받는다.
socket.on('serialEvent', function (data) {
console.log('----------------------===')
//현재상태값
console.log('serial port status is [' + serialStatus + ']')
//client의 이벤트 종류
console.log('client serial event type is [' + data.type + ']')
if(data.type == 'open'){
console.log('serial port status [close] -> [open]');
console.log(serialStatus);
//현재상태가 close일때만
if(serialStatus == 'close') {
// serial port 연결
console.log('serial port connnect');
//port.on('open', function() {
// open logic
parser.on('data', function (data) {
console.log('Ddddata:', data);
io.sockets.emit('message', data.toString());
});
}
}
//serial port close ---------------------------------------------------
else{
console.log('serial port status [open] -> [close]');
//현재상태값이 open일때만
if(serialStatus == 'open') {
// serial port 닫음
//port.close(function () {
console.log('serial port closed.');
//현재상태값을 close로 변경
serialStatus = 'close'
//});
}else {
//현재상태값을 close로 변경
serialStatus = 'close'
}
}
})
//disconnect이 발생할 때 핸들러
socket.on('disconnect', function () {
console.log('io sockets disconnected.');
console.log('Node Server Close!! : ' + year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds);
})
})
==========================
소스 올린게 엉망이지만
node.js 에서 serialport 모듈로 저울 값을 받아와
socket.io 모듈로 전송 하여 html 화면에 그려준다.