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); }
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; }
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; }
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); }
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."); } } } }