public void HandleInterrupt(TerminalInterrupt interrupt)
            {
                switch (interrupt)
                {
                case TerminalInterrupt.CHAR:
                    // queue up the characters until we have a completed line
                    char c = driver.RecvChar();
                    partialLineQueue.Add(c);


                    if (Echo)
                    {
                        driver.SendChar(c);
                    }

                    break;

                case TerminalInterrupt.ENTER:

                    if (Echo)
                    {
                        driver.SendNewLine();
                    }

                    // get all the characters from the partial line queue and create a completed line
                    string line = new string (partialLineQueue.ToArray());
                    completedLineQueue.Insert(line);
                    partialLineQueue.Clear();

                    break;

                case TerminalInterrupt.BACK:
                    // throw away the last character entered
                    if (partialLineQueue.Count > 0)
                    {
                        partialLineQueue.RemoveAt(partialLineQueue.Count - 1);

                        if (Echo)
                        {
                            driver.SendChar((char)8);
                            driver.SendChar((char)0);
                            driver.SendChar((char)8);
                        }
                    }
                    else
                    {
                        driver.SendChar((char)7);
                    }
                    break;
                }
            }
Beispiel #2
0
            public void HandleInterrupt(TerminalInterrupt interrupt)
            {
                switch (interrupt)
                {
                case TerminalInterrupt.CHAR:
                    // queue up the characters
                    char c = driver.RecvChar();
                    if (Echo)
                    {
                        driver.SendChar(c);
                    }
                    partialLineQueue.Add(c);
                    break;

                case TerminalInterrupt.ENTER:
                    if (Echo)
                    {
                        driver.SendNewLine();
                    }
                    // get all the characters from the queue, and turn them into a completed line
                    completedLineQueue.Insert(new string(partialLineQueue.ToArray()));
                    partialLineQueue.Clear();
                    break;

                case TerminalInterrupt.BACK:
                    // throw away LAST character, not first
                    if (partialLineQueue.Count > 0)
                    {
                        if (Echo)
                        {
                            // wipe last character
                            driver.SendChar('\b');
                            driver.SendChar(' ');
                            driver.SendChar('\b');
                        }
                        partialLineQueue.RemoveAt(partialLineQueue.Count - 1);
                    }
                    break;
                }
                //stuff will happen here
            }
Beispiel #3
0
            public void HandleInterrupt(TerminalInterrupt interrupt)
            {
                switch (interrupt)
                {
                case TerminalInterrupt.CHAR:
                    Trace.WriteLine("Received character: " + driver.RecvChar());
                    break;

                case TerminalInterrupt.ENTER:
                    Trace.WriteLine("Received ENTER");
                    break;

                case TerminalInterrupt.BACK:
                    Trace.WriteLine("Received BACK");
                    break;

                case TerminalInterrupt.CONNECT:
                    Trace.WriteLine("Received CONNECT");
                    break;
                }
            }
Beispiel #4
0
            public void HandleInterrupt(TerminalInterrupt interrupt)
            {
                switch (interrupt)
                {
                // TODO: test other interupts
                case TerminalInterrupt.CHAR:
                    Trace.WriteLine("Received character: " + mDriver.RecvChar());
                    break;

                case TerminalInterrupt.ENTER:
                    Trace.WriteLine("Received ENTER");
                    break;

                case TerminalInterrupt.BACK:
                    Trace.WriteLine("Received BACK");
                    break;

                case TerminalInterrupt.CONNECT:
                    Trace.WriteLine("Received CONNECT");
                    break;
                }
                //stuff will happen here
            }