forked from lbsadmin/nodeMessageBoard
		
	
		
			
				
	
	
		
			174 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML>
 | |
|  <html>
 | |
|    <head>
 | |
|     <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
 | |
|     <style>
 | |
| 	body {
 | |
| 		margin: 0px;
 | |
| 		padding: 0px;
 | |
|         }
 | |
| 	#rData{
 | |
| 		float:left;
 | |
| 		margin-left:100px;
 | |
| 		margin-right:auto;
 | |
| 		width:470px;
 | |
| 	}
 | |
| 	#sData{
 | |
| 		float: left;
 | |
| 		margin-left:100px;
 | |
| 		margin-right:auto;
 | |
| 		width:470px;
 | |
| 	}
 | |
| 	h2{
 | |
| 		text-align:center;
 | |
| 	}
 | |
|         #myCanvas {
 | |
| 		border: 2px dashed grey;
 | |
|         }
 | |
| 	#btnHolder, #sliderTxt{
 | |
| 	text-align:center;
 | |
| 	}
 | |
|     </style>
 | |
|         <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
 | |
| 	<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;
 | |
| 	var poll1;
 | |
| 	var text;
 | |
| 	var potValue;
 | |
| 	var prevPotValue;
 | |
| 	//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
 | |
| 		});
 | |
| 	    });
 | |
| 	}
 | |
| 
 | |
| 	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();
 | |
|         };
 | |
| 
 | |
|       $(document).ready(function() {
 | |
|         $('#check').click(function() {
 | |
|             toggleVal += 1;
 | |
| 	    toggleVal %= 2;
 | |
| 	    iosocket.emit('buttonval',toggleVal);
 | |
| 	 });
 | |
| 	});
 | |
|     </script>
 | |
|   </head>
 | |
|   <body>
 | |
|    <div id="rData">
 | |
| 	<h2>Data from Arduino</h2>
 | |
|     <canvas id="myCanvas" width="460" height="540"></canvas>
 | |
|    </div>
 | |
|        <div id="sData">
 | |
| 	<h2>Data to Arduino</h2>
 | |
| 	<div id="btnHolder">
 | |
| 	  <input type="checkbox" id="check" value="toggle"/><label for="check">Toggle LED</label>
 | |
| 	</div>
 | |
| 	<p id="sliderTxt">LED Dimmer</p>
 | |
| 	<div id="slider"></div>
 | |
|    </div>
 | |
|   </body>
 | |
| </html>
 |