bool upload_xmodem(ICommsSerial comPort) { // try xmodem mode // xmodem - short cts to ground try { uploader_LogEvent("Trying XModem Mode"); //comPort.BaudRate = 57600; comPort.BaudRate = MainV2.comPort.BaseStream.BaudRate; comPort.ReadTimeout = 1000; Thread.Sleep(2000); var tempd = comPort.ReadExisting(); Console.WriteLine(tempd); comPort.Write("U"); Thread.Sleep(1000); var resp1 = Serial_ReadLine(comPort); // echo var resp2 = Serial_ReadLine(comPort); // echo 2 var tempd2 = comPort.ReadExisting(); // posibly bootloader info / use to sync // identify comPort.Write("i"); // responce is rfd900.... var resp3 = Serial_ReadLine(comPort); //echo var resp4 = Serial_ReadLine(comPort); // newline var resp5 = Serial_ReadLine(comPort); // bootloader info uploader_LogEvent(resp5); if (resp5.Contains("RFD900")) { // start upload comPort.Write("u"); var resp6 = Serial_ReadLine(comPort); // echo var resp7 = Serial_ReadLine(comPort); // Ready if (resp7.Contains("Ready")) { comPort.ReadTimeout = 3500; // responce is C var isC = comPort.ReadByte(); var temp = comPort.ReadExisting(); if (isC == 'C') { XModem.LogEvent += uploader_LogEvent; XModem.ProgressEvent += uploader_ProgressEvent; // start file send XModem.Upload(@"SiK900x.bin", comPort); XModem.LogEvent -= uploader_LogEvent; XModem.ProgressEvent -= uploader_ProgressEvent; return(true); } } } } catch (Exception ex2) { log.Error(ex2); } return(false); }
private void Exit() { if (_xmodemTask != null) { _xmodemTask.Abort(); _xmodemTask = null; } _executing = false; _okButton.Enabled = true; _fileNameBox.Enabled = true; _selectButton.Enabled = true; }
private bool StartSend() { try { _xmodemTask = new XModemSender(_connectionTag, _fileNameBox.Text); _xmodemTask.NotifyTarget = this.Handle; _xmodemTask.Start(); return(true); } catch (Exception ex) { GUtil.Warning(this, ex.Message); return(false); } }