2
1
mirror of https://github.com/s00500/nodeMessageBoard.git synced 2024-11-21 13:10:55 +00:00

First poc

This commit is contained in:
Lukas Bachschwell 2016-03-07 21:48:50 +01:00
parent 67d82d49b2
commit e1d0eac6a5
3 changed files with 36 additions and 97 deletions

View File

@ -1,4 +1,5 @@
<!DOCTYPE HTML>
<!DOCTYPE html>
<meta charset="UTF-8">
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
@ -33,17 +34,6 @@
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
// canvas request for all browsers
window.requestAnimFrame = (function(callback) {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000 / 30); // 30 frames per second
};
})();
var iosocket;
var pollOneH = 0;
@ -54,95 +44,39 @@
//var onOff = false;
var toggleVal = 0;
function animation(poll1,text)
{
var canvas = document.getElementById("myCanvas");
var content = canvas.getContext("2d");
// clear canvas
content.clearRect(0, 0, 460, 540);
content.fillStyle = 'black';
content.textAlign = 'center';
content.font = '20pt Calibri';
// make the wobbely values stop
if(pollOneH*2 > prevPotValue+2 || pollOneH*2 < prevPotValue-2){
prevPotValue = potValue;
potValue = pollOneH*2;
}
content.fillText('Potmeter value: ' + potValue, text.x, text.y);
// render graph
content.fillStyle = 'orange';
content.fillRect(poll1.x,(poll1.y-poll1.h),poll1.w,poll1.h);
content.fill();
// request new frame
requestAnimFrame(function() {
if(poll1.h < pollOneH){
poll1.h += (pollOneH - poll1.h)*.15;
}
else if(poll1.h > pollOneH){
poll1.h -= (poll1.h - pollOneH)*.15;
}
text.y = (poll1.y - poll1.h) - 5;
animation(poll1,text);
});
}
function initSocketIO()
{
iosocket = io.connect();
iosocket.on('onconnection', function(value) {
pollOneH = value.pollOneValue/2; // recieve start poll value from server
initPoll();
initButton();
initSlider();
// recieve changed values by other client from server
iosocket.on('updateData', function(recievedData) {
pollOneH = recievedData.pollOneValue/2; // recieve start poll value from server
});
iosocket.on('newMessage', function(message) {
var date = new Date();
var mainTable = document.getElementById("mainTable");
var newRow = mainTable.insertRow(mainTable.rows.length);
var dateCell = newRow.insertCell(0);
var textCell = newRow.insertCell(1);
dateCell.innerHTML = date.toLocaleString();
textCell.innerHTML = message;
});
});
}
function initPoll()
{
poll1 = {
x: 10,
y: 540,
w: 440,
h: 0
}
text = {
x:poll1.w/2,
y:100
}
potValue = pollOneH*2;
prevPotValue = potValue;
animation(poll1,text);
}
function initButton()
{
$( "#check" ).button();
}
function initSlider()
{
$( "#slider" ).slider({
min:0,
max:255,
change: function(event,ui) {
iosocket.emit('sliderval',ui.value);
}
});
}
window.onload = function() {
initSocketIO();
};
@ -151,18 +85,24 @@
$('#check').click(function() {
toggleVal += 1;
toggleVal %= 2;
iosocket.emit('buttonval',toggleVal);
iosocket.emit('sendAT',toggleVal);
});
});
</script>
</head>
<body>
<div id="rData">
<h2>Data from Arduino</h2>
<canvas id="myCanvas" width="460" height="540"></canvas>
<h2>Data from Sim900</h2>
<table id="mainTable" border="1">
<tr>
<td>Uhrzeit</td><td>Nachricht</td>
</tr>
</table>
</div>
<div id="sData">
<h2>Data to Arduino</h2>
<h2>Debug functions</h2>
<div id="btnHolder">
<input type="checkbox" id="check" value="toggle"/><label for="check">Toggle LED</label>
</div>

View File

@ -8,7 +8,7 @@ server = require('./server');
function sendInterface(response) {
console.log("Request handler 'interface' was called.");
response.writeHead(200, {"Content-Type": "text/html"});
var html = fs.readFileSync(__dirname + "board.html")
var html = fs.readFileSync(__dirname + "/board.html")
response.end(html);
}

View File

@ -44,14 +44,10 @@ function initSocketIO(httpServer,debug)
socketServer.on('update', function(data) {
socket.emit('updateData',{pollOneValue:data});
});
socket.on('buttonval', function(data) {
socket.on('sendAT', function(data) {
serialPort.write('AT\r');
console.log('sending:..');
console.log('sending AT...');
});
socket.on('sliderval', function(data) {
serialPort.write(data + 'P');
});
});
}
@ -71,12 +67,15 @@ function serialListener(debug)
serialPort.on('data', function(data) {
//receivedData += data.toString();
//if (receivedData .indexOf('E') >= 0 && receivedData .indexOf('B') >= 0) {
sendData = '50'; //.substring(receivedData .indexOf('B') + 1, receivedData .indexOf('E'));
sendData = data; //.substring(receivedData .indexOf('B') + 1, receivedData .indexOf('E'));
receivedData = '';
console.log('server event happening..' + data + '.\r');
//}
// send the incoming data to browser with websockets.
socketServer.emit('update', sendData);
//socketServer.emit('update', sendData);
//if is message and is parsed
socketServer.emit('newMessage', sendData);
});
//setTimeout(sendPin,500);
serialPort.write('AT+CPIN=3797\r');