Example #1
0
        internal void LoadFirmware(string filename)
        {
            // Load the file into a memory block

            byte[] data = ReadFileIntoByteArray(filename);

            // Set up an XMODEM object

            var xmodem    = new XModem.XModem(_w600Port);
            int bytesSent = 0;

            xmodem.PacketSent += (sender, args) =>
            {
                bytesSent += 1024;
                Console.Write("{0}% sent\r", Math.Min(bytesSent, data.Length) * 100 / data.Length);
            };

            // Tell the FEZ to get ready for some firmware

            //SendCommand(FezCommand.LoadFirmware);
            //_w600Port.ReadLine(); // Eat "Start File Transfer" chit chat

            // Transfer the block

            int result = xmodem.XmodemTransmit(data, data.Length, true);

            // Throw an exception if anything freaked

            if (result < data.Length)
            {
                throw new Exception("Failed to transmit file " + result);
            }

            Console.WriteLine();

            // There is a bunch more yak on the serial port, and the device
            // has restarted in normal operation. You know, just FYI.
            //while (true)
            //{
            //    var line = fezPort.ReadLine();
            //    System.Console.WriteLine(line);
            //}

            Close();
        }
        internal void LoadFirmware(string filename)
        {
            // Load the file into a memory block

            byte[] data = ReadFileIntoByteArray(filename);

            // Set up an XMODEM object

            var xmodem = new XModem.XModem(_fezPort);
            int bytesSent = 0;
            xmodem.PacketSent += (sender, args) =>
                                     {
                                         bytesSent += 1024;
                                         Console.Write("{0}% sent\r", Math.Min(bytesSent, data.Length)*100/data.Length);
                                     };

            // Tell the FEZ to get ready for some firmware

            SendCommand(FezCommand.LoadFirmware);
            _fezPort.ReadLine(); // Eat "Start File Transfer" chit chat

            // Transfer the block

            int result = xmodem.XmodemTransmit(data, data.Length, true);

            // Throw an exception if anything freaked

            if (result < data.Length)
            {
                throw new FezBootloaderException("Failed to transmit file " + result);
            }

            Console.WriteLine();

            // There is a bunch more yak on the serial port, and the device
            // has restarted in normal operation. You know, just FYI.
            //while (true)
            //{
            //    var line = fezPort.ReadLine();
            //    System.Console.WriteLine(line);
            //}

            Close();
        }