Exemple #1
0
            /// <summary>
            /// Create a server instance from this configuration
            /// </summary>
            public KRPC.Server.Server Create()
            {
                KRPC.Server.Message.RPCServer    rpcServer    = null;
                KRPC.Server.Message.StreamServer streamServer = null;

                var serverProtocol = Protocol;

                if (serverProtocol == Protocol.ProtocolBuffersOverTCP ||
                    serverProtocol == Protocol.ProtocolBuffersOverWebsockets)
                {
                    var serverAddress = IPAddress.Loopback;
                    IPAddress.TryParse(Settings.GetValueOrDefault("address", IPAddress.Loopback.ToString()), out serverAddress);
                    ushort rpcPort    = 0;
                    ushort streamPort = 0;
                    ushort.TryParse(Settings.GetValueOrDefault("rpc_port", "0"), out rpcPort);
                    ushort.TryParse(Settings.GetValueOrDefault("stream_port", "0"), out streamPort);
                    var rpcTcpServer    = new TCPServer(serverAddress, rpcPort);
                    var streamTcpServer = new TCPServer(serverAddress, streamPort);
                    if (serverProtocol == Protocol.ProtocolBuffersOverTCP)
                    {
                        rpcServer    = new KRPC.Server.ProtocolBuffers.RPCServer(rpcTcpServer);
                        streamServer = new KRPC.Server.ProtocolBuffers.StreamServer(streamTcpServer);
                    }
                    else
                    {
                        rpcServer    = new KRPC.Server.WebSockets.RPCServer(rpcTcpServer);
                        streamServer = new KRPC.Server.WebSockets.StreamServer(streamTcpServer);
                    }
                }
                return(new KRPC.Server.Server(Id, serverProtocol, Name, rpcServer, streamServer));
            }
Exemple #2
0
            /// <summary>
            /// Create a server instance from this configuration
            /// </summary>
            public KRPC.Server.Server Create()
            {
                KRPC.Server.Message.RPCServer    rpcServer    = null;
                KRPC.Server.Message.StreamServer streamServer = null;

                var serverProtocol = Protocol;

                if (serverProtocol == Protocol.ProtocolBuffersOverTCP ||
                    serverProtocol == Protocol.ProtocolBuffersOverWebsockets)
                {
                    var serverAddress = IPAddress.Loopback;
                    IPAddress.TryParse(Settings.GetValueOrDefault("address", IPAddress.Loopback.ToString()), out serverAddress);
                    ushort rpcPort    = 0;
                    ushort streamPort = 0;
                    ushort.TryParse(Settings.GetValueOrDefault("rpc_port", "0"), out rpcPort);
                    ushort.TryParse(Settings.GetValueOrDefault("stream_port", "0"), out streamPort);
                    var rpcTcpServer    = new TCPServer(serverAddress, rpcPort);
                    var streamTcpServer = new TCPServer(serverAddress, streamPort);
                    if (serverProtocol == Protocol.ProtocolBuffersOverTCP)
                    {
                        rpcServer    = new KRPC.Server.ProtocolBuffers.RPCServer(rpcTcpServer);
                        streamServer = new KRPC.Server.ProtocolBuffers.StreamServer(streamTcpServer);
                    }
                    else
                    {
                        rpcServer    = new KRPC.Server.WebSockets.RPCServer(rpcTcpServer);
                        streamServer = new KRPC.Server.WebSockets.StreamServer(streamTcpServer);
                    }
                }
                else
                {
                    uint   baudRate = 0;
                    ushort dataBits = 0;
                    KRPC.IO.Ports.Parity   parity;
                    KRPC.IO.Ports.StopBits stopBits;
                    uint.TryParse(Settings.GetValueOrDefault("baud_rate", "9600"), out baudRate);
                    ushort.TryParse(Settings.GetValueOrDefault("data_bits", "8"), out dataBits);
                    // TODO: add helper method for Enum.TryParse (only available in .NET 4)
                    try {
                        parity = (KRPC.IO.Ports.Parity)Enum.Parse(
                            typeof(KRPC.IO.Ports.Parity),
                            Settings.GetValueOrDefault("parity", "None"));
                    } catch (ArgumentException) {
                        parity = KRPC.IO.Ports.Parity.None;
                    }
                    try {
                        stopBits = (KRPC.IO.Ports.StopBits)Enum.Parse(
                            typeof(KRPC.IO.Ports.StopBits),
                            Settings.GetValueOrDefault("stop_bits", "One"));
                    } catch (ArgumentException) {
                        stopBits = KRPC.IO.Ports.StopBits.None;
                    }
                    var serialServer = new KRPC.Server.SerialIO.ByteServer(
                        Settings.GetValueOrDefault("port", string.Empty),
                        baudRate, dataBits, parity, stopBits);
                    rpcServer    = new KRPC.Server.SerialIO.RPCServer(serialServer);
                    streamServer = new KRPC.Server.SerialIO.StreamServer();
                }
                return(new KRPC.Server.Server(Id, serverProtocol, Name, rpcServer, streamServer));
            }