syntax Json

Status
Niet open voor verdere reacties.

peba25

Gebruiker
Lid geworden
6 jul 2009
Berichten
70
Ik heb een apparaat waar ik data uit kan halen.
Omschreven in de manual staat dat dit mbv de Json syntax kan.
Hiermee zou ik een variable kunnnen weergeven in een html pagina en hier vervolgens mee kunnen rekenen.
Ik kan alreeds variabelen weergeven mbv. document. write (sysvar(_ULN[0]); waarbij ULN0 de variable is welke op de HTML pagina wordt weergeven. Het probleem is alleen dat ik hiermee niet kan rekenen.... Nu zou dit met de Json methode wel moeten lukken..

als voorbeeld wordt gegeven;

Syntax:
http://umg/json.exe?var1,var2,etc

Heeft iemand hier ideen over??

Alvast bedankt.
 
ik heb geen flauw idee hoe dit (of: zou moeten) werkt, maar geeft de exe een data-string terug? (JSON)


Iets anders gezegd, hoe komt de data in je javascript terecht? Wat is de output van de json.exe? Als dit een JSON-object is kan je dit gemakkelijk met een json parser omzetten naar bruikbare javascript code.


:thumb:
 
ik heb geen flauw idee hoe dit (of: zou moeten) werkt, maar geeft de exe een data-string terug? (JSON)


Iets anders gezegd, hoe komt de data in je javascript terecht? Wat is de output van de json.exe? Als dit een JSON-object is kan je dit gemakkelijk met een json parser omzetten naar bruikbare javascript code.


:thumb:

Ik denk inderdaad dat de exe? een JSON-object terug geeft. Helaas begrijp ik hier geen ... van en is de manual redelijk beperkt....

Ik ben verder gegaan met het realiseren van een chart mbv Ajaxreqest.

Mijn code is;

Code:
<div id = "myChart1a" style = "width:450px: height: 330px:"></div>
<script type="text/javascript">

var chart = new EJSC.Chart("myChart1a", 
    { 
		
	  title: "Actual voltage",
      show_legend: true, 
      show_messages: false, 
      axis_bottom: { caption: "Timestamp", formatter: new EJSC.DateFormatter({ format_string: "HH:NN:SS" }), crosshair: {show: true}},
      axis_left: { caption: "Voltage L1" }, 
      allow_zoom: true 
    } 
  ); 
   
  var myData = new Array(); 
   
  // Populate array 
  var x = (new Date()).getTime() - 101000; 
  var y; 
  for (var i = 0; i < 100; i++) { 
    x += 1000; 
	y = <rep _ULN[0]>; 
 } 
   
  // Add a new line series and save a reference 
  var myLineSeries = chart.addSeries(new EJSC.LineSeries( 
    new EJSC.ArrayDataHandler( myData ) 
  ));   
   
  function updateSeries() { 
    AjaxRequestProvider.RegisterRequest('/json.exe?_ULN[0]');

	// Remove the first element 
    myData.splice(0,1); 
     
    // x = current time 
    x = (new Date()).getTime(); 
     
    // Generate another Y value 
    y = <rep _ULN[0];
     
    // Append a new point 
    myData.push([x, y]); 
     
   // Give the new data to the ArrayDataHandler 
    myLineSeries.getDataHandler().setArray(myData); 
    
   // Reload the series 
   myLineSeries.reload(); 
 } 


function getsysvar_callback(ResponseText,VoltageL1){
var response = new CResponse();
response.parse(ResponseText);
var VoltageL1 = response.value("_ULN[0]");
var unit = response.unit("_ULN[0]");
var con = response.get("_ULN[0]");
}

 // Run updateSeries() every second 
 window.setInterval(updateSeries, 1000);

</script>

Nu probeer ik de variable VoltageL1 in de function updateSeries() te gebruiken om een nieuwe y value te verkrijgen.
Ik heb geprobeerd met de return statement de variable VoltageL1 in y te stoppen, maar dit zonder resultaat... Ook als ik document.write (VoltageL1) gebruik krijg ik geen resultaat.

Als ik de regel, alert("Voltage L1: "+ VoltageL1 +" "+unit +" = "+ con); toevoeg in de functie dan krijg ik een alertbox met de gewenste waardes...


Hoe kan ik variabele y in de funtie updateSeries() vullen met var Voltage L1 uit function getsysvar_callback(ResponseText,VoltageL1)?

Alvast bedankt.
 
nou, je hebt deze code in je updateSeries() functie:
[JS] // Generate another Y value
y = <rep _ULN[0];
[/JS]
dus, dit moet anders. Je wilt blijkbaar de data uit de callback functie? Probeer het met een globale variabele:
[JS]//globale var: nieuwY
var nieuwY = 0;[/JS]
en dan je callback zo:
[JS]function getsysvar_callback(ResponseText,VoltageL1)
{
var response = new CResponse();
response.parse(ResponseText);
var VoltageL1 = response.value("_ULN[0]");
var unit = response.unit("_ULN[0]");
var con = response.get("_ULN[0]");

nieuwY = con; //of: unit, of welke waarde je wilt.
}
[/JS]
en je updateSeries:
[JS] function updateSeries() {
AjaxRequestProvider.RegisterRequest('/json.exe?_ULN[0]');

// Remove the first element
myData.splice(0,1);

// x = current time
x = (new Date()).getTime();

// Generate another Y value
y = nieuwY; // <-- de waarde uit de callback, via de globale var

// Append a new point
myData.push([x, y]);

// Give the new data to the ArrayDataHandler
myLineSeries.getDataHandler().setArray(myData);

// Reload the series
myLineSeries.reload();
}
[/JS]

is dit wat je bedoelt? Het zal zeker helpen als je een voorbeeld online zet.


:thumb:
 
nou, je hebt deze code in je updateSeries() functie:

dus, dit moet anders. Je wilt blijkbaar de data uit de callback functie? Probeer het met een globale variabele:
[JS]//globale var: nieuwY
var nieuwY = 0;[/JS]
en dan je callback zo:
[JS]function getsysvar_callback(ResponseText,VoltageL1)
{
var response = new CResponse();
response.parse(ResponseText);
var VoltageL1 = response.value("_ULN[0]");
var unit = response.unit("_ULN[0]");
var con = response.get("_ULN[0]");

nieuwY = con; //of: unit, of welke waarde je wilt.
}
[/JS]
en je updateSeries:
[JS] function updateSeries() {
AjaxRequestProvider.RegisterRequest('/json.exe?_ULN[0]');

// Remove the first element
myData.splice(0,1);

// x = current time
x = (new Date()).getTime();

// Generate another Y value
y = nieuwY; // <-- de waarde uit de callback, via de globale var

// Append a new point
myData.push([x, y]);

// Give the new data to the ArrayDataHandler
myLineSeries.getDataHandler().setArray(myData);

// Reload the series
myLineSeries.reload();
}
[/JS]

is dit wat je bedoelt? Het zal zeker helpen als je een voorbeeld online zet.


:thumb:

Bedankt Vegras.

Zoals jij al aangeeft lag het probleem bij het declareren van variabelen. Ik heb het werkend.:thumb:
Verdere geresen vragen zal ik in een nieuw topic stellen....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan