Exemplo n.º 1
0
    private void  intake(CDTIReport report)
    {
        logger("at intake");

        clearPlanes();

        foreach (CDTIPlane plane in report.Planes)
        {
            AddToScreen(plane);
        }
        AddToScreen(report.Ownship);

        logger("end intake");
    }
Exemplo n.º 2
0
    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);
    }