Exemple #1
0
        public bool PSKStart()
        {
            bool result = false;
            fft = new Fourier();
            iq_balancer = new IQBalancer(MainForm);

            try
            {
                if (Init())
                {
                    run_thread = true;
                    PSKThread1 = new Thread(new ThreadStart(PSK_ThreadRX1));
                    PSKThread1.Name = "PSK Thread RX1";
                    PSKThread1.Priority = ThreadPriority.Normal;
                    PSKThread1.IsBackground = true;
                    PSKThread1.Start();

                    PSKThread2 = new Thread(new ThreadStart(PSK_ThreadRX2));
                    PSKThread2.Name = "PSK Thread RX2";
                    PSKThread2.Priority = ThreadPriority.Normal;
                    PSKThread2.IsBackground = true;
                    PSKThread2.Start();
                    result = true;
                }

                return result;
            }
            catch (Exception ex)
            {
                Debug.Write(ex.ToString());
                return false;
            }
        }
Exemple #2
0
 public void PSKStop()
 {
     try
     {
         audio_event.Set();
         run_transmiter = false;
         run_thread = false;
         Thread.Sleep(100);
         AudioEvent1.Set();
         AudioEvent2.Set();
         Thread.Sleep(100);
         iq_balancer = null;
         System.GC.Collect();
     }
     catch (Exception ex)
     {
         Debug.Write(ex.ToString());
     }
 }
Exemple #3
0
        public PSK(CWExpert form)
        {
            MainForm = form;
            AudioEvent1 = new AutoResetEvent(false);
            AudioEvent2 = new AutoResetEvent(false);
            iq_buffer = new ComplexF[2048];
            ch1_buffer = new float[2048];
            ch2_buffer = new float[2048];
            buffer_ch1 = new float[2048];
            buffer_ch2 = new float[2048];
            display_timer = new HiPerfTimer();
            trx = new TRX();
            trx.modem = new psk[MODEM_NR];
            trx.outbuf = new ComplexF[819];
            trx.outbuf1 = new ComplexF[8192];
            trx.mon_outbuf = new ComplexF[8192];
            iq_balancer = new IQBalancer(form);

            cs_audio = (void*)0x0;
            cs_audio = NewCriticalSection();

            if (InitializeCriticalSectionAndSpinCount(cs_audio, 0x00000080) == 0)
            {
                Debug.WriteLine("CriticalSection Failed");
            }

            fft = new Fourier();
        }