Ejemplo n.º 1
0
        public static IntelHEX FromBinFw(Stream stream)
        {
            IntelHEX hex = new IntelHEX();
            int      dato;
            int      i = 0;

            dato = stream.ReadByte();
            while (dato >= 0)
            {
                hex.rom[i] = (byte)dato;
                i++;
                hex.maxaddr = i;
                dato        = stream.ReadByte();
            }
            return(hex);
        }
Ejemplo n.º 2
0
        public static IntelHEX FromBinFw(Stream stream)
        {
            IntelHEX hex = new IntelHEX();
            int dato;
            int i = 0;
            
            dato = stream.ReadByte();
            while (dato >= 0)
            {
                hex.rom[i] = (byte)dato;
                i++;
                hex.maxaddr = i;
                dato = stream.ReadByte();
            }
            return hex;

        }
Ejemplo n.º 3
0
        public static IntelHEX FromBinHex(string FileName)
        {
            IntelHEX hex = new IntelHEX();
            string line;
            int i = 0;

            if (FileName.Length == 0)
                return null;
            StreamReader sreader = new StreamReader(FileName);

            while (!sreader.EndOfStream)
            {
                line = sreader.ReadLine();
                hex.rom[i] = tohex(line);
                i++;
                hex.maxaddr = i;
            }
            return hex;
        }
Ejemplo n.º 4
0
        public static IntelHEX FromBinHex(string FileName)
        {
            IntelHEX hex = new IntelHEX();
            string   line;
            int      i = 0;

            if (FileName.Length == 0)
            {
                return(null);
            }
            StreamReader sreader = new StreamReader(FileName);

            while (!sreader.EndOfStream)
            {
                line       = sreader.ReadLine();
                hex.rom[i] = tohex(line);
                i++;
                hex.maxaddr = i;
            }
            return(hex);
        }
Ejemplo n.º 5
0
        private void button1_Click(object sender, EventArgs e)
        {

            if (comboBoxCOM.SelectedIndex < 0)
            {
                if (me.Idioma == 0)
                    MessageBox.Show("Selecciona un puerto serie");
                else
                    MessageBox.Show("Choose Serial Port");
            }
            else
            {
                try
                {
                    hex = IntelHEX.FromBinFw(textBox1.Text);
                }
                catch (Exception)
                {
                }

                if (hex == null)
                {
                    if (me.Idioma == 0)
                        MessageBox.Show("Error abriendo fichero. Usando interno");
                    else
                        MessageBox.Show("Error opening file. Using build-in");
                    
                    MemoryStream stream;
                    switch (device)
                    {
                        case Devices.OSD:
                            stream = new MemoryStream(global::UAVConsole.Properties.Resources.firmware);
                            break;
                        case Devices.Uplink:
                            stream = new MemoryStream(global::UAVConsole.Properties.Resources.fw_uplink);
                            break;
                        case Devices.AntTracker:
                            stream = new MemoryStream(global::UAVConsole.Properties.Resources.fw_anttrack);
                            break;
                        default:
                            stream = null;
                            break;
                    }
                    hex = IntelHEX.FromBinFw(stream);
                }
                if (modo == Modos.Usb)
                {
                    pages = hex.lenght / 512;
                    currPage = 0;
                    currOffset = 0;
                   
                    if (hex.lenght % 512 == 0)
                    {
                        if (device == Devices.Uplink)
                            usbFirm = new UsbLayerFIRM("9100");
                        else
                            usbFirm = new UsbLayerFIRM("9200");

                        // configuramos la prgressbar
                        progressBar1.Maximum = pages;
                        progressBar1.Value = 0;
                        progressBar1.Invalidate();

                        timer1.Interval = 3000;
                        timer1.Start();
                    }
                    else
                    {
                        MessageBox.Show("El fichero no tiene la longitud adecuada. Debe ser múltiplo del tamaño de página.");
                    }
                }
                else
                {
                    string comm_name = comboBoxCOM.Items[comboBoxCOM.SelectedIndex].ToString();
                    sp = new SerialPort(comm_name, 115200, Parity.None, 8, StopBits.One);
                    pages = hex.lenght / 512;
                    currPage = 0;
                    crc = 0;

                    if (hex.lenght % 512 == 0)
                    {
                        sp.Open();
                        sp.Write("$");
                        sp.Write("A");
                        sp.Write("T");
                        sp.Write("C");

                        //enviamos el número de pages
                        sp.Write(new byte[] { (byte)pages }, 0, 1);

                        // configuramos la prgressbar
                        progressBar1.Maximum = pages;
                        progressBar1.Value = 0;
                        progressBar1.Invalidate();

                        timer1.Interval = 3000;
                        timer1.Start();
                    }
                    else
                    {
                        MessageBox.Show("El fichero no tiene la longitud adecuada. Debe ser múltiplo del tamaño de página.");
                    }
                }
                
            }
        }