feyris-tan ef86554f9a Import
2025-05-12 22:09:16 +02:00

46 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using NmeaParser;
namespace skyscraper5.NmeaSharpWrapper
{
internal class GpsdClient : NmeaSharpWrapper
{
public GpsdClient(string hostname, ushort port)
{
this.hostname = hostname;
this.port = port;
}
private string hostname;
private ushort port;
protected override void ProcessorThread()
{
TcpClient tc = new TcpClient();
tc.Connect(hostname, port);
NetworkStream networkStream = tc.GetStream();
StreamWriter streamWriter = new StreamWriter(networkStream);
streamWriter.WriteLine("?WATCH={\"enable\":true,\"nmea\":true}");
streamWriter.Flush();
StreamDevice streamDevice = new StreamDevice(networkStream);
streamDevice.MessageReceived += HandleNmeaMessage;
streamDevice.OpenAsync().Wait();
CancelRequest = false;
while (!CancelRequest)
{
Thread.Sleep(1000);
}
streamDevice.CloseAsync().Wait();
streamWriter.Close();
networkStream.Close();
tc.Close();
}
}
}