public static FlightBoardModel getInstance() { if (instance == null) { instance = new FlightBoardModel(); } return(instance); }
/* * The function starts the server, waits till we have connection from client, then starts reading the data * and sends the Lon and Lat values to the given fligtBoard. */ public void Start(FlightBoardModel flightBoard) { //GetCurrentThread = Thread.CurrentThread; if (!running) { ISettingsModel app = ApplicationSettingsModel.Instance; //connect to the simulator TcpListener server = new TcpListener(IPAddress.Parse(app.FlightServerIP), app.FlightInfoPort); server.Start(); //wait till we have a connection TcpClient client = server.AcceptTcpClient(); NotConnected = false; NetworkStream stream = client.GetStream(); while (!ShouldStop) { byte[] buffer = new byte[client.ReceiveBufferSize]; int bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize); string received = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine("Received from client:" + received); if (firstData) { string[] values = received.Split(','); double x = Convert.ToDouble(values[0]); double y = Convert.ToDouble(values[1]); flightBoard.Lon = x; flightBoard.Lat = y; System.Console.WriteLine(ShouldStop); } else { if (counter == 2) { firstData = true; } else { counter++; } } } } System.Console.WriteLine("finish"); NotConnected = true; }
public Server(string ip, int port, FlightBoardModel flightBoardModel) { this.port = port; this.ip = ip; this.flightBoardModel = flightBoardModel; }