Пример #1
0
        public static async Task CapturedSignal()
        {
            SignalOutput SSO = new SignalOutput();

            if (SSO.FindRedRat3() != null)
            {
                PublicData.write_info("Начат прием сигнала: ожидание 10с.");
                IRsignalTrainingMode IRSTM = new IRsignalTrainingMode();
                var waitsignal             = Ex.LongRun(() => IRSTM.CaptureSignal());
                var form = new FormTimer("", "white", 10, "Подайте сигнал с пульта");
                form.Show();
                await waitsignal;
                Ex.Try(() => form.Close());
                var signal = IRSTM.GetSignal();
                if (signal == null)
                {
                    PublicData.write_info("Сигнал не был получен. Прием окончен.");
                    return;
                }

                var    ir  = SignalToString(signal);
                string nec = null;
                Ex.Try(
                    () => nec = CodeTransform.SignalToNEC(signal)
                                //, ex => PublicData.write_info(ex.Message)
                    );
                PublicData.write_info("Сигнал принят.");
                nec = (nec?.Length == 6 || nec?.Length == 8) ? nec : null;
                Ex.Try(() => Clipboard.SetText(nec ?? ir));
                new FormTextLine(nec, ir).Show();
            }
            else
            {
                MessageBox.Show("Нет подключенных устройств RedRat3. Подключите RedRat3 и попробуйте снова.", "Проверка подключения", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }