Example #1
0
        private static void buildVehicle(XmlNode vehicleNode)
        {
            var vehicle = new Vehicle();
            var stages  = vehicleNode.ChildNodes;

            foreach (XmlNode stage in stages)
            {
                var name = stage.Attributes?.GetNamedItem("name").Value;

                double.TryParse(stage.Attributes?.GetNamedItem("massTotal").Value, out var massTotal);
                double.TryParse(stage.Attributes?.GetNamedItem("massFuel").Value, out var massFuel);
                double.TryParse(stage.Attributes?.GetNamedItem("massDry").Value, out var massDry);
                double.TryParse(stage.Attributes?.GetNamedItem("gLim").Value, out var gLim);
                double.TryParse(stage.Attributes?.GetNamedItem("minThrottle").Value, out var minThrottle);
                double.TryParse(stage.Attributes?.GetNamedItem("throttle").Value, out var throttle);
                bool.TryParse(stage.Attributes?.GetNamedItem("shutdownRequired").Value, out var shutdownRequired);

                var stg = new VehicleStage(name, massTotal, massFuel, massDry, gLim, minThrottle, throttle, shutdownRequired);

                var children = stage.ChildNodes;

                var engines = new List <XmlNode>();

                foreach (XmlNode child in children)
                {
                    if (child.LocalName != "engines")
                    {
                        continue;
                    }

                    foreach (XmlNode engine in child.ChildNodes)
                    {
                        engines.Add(engine);
                    }
                }

                foreach (var engine in engines)
                {
                    double.TryParse(engine.Attributes?.GetNamedItem("isp").Value, out var isp);
                    double.TryParse(engine.Attributes?.GetNamedItem("thrust").Value, out var thrust);
                    double.TryParse(engine.Attributes?.GetNamedItem("flow").Value, out var flow);

                    var eng = new Engine(Globals.G0, stg.Throttle, isp, thrust, flow);

                    stg.addEngine(eng);
                }

                vehicle.addVehicleStage(stg);
            }

            Globals.VehicleData = vehicle;
        }
Example #2
0
    void StartListening()
    {
        try
        {
            Debug.Log("Before Started at host:" + remoteIp + ", port " + remotePort);
            tcp_Listener = new TcpListener(IPAddress.Any, remotePort); //System.Net.IPAddress
            tcp_Listener.Start();
            Debug.Log("Server Started at host:" + remoteIp + ", port " + remotePort);

            // Buffer for reading data

            Byte[] bytes    = new Byte[256];
            String jsonData = null;

            while (mRunning)
            {
                // check if new connections are pending, if not, be nice and sleep 100ms
                if (!tcp_Listener.Pending())
                {
                    Thread.Sleep(100);
                }
                else
                {
                    TcpClient     client = tcp_Listener.AcceptTcpClient();
                    NetworkStream stream = client.GetStream();

                    int i = 0;
                    jsonData = null;
                    byte[] msg = null;
                    // Loop to receive all the data sent by the client.

                    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        jsonData = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                        var    myDetails     = JsonConvert.DeserializeObject <SetController> (jsonData);
                        String returnMessage = "";
                        switch (myDetails.Cmd)
                        {
                        case 1:
                            var VehicleStage_ = new VehicleStage {
                                Cmd     = 1,
                                Speed   = 0.0f,
                                Angle   = 0.0f,
                                Lat     = 0.0f,
                                Lon     = 0.0f,
                                Heading = 0.0f
                            };
                            returnMessage = JsonConvert.SerializeObject(VehicleStage_);
                            msg           = Encoding.UTF8.GetBytes(returnMessage);
                            break;

                        case 2:
                            msg = camController.imageResult.originalIMG;
                            break;

                        case 3:
                            msg = camController.imageResult.segmentIMG;
                            break;

                        default:
                            break;
                        }
                        stream.Write(msg, 0, msg.Length);
                    }

                    client.Close();
                    Debug.Log("Client closed");
                }
            } // while
        }

        catch (ThreadAbortException)
        {
            Debug.Log("Error");
        }
        finally
        {
            mRunning = false;
            tcp_Listener.Stop();
        }
    }