Example #1
0
        // modulate and play, save & demodulate
        public static void Test3()
        {
            Console.WriteLine("Starting test {0}", 3);

            ax25.Packet            packet;
            ax25.AFSK1200Modulator mod;
            float[] samples;
            ax25.AFSK1200Demodulator dem;

            mod           = new ax25.AFSK1200Modulator(44100);
            mod.txDelayMs = 500;
            dem           = new ax25.AFSK1200Demodulator(44100, 1, 0, new TestConsole("T3>> {0}"));
            //ax25.AFSK1200Demodulator dem = new ax25.Afsk1200Demodulator(44100, 1, 6, new Packet2Console("MO>> {0}"));

            packet = new ax25.Packet(
                "APRS", "TESTER", new String[] { "WIDE1-1", "WIDE2-2" },
                ax25.Packet.AX25_CONTROL_APRS, ax25.Packet.AX25_PROTOCOL_NO_LAYER_3,
                System.Text.Encoding.ASCII.GetBytes(@"=5533.00N\03733.00Ek000/000 /A=00010 AFSK Test")
                );

            mod.GetSamples(packet, out samples);
            dem.AddSamples(samples, samples.Length);

            // PLAY
            WaveStream.PlaySamples(44100, samples, false);

            // SAVE
            WaveStream.SaveWav16BitMono(@"test3.wav", 44100, samples);

            Console.WriteLine("Test {0} done", 3);
        }
Example #2
0
 public DirectAudioAFSKDemodulator(int deviceNo, ax25.PacketHandler h)
 {
     dem     = new ax25.AFSK1200Demodulator(44100, 1, 0, h);
     recored = new WaveInEvent();
     recored.DeviceNumber   = deviceNo;
     recored.WaveFormat     = new WaveFormat(44100, 16, 1);
     recored.DataAvailable += new EventHandler <WaveInEventArgs>(recored_DataAvailable);
 }
Example #3
0
        // demodulate from wav file
        public static void Test4()
        {
            Console.WriteLine("Starting test {0}", 4);

            float[] L, R;
            int     ch, sr, bd;

            WaveStream.ReadWavFile(@"test4.wav", out ch, out sr, out bd, out L, out R);

            ax25.AFSK1200Demodulator dem = new ax25.AFSK1200Demodulator(sr, 36, 0, new TestConsole("T4>> {0}"));
            dem.AddSamples(L, L.Length);
            string rp = ax25.Packet.Format(dem.LastPacket);

            Console.WriteLine("Test {0} done", 4);
        }
Example #4
0
        // modulate -> demodulate
        public static void Test1()
        {
            Console.WriteLine("Starting test {0}", 1);

            ax25.AFSK1200Modulator mod = new ax25.AFSK1200Modulator(44100);
            mod.txDelayMs = 500;
            ax25.AFSK1200Demodulator dem = new ax25.AFSK1200Demodulator(44100, 1, 0, new TestConsole("T1>> {0}"));

            ax25.Packet packet1 = new ax25.Packet(
                "APRS", "TESTER1", new String[] { "WIDE1-1", "WIDE2-2" },
                ax25.Packet.AX25_CONTROL_APRS, ax25.Packet.AX25_PROTOCOL_NO_LAYER_3,
                System.Text.Encoding.ASCII.GetBytes(@"=5533.00N\03733.00Ek000/000 /A=00010 AFSK Test 1")
                );

            ax25.Packet packet2 = new ax25.Packet(
                "APRS", "TESTER2", new String[] { "WIDE1-1", "WIDE2-2" },
                ax25.Packet.AX25_CONTROL_APRS, ax25.Packet.AX25_PROTOCOL_NO_LAYER_3,
                System.Text.Encoding.ASCII.GetBytes(@">Currently testing...")
                );


            ax25.Packet packet3 = new ax25.Packet(
                "APRS", "TESTER3", new String[] { "WIDE1-1", "WIDE2-2" },
                ax25.Packet.AX25_CONTROL_APRS, ax25.Packet.AX25_PROTOCOL_NO_LAYER_3,
                System.Text.Encoding.ASCII.GetBytes(@"=4802.37N/03934.12E0")
                );

            float[] samples;

            mod.GetSamples(packet1, out samples);
            dem.AddSamples(samples, samples.Length);

            mod.GetSamples(new ax25.Packet[] { packet2, packet3 }, out samples);
            dem.AddSamples(samples, samples.Length);

            Console.WriteLine("Test {0} done", 1);
        }