2016-08-08 28 views
0

Ich arbeite an einer Anwendung, wo ich meinen Standort durch eine GPSD-Dienst bekommen muss. Ich verwende C# für meine Bibliothek (wie das Projekt), die nicht von der GPSD selbst unterstützt wird, so dass sie keine Bibliothek haben. Deshalb versuche ich, meine eigene Bibliothek zu erstellen (und eventuell ein kleines Paket daraus zu machen).Verbinden mit einem GPS-Deamon-Dienst in C#

Aber ich blieb mit dem folgenden Problem stecken. Ich erhalte eine Verbindung mit dem RLAP Dienst über Sockets, und ich erhalte die folgenden Daten:

{"class":"VERSION","release":"3.11","rev":"3.11-3","proto_major":3,"proto_minor":9} 

So ist die Verbindung funktioniert, aber ich weiß nicht, wie die GPS-Daten zu erhalten, selbst gibt es nicht viel Dokumentation darüber so, hat jemand irgendwelche Erfahrung damit, oder wissen, wie ich das erreichen kann?

using (var client = ConnectViaHttpProxy(ServerAddress, Port, ProxyAddress, Port)) 
{ 
    while (client.Connected) 
    { 
     var result = new byte[256]; 
     client.Client.Receive(result); 


     //_response = Encoding.UTF8.GetString(result, 0, result.Length); 
     _response = Encoding.ASCII.GetString(result, 0, result.Length); 
     var resultClass = JsonConvert.DeserializeObject<GpsdData>(_response); 
     Console.WriteLine(resultClass.ToString()); 

     Thread.Sleep(10); 
    } 

    client.Close(); 
} 

My Github

+0

Dies wird dein bester Freund sein: http://catb.org/gpsd/client-howto.html#_what_gpsd_does_and_what_i t_cannot_do –

Antwort

0

fand ich heraus, wie ich mit dem Service verbinden: wie @x... sagt alles im Link lautet: link

Der Befehl, den ich senden müssen ist:

var byteData = Encoding.ASCII.GetBytes("?WATCH={\"enable\":true,\"json\":true}"); 
       client.Client.Send(byteData);