Jump to content

Recommended Posts

Posted

Hallo zusammen,

 

ich wollte eigentlich fix eine Tabelle mit Werten über javascript zeichnen und die Werte vorher von unterschiedlichen TF Bricklets einlesen. Dazu habe ich unteranderem das html Beispiel vom temperatur IR genommen und das Ende vom Code noch ein paar Zeilen eingefügt, damit eine Tabelle gezeichnet wird:

 

<script src="./Tinkerforge.js" type='text/javascript'></script>
	<script type='text/javascript'>
		var wert = new Array();
		var ipcon;
		var textArea = document.getElementById("text");
		function info()
		{
			textArea.value = "";
			var HOST = "192.168.178.150";
			var PORT = "4280";
			var UIDT = "9vY";
			var UIDA = "jzp";
			var UIDM = "kvP";
			var SECRET = "DasGeheimnis22";
			if (ipcon !== undefined)
			{
				ipcon.disconnect();
			}
			ipcon = new Tinkerforge.IPConnection(); // Create IP connection
			var tir = new Tinkerforge.BrickletTemperatureIR(UIDT, ipcon); // Create device object
			var al = new Tinkerforge.BrickletAmbientLight(UIDA, ipcon); // Create device object
			var m = new Tinkerforge.BrickletMoisture(UIDM, ipcon);

			ipcon.connect(HOST, PORT, function(error)
			{
				textArea.value += 'Error: ' + error + '\n';
			}); // Connect to brickd
			// Don't use device before ipcon is connected

			// Register Connected Callback
			ipcon.on(Tinkerforge.IPConnection.CALLBACK_CONNECTED,
			// Authenticate each time the connection got (re-)established
			function(connectReason)
			{
				ipcon.authenticate(SECRET, function()
				{
					tir.getObjectTemperature(function(obj)
					{

						textArea.value += 'Object Temperature: ' + obj / 10 + ' °C\n';
						wert[0] = obj;
					}, function(error)
					{
						textArea.value += 'Error: ' + error + '\n';
					});
					tir.getAmbientTemperature(function(amb)
					{
						textArea.value += 'Ambient Temperature: ' + amb / 10 + ' °C\n';
					}, function(error)
					{
						textArea.value += 'Error: ' + error + '\n';
					});

					al.getIlluminance(function(illuminance)
					{
						textArea.value += 'Illuminance: ' + illuminance / 10 + ' Lux\n';
					}, function(error)
					{
						textArea.value += 'Error: ' + error + '\n';
					});
					m.getMoistureValue(function(moisture)
					{
						textArea.value += 'Moisture: ' + moisture + '\n';
					}, function(error)
					{
						textArea.value += 'Error: ' + error + '\n';
					});

				}, function(error)
				{
					textArea.value += 'Could not authenticate: ' + error + '\n';
				});

			});

			document.write("<table>");
			document.write("<tr>");
			document.write("<td class='fc'>Object Temperature:</td>");
			document.write("<td class='mc'>" + wert[0] + "</td>");
			document.write("<td class='lc'>°C</td>");
			document.write("</tr>");
			document.write("<tr>");
			document.write("<td class='fc'>Ambient Temperature:</td>");
			document.write("<td class='mc'>" + wert[1] + "</td>");
			document.write("<td class='lc'>°C</td>");
			document.write("</tr>");
			document.write("<tr>");
			document.write("<td class='fc'>Illuminance:</td>");
			document.write("<td class='mc'>" + wert[2] + "</td>");
			document.write("<td class='lc'>Lux</td>");
			document.write("</tr>");
			document.write("<tr>");
			document.write("<td class='fc'>Moisture:</td>");
			document.write("<td class='mc'>" + wert[3] + "</td>");
			document.write("<td class='lc'>[-]</td>");
			document.write("</tr>");
			document.write("</table>");
		}
	</script>
	<p>
		<script type='text/javascript'>
			info();
		</script>
	</p>

 

Der Code steht irgendwo im HTML Dokument und funktioniert auch soweit, also wie im Beispiel werden alle Werte in ein Text Feld eingetragen, aber leider nicht in meine gezeichnete Tabelle.

 

Am Anfang deklariere ich eine globale Variable "wert" als Array.

 

und beispielsweiße hier im Code:

 

tir.getObjectTemperature(function(obj)
	{

		textArea.value += 'Object Temperature: ' + obj / 10 + ' °C\n';
		wert[0] = obj;
	}, function(error)...

 

möchte ich den Wert von "obj" in das Array "wert" speichern:

 

wert[0] = obj;

 

nur leider gibt später in der Tabelle wo eigentlich dann der richtige Wert stehen solle ein "undefined".

 

Also wurde der Wert von "obj" nicht in wert[0] eingelesen. Bzw. nicht behalten. innerhalb von tir.getObjectTemperature kann ich mit dem Wert arbeiten, aber er wird irgendwie später dann nicht in der Tabelle angezeigt...

 

Nun meine Frage, wie mache ich das?

 

Mit JavaScript kenne ich mich nicht so gut aus, bin aber schon mal so weit gekommen...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...