Jump to content
Unity Insider Forum

Daten zwischen 2 Geräten austauschen


coldstone

Recommended Posts

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. 

 

 

 

Screenshot.jpg

Screenshot 2022-08-27 123902.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...