coldstone Posted August 27, 2022 Report Share Posted August 27, 2022 Hallo zusammen, ich versuche vergebens zwischen 2 Geräten Daten auszutauschen. Nur klappt es leider nicht wie gewollt. Ich habe ein Android tablet , welches die eigenen GPS-Daten in echtzeit an eine Windows Applikation senden soll. Nebenbei wird auch die Kamerasicht des Tablets zur WindowsApp gestreamt, welches auch funktioniert. Die Kommunikation läuft über einen Node.js Server. Hierfür habe ich mir aus dem AssetStore von FrozenMist, das FMWebSocket Packet zur hilfe genommen. Vielleicht kennt ja der ein oder andere das Packet auch. Das Tablet sendet über folgenden Script die Daten: using System.Collections; using System.Collections.Generic; using UnityEngine; using FMETP; public class sendData : MonoBehaviour { double latitude; double angle; // Update is called once per frame void Update() { angle = double.Parse(Input.compass.trueHeading.ToString()); latitude = double.Parse(Input.location.lastData.latitude.ToString()); FMSocketIOManager.instance.SendToAll(latitude.ToString() + "," + angle.ToString()); } } "angle" habe ich nur anstatt "longitude" eingefügt, damit permanent zum testen Daten gesendet werden. Die Windows-APP besitzt folgenden Skript: using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using TMPro; public class getData : MonoBehaviour { public TextMeshProUGUI latitude; public TextMeshProUGUI angle; public void Action_ProcessStringData(string _string) { string[] chunks = _string.Split(','); latitude.text = chunks[0]; angle.text = chunks[1]; Debug.Log(chunks[1]); } } Wenn ich es starte, wird mir in der Console nur der erste übnermittelte Wert angezeigt. D.h. der wert wird nicht aktualisiert. Das FMWebsocket bietet auch die Methode "BroadcastMessege" an. (Screenshot angefügt) Wenn ich diese benutze, kommen die Daten zwar anscheinend in Echtzeit an, aber ich kann diese nicht per Script abgreifen. Das diese in Echtzeit ankommen, sieht man in der Console. Es kommen folgende Fehlermeldugen an (siehe Bild Anhang: BroadcastMessage 53,11489,58,78012 has no receiver! UnityEngine.Events.UnityEvent`1<string>:Invoke (string) Was muss ich mir unter dem Broadcast Receiver vorstellen? Ich kann mir gut vorstellen, daß hier: public void Action_ProcessStringData(string _string) eine andere Methode verwendet werden muss, um die Daten abzugreifen, nur habe ich nichts gefunden, was ich verwenden kann. Wäre super wenn einer einen Tip hat, oder vielleicht sogar das Paket kennt. Oder ich mache mir das Leben selber zu schwer und es gibt eine viel bessere Möglichkeit um in Echtzeit Daten über einen Node.js Server auszutauschen. Link to comment Share on other sites More sharing options...
Sascha Posted August 27, 2022 Report Share Posted August 27, 2022 Moin! Das scheint mir extrem spezifisch für die von dir verwendeten Pakete zu sein. Da solltest du eher schauen, ob die Entwickler davon irgendein Forum oder sonstigen Support haben. Ich kann nur sagen... vor 33 Minuten schrieb coldstone: Was muss ich mir unter dem Broadcast Receiver vorstellen? Das heißt halt, dass keine da ist, um die Nachricht zu empfangen. Was mich verwirrt, ist dass du schreibst vor 34 Minuten schrieb coldstone: Wenn ich diese benutze, kommen die Daten zwar anscheinend in Echtzeit an, aber ich kann diese nicht per Script abgreifen. Das diese in Echtzeit ankommen, sieht man in der Console Heißt das, die Meldung, dass kein Empfänger da ist, kommt vom Empfänger? In dem Fall wäre der Fehler, dass der Empfänger überhaupt zu senden versucht. Link to comment Share on other sites More sharing options...
coldstone Posted August 27, 2022 Author Report Share Posted August 27, 2022 vor 19 Minuten schrieb Sascha: Was mich verwirrt, ist dass du schreibst Heißt das, die Meldung, dass kein Empfänger da ist, kommt vom Empfänger? In dem Fall wäre der Fehler, dass der Empfänger überhaupt zu senden versucht. Naja, die Daten vom Tablet werden ja in der Console meiner Windows APP angezeigt. Nur als Fehlermeldung. Windows App Console gibt folgende Fehlermeldung aus: BroadcastMessage 53,11489,58,78012 has no receiver! Und die Daten... 53,11489,58,78012 ...kommen ja von dem Tablet. Anscheinend kommen die Daten bei der Windows-App ja an. Sonst würde es diese nicht korrekt als Fehlmeldung ausgeben. Link to comment Share on other sites More sharing options...
Sascha Posted August 27, 2022 Report Share Posted August 27, 2022 Ah... vielleicht ist damit gemeint, dass die Nachricht rein kommt, aber kein Script sich vorher angemeldet hat, diese Daten auch zu verarbeiten 🤔 Link to comment Share on other sites More sharing options...
coldstone Posted August 27, 2022 Author Report Share Posted August 27, 2022 Das meinte ich auch mit "...vielleicht eine andere Methode verwenden....". Nur finde ich keine Methode um mit diesem sogenannten Broadcast empfangenen Daten zu arbeiten. Link to comment Share on other sites More sharing options...
Sascha Posted August 28, 2022 Report Share Posted August 28, 2022 Hmjoa. Das OnReceivedStringData-Event sieht dafür schon richtig aus. Da das nicht funktioniert, würde ich mal in deren Forenthread nachfragen. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.