コード例 #1
0
        public void DataReceivedEventArgsConstructorTest()
        {
            byte[] data = new byte[] { 1, 2, 3 };
            DataReceivedEventArgs target = new DataReceivedEventArgs(data);

            Assert.AreEqual(0x03, target.GetData()[2]);
        }
コード例 #2
0
        public void DataTest()
        {
            byte[] data = new byte[] { 0, 1 };
            DataReceivedEventArgs target = new DataReceivedEventArgs(data);

            byte[] actual;
            actual = target.GetData();
            Assert.AreEqual(0x01, actual[1]);
        }
コード例 #3
0
ファイル: Worker.cs プロジェクト: csuzhhj/easy-service
    private void OutPut(object sender, DataReceivedEventArgs ev)
    {
        var s = ev.GetData();

        if (s == null)
        {
            return;
        }

        lock (OutLock)
        {
            Conf.WriteOutput(s);
        }
    }
コード例 #4
0
    private void OutPut(object sender, DataReceivedEventArgs ev)
    {
        var data = ev.GetData();

        if (data == null)
        {
            return;
        }

        lock (OutLock)
        {
            WriteOutput(data);
        }
    }
コード例 #5
0
ファイル: Worker.cs プロジェクト: hydrionz/easy-service
    private void OutPut(object sender, DataReceivedEventArgs ev)
    {
        var data = ev.GetData();

        if (data == null)
        {
            return;
        }

        if (AddLog == Print)
        {
            Console.WriteLine(data);
            return;
        }

        if (FileLogger == null)
        {
            return;
        }

        FileLogger.Log(data);
    }
コード例 #6
0
        private void HandleDataReceived([NotNull] object sender, [NotNull] DataReceivedEventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(e, "e");

            try
            {
                int    offset        = e.Offset;
                int    bytesRecieved = e.BytesReceived;
                byte[] data          = e.GetData();

                int actualBytesReceived = 0;
                for (int i = 0; i < bytesRecieved; i++)
                {
                    // removing double IAC and processing IAC GA
                    if (i < bytesRecieved - 1 &&
                        data[offset + i] == TelnetConstants.InterpretAsCommandCode &&
                        data[offset + i + 1] == TelnetConstants.InterpretAsCommandCode)
                    {
                        _buffer[actualBytesReceived] = TelnetConstants.InterpretAsCommandCode;
                        i++;
                        actualBytesReceived++;
                        continue;
                    }

                    if (i < bytesRecieved - 1 &&
                        data[offset + i] == TelnetConstants.InterpretAsCommandCode &&
                        data[offset + i + 1] == TelnetConstants.GoAheadCode)
                    {
                        // new line
                        _buffer[actualBytesReceived] = 0xA;
                        i++;
                        actualBytesReceived++;
                        continue;
                    }

                    // handling echo mode on
                    if (i < bytesRecieved - 2 &&
                        data[offset + i] == TelnetConstants.InterpretAsCommandCode &&
                        data[offset + i + 1] == TelnetConstants.WillCode &&
                        data[offset + i + 2] == TelnetConstants.EchoCode)
                    {
                        PushMessage(new ChangeEchoModeMessage(false));
                        i += 2;
                        continue;
                    }

                    // handling echo mode off
                    if (i < bytesRecieved - 2 &&
                        data[offset + i] == TelnetConstants.InterpretAsCommandCode &&
                        data[offset + i + 1] == TelnetConstants.WillNotCode &&
                        data[offset + i + 2] == TelnetConstants.EchoCode)
                    {
                        PushMessage(new ChangeEchoModeMessage(true));
                        i += 2;
                        continue;
                    }

                    // handling custom message header
                    if (i < bytesRecieved - 3 &&
                        data[offset + i] == TelnetConstants.InterpretAsCommandCode &&
                        data[offset + i + 1] == TelnetConstants.SubNegotiationStartCode &&
                        data[offset + i + 2] == TelnetConstants.CustomProtocolCode)
                    {
                        var messageType = data[offset + i + 3];
                        FlushBufferToDeserializer(actualBytesReceived, true);
                        actualBytesReceived = 0;
                        _currentMessageType = messageType;
                        i += 3;
                        continue;
                    }

                    // handling custom message footer
                    if (i < bytesRecieved - 1 &&
                        data[offset + i] == TelnetConstants.InterpretAsCommandCode &&
                        data[offset + i + 1] == TelnetConstants.SubNegotiationEndCode)
                    {
                        FlushBufferToDeserializer(actualBytesReceived, true);

                        _currentMessageType = BuiltInMessageTypes.TextMessage;
                        actualBytesReceived = 0;
                        i++;
                        continue;
                    }

                    _buffer[actualBytesReceived] = data[offset + i];
                    actualBytesReceived++;
                }

                FlushBufferToDeserializer(actualBytesReceived, false);
            }
            catch (Exception ex)
            {
                ErrorLogger.Instance.Write(string.Format("Error handle data received: {0}\r\n{1}", ex.Message, ex.StackTrace));
                PushMessage(new ErrorMessage(ex.Message));
            }
        }
コード例 #7
0
 private void TouchDataHandler_OnDataReceived(object sender, DataReceivedEventArgs e)
 {
     byte[] data = (byte[])e.GetData();
     Debug.Log(Encoding.Default.GetString(data));
 }