/// <summary>
        /// Sample : Monitoring display process.
        /// </summary>
        private void MonitoringDisplay()
        {
            while (true)
            {
                lock (lockObject)
                {
                    try
                    {
                        if (port != null)
                        {
                            // Check display status.
                            Communication.PeripheralStatus status = DisplaySampleManager.GetDiaplayStatus(port);

                            switch (status)
                            {
                            default:
                            case Communication.PeripheralStatus.Impossible:
                                OnPrinterImpossible();
                                break;

                            case Communication.PeripheralStatus.Connect:
                                OnDisplayConnect();
                                break;

                            case Communication.PeripheralStatus.Disconnect:
                                OnDisplayDisconnect();
                                break;
                            }
                        }
                    }
                    catch (PortException)
                    {
                        OnPrinterImpossible();
                    }
                }

                Thread.Sleep(1000);
            }
        }
        private Communication.PeripheralStatus CallFunction(SelectSettingWindow windowResult, IPort port)
        {
            Communication.PeripheralStatus result = Communication.PeripheralStatus.Invalid;

            switch (Function.Type)
            {
            default:
            case DisplayFunctionManager.FunctionType.CheckStatus:
                result = DisplaySampleManager.GetDiaplayStatus(port);
                break;

            case DisplayFunctionManager.FunctionType.Text:
                result = DisplaySampleManager.DoTextPattern(windowResult.SelectedDisplayTextPattern, port);
                break;

            case DisplayFunctionManager.FunctionType.Graphic:
                result = DisplaySampleManager.DoGraphicPattern(windowResult.SelectedDisplayGraphicPattern, port);
                break;

            case DisplayFunctionManager.FunctionType.TurnOnOff:
                result = DisplaySampleManager.DoTurnOnOffPattern(windowResult.SelectedDisplayTurnOnOffPattern, port);
                break;

            case DisplayFunctionManager.FunctionType.Cursor:
                result = DisplaySampleManager.DoCursorPattern(windowResult.SelectedDisplayCursorPattern, port);
                break;

            case DisplayFunctionManager.FunctionType.Contrast:
                result = DisplaySampleManager.DoContrastPattern(windowResult.SelectedDisplayContrastPattern, port);
                break;

            case DisplayFunctionManager.FunctionType.CharacterSetInternational:
                DisplayInternationalType internationalType = windowResult.SelectedDisplayCharacterSetInternationalType;

                result = DisplaySampleManager.DoCharacterSetInternationalPattern(internationalType, port);

                SharedInformationManager.SelectedDisplayInternationalType = internationalType;
                break;

            case DisplayFunctionManager.FunctionType.CharacterSetCodePage:
                DisplayCodePageType codePageType = windowResult.SelectedDisplayCharacterSetCodePageType;

                result = DisplaySampleManager.DoCharacterSetCodePagePattern(codePageType, port);

                SharedInformationManager.SelectedDisplayCodePageType = codePageType;
                break;

            case DisplayFunctionManager.FunctionType.UserDefinedCharacter:
                bool set;
                if (windowResult.SelectedDisplayUserDefinedCharacterPattern == DisplayFunctionManager.UserDefinedCharacterPattern.Set)
                {
                    set = true;
                }
                else
                {
                    set = false;
                }

                result = DisplaySampleManager.DoUserDefinedCharacterPattern(set, port);
                break;
            }

            return(result);
        }