Esempio n. 1
0
        private static void TestFrames()
        {
#if TRACE_LOG
            FileName = "Receiver";
            LogHelper.WriteToFile("Starting", "Program", FileName, true);
            FileName = "Sender";
            LogHelper.WriteToFile("Starting", "Program", FileName, true);
#endif
            FrameSender sender  = new FrameSender();
            ulong       counter = 0;
            while (true)
            {
                FileName = "Sender";
#if TRACE_LOG
                LogHelper.WriteToFile("Prepare to sending packet.", "Program", FileName, true);
#endif
                List <Packet> sendPackets = new List <Packet>();
                while (sendPackets.Count == 0) //for (int i = 0; i < 1; i++)
                {
                    //Packet p = GetPacketB();
                    Packet p = RandomPacket();
                    if (sender.ProcessPacket(p))
                    {
                        sendPackets.Add(p);
                    }
                }

                byte[] data = sender.Send();

                FileName = "Receiver";
                FrameReceiver receiver = new FrameReceiver();
#if TRACE_LOG
                LogHelper.WriteToFile("Prepare to receive packet.", "Program", FileName, true);
#endif
                List <IPacket> readPackets = receiver.Receive(data);
                Debug.Assert(sendPackets.Count == readPackets.Count);
                for (int i = 0; i < sendPackets.Count; i++)
                {
                    IPacket itemA = sendPackets[i];
                    IPacket itemB = readPackets[i];
                    Debug.Assert(itemA.Equals(itemB));
                }
                Console.WriteLine(counter);
                counter++;
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById <Button>(Resource.Id.myButton);

            button.Click += delegate { button.Text = $"{count++} clicks!"; };

            FrameReceiverConfig    receiverConfig    = null;
            FrameTransmitterConfig transmitterConfig = null;

            try
            {
                transmitterConfig = new FrameTransmitterConfig(
                    this,
                    "audible-7k-channel-0");
                receiverConfig = new FrameReceiverConfig(
                    this,
                    "audible-7k-channel-0");
            }
            catch (IOException e)
            {
                // could not build configs
            }

            FrameReceiver    receiver    = null;
            FrameTransmitter transmitter = null;

            try
            {
                receiver    = new FrameReceiver(receiverConfig);
                transmitter = new FrameTransmitter(transmitterConfig);
            }
            catch (ModemException e)
            {
                // could not set up receiver/transmitter
            }

            string payload = "Hello, World Hello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, World!";

            try
            {
                transmitter.Send(Encoding.UTF8.GetBytes(payload));
            }
            catch (IOException e)
            {
                // our message might be too long or the transmit queue full
            }


            // set receiver to block until a frame is received
            // by default receivers are nonblocking
            // receiver.SetBlocking(10, 0);

            //    byte[] buf = new byte[1024];
            //     long recvLen = 0;
            //     try
            //    {

            //         recvLen = receiver.Receive(buf);
            //    }
            //     catch (IOException e)
            //     {
            // read timed out
            //    }

            //     button.Text = Encoding.UTF8.GetString(buf, 0, (int) recvLen);
        }