private void intake(CDTIReport report) { logger("at intake"); clearPlanes(); foreach (CDTIPlane plane in report.Planes) { AddToScreen(plane); } AddToScreen(report.Ownship); logger("end intake"); }
IEnumerator connect() { server = new TcpListener(IPAddress.Parse("127.0.0.1"), 13000); server.Start(); logger("server Start ver 1.4.3"); while (isRunning) { // check if new connections are pending, if not, be nice and sleep 100ms if (!server.Pending()) { Thread.Sleep(100); } else { File.Delete("temp.txt"); TcpClient client = server.AcceptTcpClient(); logger("connection established"); NetworkStream ns = client.GetStream(); const int bufSize = 0x1000; byte[] buf = new byte[bufSize]; bool rep = false; Example.CDTIReport report = null; // MemoryStream ms = new MemoryStream(); Thread.Sleep(400); long totalBytes = 0; int bytesRead = 0; while ((bytesRead = ns.Read(buf, 0, bufSize)) > 0) { File.Delete("temp.txt"); FileStream file = new FileStream("temp.txt", FileMode.Create); file.Write(buf, 0, bytesRead); logger("temp written"); // ms.Write(buf, 0, bytesRead); totalBytes += bytesRead; file.Close(); print(bytesRead); FileStream fs = new FileStream("temp.txt", FileMode.Open); /* try * { * logger("reading temp"); * report = Example.CDTIReport.Deserialize(fs); * fs.Close(); * logger("temp read"); * logger("" +report.Planes.Count); * logger("" +report.Ownship); * logger("" +report.Timestamp); * logger(report.AdvisoryMessage); * rep = true; * lastReport = report; * * //} * // catch(Exception e) * //{ * // logger("Exception caught in read" + e.Message); */ //fs.Close(); //fs = new FileStream("temp.txt", FileMode.Open); try { fs.Seek(4, SeekOrigin.Begin); logger("reading temp"); report = CDTIReport.Deserialize(fs); fs.Close(); logger("temp read"); logger("" + report.Planes.Count); logger("" + report.Ownship); logger("" + report.Timestamp); logger(report.AdvisoryMessage); rep = true; lastReport = report; } catch (Exception f) { logger("Exception caught in read" + f.Message); fs.Close(); if (report != null) { lastReport = report; rep = true; } } // } if (rep) { yield return(Ninja.JumpToUnity); intake(report); // intake(CDTIReport.Deserialize(ns)); yield return(Ninja.JumpBack); } rep = false; } client.Close(); } } server.Stop(); yield return(null); }