// http://www.w3schools.com/JS/js_examples.asp

function showMyExternalInput()
{
	var res="Text from showMyExternalInput";
	return res;
};



function analyzeUDP(aa)
{
var result=[];

	if (aa==null) return result;
	if (aa.length<20) return result; // leere Zeilen ausfiltern

// Einzelnes UDP-Paket
// aa="$DPTAW,2010/02/10,19:21,BDSchriesh,502,2,7,0,4,11,25,,355,1,,-7.5,-7.7,-5.4,,,,,-9.4,86,76,95,B,11.5,*3B";

// Datum extrahieren
var adatum=new Date(aa.slice(7,17)+"\/"+aa.slice(18,23)); // document.write("***"+adatum+"***<br>");

// Abschneiden Kennung, Datum, Ort und Checksum
var adaten=aa.slice(24+11,-4); // document.write("***"+adaten+"***<br>");

// zur Auswertung duerfen nur noch Zahlen enthalten sein
// Buchstabe E wie Externe Stromversorgung/Solarpanel ersetzen durch Zahl 1
// Buchstabe B wie Batterie ersetzen durch Zahl 0
adaten=adaten.replace("E","1");
adaten=adaten.replace("B","0");

// ACHTUNG: geht schief, wenn schlechte Zahlen uebermittelt werden, z.B. Feld 14 min-Temperatur hier: -2228.94.6
// $DPTAW,2010/11/15,21:06,BDSchriesh,514,2,4,1,0,14,22,,40,80,,4.2,-2228.94.6,4.6,,,,,4.0,99,99,126,B,11.4,*34
// adaten=adaten.replace("-2228.9","");
// adaten=adaten.replace("-2528","");
adaten=adaten.replace("-3179.12872.8","");
// adaten=adaten.replace("-3179.12872.8","");
adaten=adaten.replace("-2682.847.1","");
adaten=adaten.replace("-29917","");
adaten=adaten.replace("-11106","");

// try()
// scheint nur leider nicht zu helfen, schlechte Daten muessen trotzdem vorher aussortiert werden
var adatenFeld;
try {
 adatenFeld=eval("["+adaten+"]");
 } catch (Exception) {;};
// } catch (Exception e) 
// {};

var dir=adatenFeld[8];

var energySource="Batterie";
if (adatenFeld[22]==1) energySource="Solar";

// var energySource=12;
// if (adatenFeld[22]==1) energySource=13;

var compass=["N","NNO","NO","ONO","O","OSO","SO","SSO","S","SSW","SW","WSW","W","WNW","NW","NNW","N","NNO","NO","ONO","O","OSO","SO","SSO","S","SSW","SW","WSW","W","WNW","NW","NNW","N"];

var directionText;
directionText=compass[Math.round(dir/22.5)];

/*
// document.write("Messung: "+aa.slice(7,23)+" Uhr<br><br>");
document.write("Messung: "+adatum.toLocaleString()+" Uhr<br><br>"); 			result.push(adatum);
document.write("<b>Wind Richtung: "+adatenFeld[8]+"° "+directionText+"</b>"); 	result.push(adatenFeld[8]); result.push(directionText);
document.write(" ± "+adatenFeld[9]+"° <br>"); // Wind Richtung Abweichung:    	result.push(adatenFeld[9]);
document.write("<b>Wind: "+adatenFeld[2]+" km\/h</b>");                      	result.push(adatenFeld[2]);
document.write(" ± "+adatenFeld[3]+" km\/h<br>");                       		result.push(adatenFeld[3]);
document.write("Wind min: "+adatenFeld[4]+" km\/h<br>");						result.push(adatenFeld[4]);
document.write("Wind max: "+adatenFeld[5]+" km\/h<br><br>");					result.push(adatenFeld[5]);

document.write("Temperatur: "+adatenFeld[11]+" °C<br>");						result.push(adatenFeld[11]);
document.write("Temperatur min: "+adatenFeld[12]+" °C<br>");					result.push(adatenFeld[12]);
document.write("Temperatur max: "+adatenFeld[13]+" °C<br>");					result.push(adatenFeld[13]);

document.write("Stromquelle: "+energySource+" <br>");							result.push(energySource);
document.write("Batteriespannung: "+adatenFeld[23]+" V<br>");					result.push(adatenFeld[23]);
*/

// result.push(aa.slice(7,23));//  0 Datum
// result.push(aa.slice(18,23));//  0 Datum
result.push(aa.slice(7,17)+" "+aa.slice(18,23)); //  0 Datum
result.push(adatenFeld[8]); //  1 Windrichtung
result.push(directionText); //  2 Windrichtung als Text
result.push(adatenFeld[9]); //  3 Windrichtung Abweichung
result.push(adatenFeld[2]); //  4 Wind
result.push(adatenFeld[3]); //  5 Wind Abweichung
result.push(adatenFeld[4]); //  6 Wind min
result.push(adatenFeld[5]); //  7 Wind max

result.push(adatenFeld[11]);//  8 Temperatur
result.push(adatenFeld[12]);//  9 Temperatur min
result.push(adatenFeld[13]);// 10 Temperatur max

result.push(adatenFeld[18]);// 11 Taupunkt
result.push(adatenFeld[19]);// 12 rel. Feuchtigkeit

result.push(energySource);  // 13   11 Batterie oder Solar
result.push(adatenFeld[23]);// 14   12 Batteriespannung
return result;
};


//--------------------------------------------------------------------------
function getMeasurements4()
{
	$("#mycheck").text("getMeasurements4 ajax received:");
};

//--------------------------------------------------------------------------
function getMeasurements(p)
{
var result=[];
var dd=[];
var t,t0;
var oldTimeVal,newTimeVal;
var oldDay=0,tt=0;
var toff

	dd=analyzeUDP(measured[0]);
	oldTimeVal=(new Date(dd[0])).valueOf();

	for (x99 in measured)
	{
		dd=analyzeUDP(measured[x99]);
		t0=new Date(dd[0]);
		
		var offset=t0.getTimezoneOffset();
		
		toff=t0.valueOf()-offset*60000; // 
		t=new Date(toff);
		

		
		// t-=t.getTimezoneOffset();
		tt=t.getDay();
		newTimeVal=t.valueOf();

		if ((tt!=oldDay) || (newTimeVal-oldTimeVal)>3600000)
		{
			result.push(null);
		}; 
		
		if ((tt!=oldDay))
		{
			result.push(null);
		}; 
		

		// document.write("tt: "+oldDay+" "+(tt-oldDay)+" "+tt+" V<br>");	
	
		if (dd[1]>=0 && dd[1]<16) { dd[1]+=360; };
		
		
		if (p==1)
		{
			if (dd[1]<0)
			{
				result.push(null);
			} else
			{
				result.push([t,-dd[p]*0.1]);
			};
		} else 
		{
			if (p==12)
			{
				if (dd[12]<0)
				{
					result.push(null);
				} else
				{
					result.push([t,dd[p]*1.0]); // 
				};
			} else result.push([t,dd[p]]);;
		};

		oldDay=tt;
		oldTimeVal=newTimeVal;
	};
	
	return result;
};



