Newsgroup: it.comp.lang.javascript
Titolo: steel series javascript  leggere  dati reali

Ciao,
 
ho questo codice che usa steelseries javascript che permette di creare 
degli indicatori tramite javascript 
http://harmoniccode.blogspot.it/2011/04/steelseries-javascript-edition.html
 
 
Come si può notare dalle ultime righe della sezione i valori vengono 
generati in modo random chiaramente io ho bisogno di leggere dei valori 
che attualmente sono salvati in un file di testo (realtime.txt) che 
allego sotto come posso fare?
 
 
 
Codice:
 
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="utf-8" />
 
 
 
   <title>templates</title>
 
 
   <script type="text/javascript" 
src="../file_comuni/javascript/jquery/jquery-1.7.js"></script>
   <script type='text/javascript' src='tween.js'></script>
   <script type='text/javascript' src='steelseries.js'></script>
 
   <script type='text/javascript' >
   function init()
{
   // Define some sections
   var sections = Array(steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),
                        steelseries.Section(25, 50, 'rgba(0, 220, 0, 
0.3)'),
                        steelseries.Section(50, 75, 'rgba(220, 220, 0, 
0.3)'));
 
   // Define one area
   var areas = Array(steelseries.Section(75, 100, 'rgba(220, 0, 0, 0.3)'));
 
   // Create one radial gauge
   var radial1 = new steelseries.Radial(
                     'canvas1', {
                     section: sections,
                     area: areas,
                     titleString: 'Test',
                     unitString: 'Unit',
                     pointerType: steelseries.PointerType.TYPE8
                     });
 
// Create a second radial gauge
   var radial2 = new steelseries.Radial(
                     'canvas2', {
                     gaugeType: steelseries.GaugeType.TYPE2, 
 
                     maxValue: 50,
                     threshold: 40,
                     section: 
Array(steelseries.Section(0,40,'rgba(0,255,0,0.3)')),
                     area: 
Array(steelseries.Section(40,50,'rgba(255,0,0,0.5)')),
                     titleString: 'Test',
                     unitString: 'Unit',
                     frameDesign: steelseries.FrameDesign.CHROME,
                     backgroundColor: 
steelseries.BackgroundColor.LIGHT_GRAY,
                     pointerType: steelseries.PointerType.TYPE2,
                     pointerColor: steelseries.ColorDef.BLUE,
                     lcdColor: steelseries.LcdColor.BLUE2, 
 
                     ledColor: steelseries.LedColor.BLUE_LED,
                     });
 
   // Create a radial bargraph gauge
   var radial3 = new steelseries.RadialBargraph(
                     'canvas3', {
                     gaugeType: steelseries.GaugeType.TYPE3,
                     titleString: "Title",
                     unitString: "Unit",
                     frameDesign: steelseries.FrameDesign.BLACK_METAL,
                     backgroundColor: 
steelseries.BackgroundColor.LIGHT_GRAY,
                     valueColor: steelseries.ColorDef.YELLOW,
                     lcdColor: steelseries.LcdColor.YELLOW,
                     ledColor: steelseries.LedColor.YELLOW_LED,
                     });
 
   // Let's set some values...
 
 
 
 
	setInterval(function(){ setRandomValue(radial1, 100); }, 2000);	
		  	setInterval(function(){ setRandomValue(radial2, 1); }, 1800);	
	  		setInterval(function(){ setRandomValue(radial3, 100); }, 1500);
         }
 
		function setRandomValue(gauge, range)
     	{
     		gauge.setValueAnimated(Math.random() * range);
     	}
	</script>
</head>
<body onload="init()">
	<canvas id='canvas1' width='200' height='200'>
		No canvas in your browser...sorry...
	</canvas>
	<canvas id='canvas2' width='200' height='200'></canvas>
     <canvas id='canvas3' width='200' height='200'></canvas>
</body>
 
fine codce
 
realtime.txt
 
codice
29/04/2012
12:55:10
15.4
20.3
00:13
13.3
11:10
78
94
11:30
50
00:10
11.6
13.9
12:22
9.5
00:10
15.4
13.3
11:10
15.4
20.3
00:13
0.0
30.6
07:46
0.0
222
SW
1016.8
+
1017.1
10:34
1013.4
06:26
1.27
1.02
241.81
328.93
0.00
2.29
09:33
n.d.
 
fine codice
 
grazie
 
Ugo

 allego sotto come posso fare?
 
Primo, devi leggere il file di testo. Puoi farlo usando XMLHttpRequest
(o tramite jquery o quel che č). Ovviamente il file deve risiedere nello
stesso server dove risiede la pagina HTML che vuole accedervi.
 
Una volta che ottieni il contenuto del file in una stringa, devi
interpretarne le informazioni. Puoi ottenere un array di ogni riga
facendo uno `split` della stringa usando `\n` per esempio come
delimitatore, e poi ciclare le varie linee, oppure avere una regexp piů
complessa.
La struttura č nota a te, quindi sei tu che devi decidere come queste
informazioni devono essere interpretate.
 
Una volta fatto questo, devi decidere ogni quanto aggiornare il valore.
Ovvero, non una un valore solo ma una lista di valori, quindi ogni
quanto devono cambiare? Inoltre, cosa deve accadere una volta raggiunta
la fine della lista dei valori?