NEWS
[gelöst] Zahl aus json-Objekt m. Blockly auswerten
-
Hallo zusammen,
wir interessieren uns dafür, welcher Hubschrauber gerade über uns kreist.
Ich schreibe mit dem Systeminfoadapter alle 30 sek. die Flugdaten von dump1090-fa in ein Objekt.
Jetzt würde es mehr Sinn machen nur die Hubschrauber signalisiert zu bekommen, welche im Umkreis von etwa 3-5 km sind.
Ich habe die Signalstärke mit in das Objekt aufgenommen:["3c5ee1",-19.6,"3e350d",-20.5,"4851ad",-14.6,"45d968",-19.6,"344290",-2.1,"3c5ee7",-14.8,"44083f",-12.2,"406c39",-14.5,"4692d0",-19.7,"3c4826",-13.1,"394a60",-2.5,"780a36",-15,"4ca625",-20.3,"3c6518",-13.3,"485123",-9.3,"3e1679",-2.2,"4249b2",-11.2,"ad3f67",-10.7,"3c6646",-11.7,"3d3d27",-19.9,"3c66b8",-3.8,"424b39",-8.4,"3d0590",-12.1,"a5d4c3",-11.2,"4a05a3",-14.8,"47834b",-13.9,"4853f4",-9.4,"4631cc",-4.5,"71c275",-4.2,"47945c",-2,"3c65d0",-10.1,"43e94f",-2.6,"485870",-14.5,"3c64a1",-13.1,"3c662d",-5.9,"4d21e0",-5.4,"3eb6aa",-14,"485345",-2.2,"3c496d",-14.5,"4b16b9",-7.5,"484161",-15,"484f7e",-10.4,"400d90",-4,"4cafcd",-2,"4855d0",-3.8,"471f2f",-7.7,"300782",-8.6,"78071c",-1.4,"4ac8b5",-3.2,"3c6643",-3.2,"440309",-11.6,"461f6e",-6.9,"3e3afb",-12.5,"42435f",-7.4,"4ac9e1",-2.6,"3c6514",-7.6,"3cc932",-2.7,"4840de",-2.3,"78037b",-3.5,"44056b",-15.7,"406c43",-13.7,"3c5ef9",-5.6,"406f77",-1.9,"4840e0",-2.2,"3c6dd4",-3.4,"461f96",-2.2,"488a63",-2.7,"4074b2",-13.1,"4baa92",-6.8,"3c6517",-16.1,"4ca679",-13,"4ca7a4",-10.1,"4ca8e9",-1.5,"3c56f3",-8.2,"394c18",-12.5,"461f69",-3.2,"3c6594",-1.5,"452068",-3.1,"896192",-14,"4ca6a3",-13.6,"4cacca",-6.3,"3944e5",-4.2,"3eba1c",-3.2,"3c66ad",-2.2,"4b1a3c",-6,"406674",-14.3,"4baa6b",-2.5,"4bb84d",-12.8,"4009db",-14.8,"3c56f1",-1.3,"06a10c",-2.2,"424131",-14.1,"71be12",-6.2,"781103",-15.2,"485085",-14.3,"452086",-13.8,"3c4a31",-15,"3c6dcf",-12.6,"3c5070",-6.3,"400a69",-13.8,"34444e",-14.1,"440582",-4.2,"78076c",-14.2,"4bb181",-15.2,"392ae8",-11.9,"502ce3",-15,"3c66b6",-9.5,"3c6dd0",-8.5,"3e2e94",-14.6,"405a47",-15.1,"406890",-13.7,"461fa8",-15.6]
Mein jetziges Script sieht so aus (ich weiß, dass ich den Intervall durch einen Timeout ersetzen könnte):
Jetzt kommt die Schwierigkeit:
Wie kann ich die Signalstärke "3c5ee1",-19.6 mit Blockly auswerten?
also z.B. ist "3c5ee1" ein Hubschrauber und -19.6 die Signalstärke... Jetzt möchte ich jedoch erst ab z.B. -6.0 darauf reagieren...
Hat jemand einen Tipp für mich?VG
Leif -
@capitaenz sagte:
Jetzt möchte ich jedoch erst ab z.B. -6.0 darauf reagieren...
So wie es aussieht, enthält das JSON ein Array, in dem eine "ID" mit der zugehörigen Signalstärke abwechselt.
Das folgende Blockly sollte dann im Log alle IDs ausgeben, deren Signalstärke > -6 ist. -
Daran habe ich noch gar nicht gedacht, erst nach Signalstärke zu sortieren und dann die Flugnummer zu filtern
Allerdings muss ich zugeben, dass ich trotzdem deine Hilfe gebraucht hätte.
Ich probiere es aus und werde dann berichten.Danke und VG
Leif -
leider scheint da noch ein Kinken drin zu sein:
Es muss ja jeder 2. Wert überprüft werden nach ">-6", aber wieso zählst du "i" hoch?
Kannst du mir da grad noch einmal helfen?
VG
Leif -
@capitaenz
Was steht im Javascript-Code in Zeile 15 ?Wenn die erzeugte Liste den Bezeichner Hex-Flugnummern hat, muss auch auf diese Liste zugegriffen werden und nicht auf die Variable Liste.
-
@paul53
dort steht:if (Liste[((i + 1) - 1)] > -6) {
-
@capitaenz sagte:
if (Liste[((i + 1) - 1)] > -6) {
Richtig wäre
if (Hex_Flugnummern[((i + 1) - 1)] > -6) {
-
@paul53
Danke, jetzt scheint es das zu machen was ich brauche.
Sitze jetzt nur am Tablet, probiere morgen weiter.Schönen Abend
-
Hallo Paul,
ich muss noch einmal nachfragen:
Also ich kann jetzt die Flugnummern eingrenzen, das sehe ich in der Debugausgabe, aber auf welche Variable muss ich jetzt reagieren? Wie kann ich mir anzeigen lassen wohin diese Daten geschrieben werden?
Ich nehme an, dass was ich in der Debugausgabe sehe, der Inhalt von "i" ist?
Wenn ich jedoch "i" durchsuchen möchte nach z.B. "3ab3cc", bekomme ich einen Fehler angezeigt, welcher sich auf die Zeile mit der Variable "i" bezieht.
Wenn ich die "Hex-Flugnummern" durchsuche, greift die Eingrenzung nach dB nicht...VG
Leif -
@capitaenz sagte:
Wie kann ich mir anzeigen lassen wohin diese Daten geschrieben werden?
Die Daten werden noch nirgends geschrieben. Um diesen Teil muss das Programm noch ergänzt werden. Was soll das Ergebnis sein ?
@capitaenz sagte in Zahl aus json-Objekt mit Blockly auswerten:
Ich nehme an, dass was ich in der Debugausgabe sehe, der Inhalt von "i" ist?
Nein, das ist der Inhalt des Arrays an der Stelle, die durch i indiziert wird.
@capitaenz sagte in Zahl aus json-Objekt mit Blockly auswerten:
durchsuchen möchte nach z.B. "3ab3cc"
Dann muss ein Vergleich erfolgen
falls in der Liste Hex-Flugnummern nimm das i. Element == "3ab3cc"
mache ... -
Hallo Paul,
ich muss mich noch einmal bedanken! Es läuft jetzt, jetzt setzte ich mich noch einmal hin, um es auch komplett zu verstehen.
Solch eine Hilfe ist nicht selbstverständlich.Hier ein Ausschnitt, vielleicht kann es noch jemand gebrauchen:
VG
Leif -