// Token: 0x060000BF RID: 191 RVA: 0x0000B384 File Offset: 0x00009584 public static FlashResult SetFlashResultD(string deivce, bool reuslt) { Log.w(deivce, "start SetFlashResultD"); FlashResult flashResult = new FlashResult(); flashResult.Result = false; flashResult.Msg = "upload result failed"; try { string text = ""; if (string.IsNullOrEmpty(deivce)) { flashResult.Result = false; flashResult.Msg = "device is null"; return flashResult; } Log.w(deivce, "upload flash result"); TPUB_TEST_FUNC_DLL factoryObject = FactoryCtrl.GetFactoryObject(deivce, out text); if (factoryObject == null) { flashResult.Result = false; flashResult.Msg = "error:couldn't get TPUB_TEST_FUNC_DLL"; } else { bool flag = factoryObject.SaveDataByCPUID(deivce, reuslt, out text); text = string.Format("SaveDataByCPUID result {0} status {1}", flag.ToString(), text); flashResult.Result = flag; flashResult.Msg = text; Log.w(deivce, text); if (flag) { Log.w(deivce, "upload result success"); } else { Log.w(deivce, "upload result failed"); } } } catch (Exception ex) { Log.w(string.Concat(new string[] { deivce, " ", ex.Message, " ", ex.StackTrace })); FlashResult flashResult2 = flashResult; flashResult2.Msg = flashResult2.Msg + " " + ex.Message; } Log.w(deivce, flashResult.Msg); return flashResult; }
//update flashing status using timer private void Flashtimer_Tick(object sender, EventArgs e) { FlashResult.Text = flash.Result; FlashResult.Invalidate(); status(flash.Status); ProgressText.Text = (flash.Progress * 100.0).ToString() + "%"; if (progress.Value == (int)(flash.Progress * 100.0)) { if ((int)(flash.Progress * 100.0) < 100) { flash.Progress += 3f / 1000f; } progress.Value = (int)(flash.Progress * 100.0); } else { progress.Value = (int)(flash.Progress * 100.0); } ProgressText.Text = progress.Value.ToString(); if (flash.StartTime > DateTime.MinValue) { TimeSpan timeSpan = DateTime.Now.Subtract(flash.StartTime); string time = timeSpan.TotalSeconds.ToString(); time = time.Substring(0, time.Length - 6); FlashTime.Text = string.Format("{0}s", time); } if (flash.Error) { Flashtimer.Enabled = false; flash.IsUpdate = false; button24.Enabled = true; FlashBtn.Enabled = true; kenzo.SpeakAsync("Sir, Error Detected, " + flash.Status.Replace("_", " ") + " Please try again"); FlashPort.Visible = false; FlashSpiner.Visible = false; button24.Enabled = true; FlashBtn.Enabled = true; progress.Visible = false; ProgressText.Visible = false; FlashTime.Visible = false; FlashResult.Visible = false; status(null); Stt.Visible = false; check(); return; } if (flash.Result == "success") { flash.IsUpdate = false; FlashResult.BackColor = Color.LightGreen; Flashtimer.Enabled = false; kenzo.SpeakAsync("Flashing Device Succesfuly"); FlashPort.Visible = false; FlashSpiner.Visible = false; button24.Enabled = true; FlashBtn.Enabled = true; progress.Visible = false; ProgressText.Visible = false; FlashTime.Visible = false; FlashResult.Visible = false; Stt.Visible = false; check(); } }
private bool TryOpen(string port) { SerialPort p = null; try { p = new SerialPort(port, 115200); p.ReadTimeout = 500; p.Open(); Flush(p); /* read version */ Pm3UsbCommand cmdDevInfo = new Pm3UsbCommand(0); cmdDevInfo.Write(p); Pm3UsbResponse resDevInfo = new Pm3UsbResponse(p); if (resDevInfo.Cmd != Pm3UsbResponse.eResponseType.DeviceInfo) { LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] TryOpen: " + port + " did not reply to a device info"); p.Close(); return(false); } DeviceInfo = (eDeviceInfo)resDevInfo.data.arg[0]; LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] Device info: "); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] BOOTROM_PRESENT " + ((DeviceInfo & eDeviceInfo.BootromPresent) != 0 ? "Y" : "N")); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] OSIMAGE_PRESENT " + ((DeviceInfo & eDeviceInfo.OsImagePresent) != 0 ? "Y" : "N")); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] MODE_BOOTROM " + ((DeviceInfo & eDeviceInfo.ModeBootrom) != 0 ? "Y" : "N")); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] MODE_OS " + ((DeviceInfo & eDeviceInfo.ModeOs) != 0 ? "Y" : "N")); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] UNDERSTANDS_START_FLASH " + ((DeviceInfo & eDeviceInfo.UnderstandStartFlash) != 0 ? "Y" : "N")); if ((DeviceInfo & eDeviceInfo.ModeBootrom) != 0 && (DeviceInfo & eDeviceInfo.ModeBootrom) != 0) { Pm3UsbCommand cmdReset = new Pm3UsbCommand((ulong)Pm3UsbCommand.eCommandType.HardwareReset); CurrentPort = port; Port = p; if (!File.Exists(Flashfile)) { LogWindow.Log(LogWindow.eLogLevel.Error, "[PM3] Device started in bootloader mode, but I cannot find flash file " + Flashfile + ". Reset device."); } else { bool bootloader = false; var segs = ReadFlash(Flashfile, out bootloader); FlashRequestContext ctx = new FlashRequestContext(); ctx.Bootloader = bootloader; ctx.FlashFile = Flashfile; ctx.Proceed = false; FlashRequest?.Invoke(this, ctx); if (ctx.Proceed) { bool success = Flash(segs, bootloader); FlashResult?.Invoke(this, success); } } cmdReset.Write(p); p.Close(); return(false); } Pm3UsbCommand cmdPing = new Pm3UsbCommand(0x109); cmdPing.Write(p); Pm3UsbResponse resPing = new Pm3UsbResponse(p); if (resPing.Cmd != Pm3UsbResponse.eResponseType.ACK) { LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] TryOpen: " + port + " did not reply to a ping"); p.Close(); return(false); } /* read version */ Pm3UsbCommand cmdVers = new Pm3UsbCommand(0x107); cmdVers.Write(p); Pm3UsbResponse resVers = new Pm3UsbResponse(p); if (resVers.Cmd != Pm3UsbResponse.eResponseType.ACK) { LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] TryOpen: " + port + " did not reply to a version info"); p.Close(); return(false); } Thread.Sleep(500); Flush(p); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] Chip ID: 0x" + resVers.data.arg[0].ToString("X8")); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] Flash: 0x" + resVers.data.arg[1].ToString("X8")); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] Caps: 0x" + resVers.data.arg[2].ToString("X8")); string versionString = Encoding.UTF8.GetString(resVers.data.d, 0, resVers.data.dataLen - 1); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] Version:"); foreach (string line in versionString.Split('\n')) { LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] " + line); } CurrentPort = port; Port = p; /* does it support the unlock command? */ int reason = 0; UnlockSupported = true; UnlockTag(0xDEADBEEF, ref reason); /* if not supported, the command will simply time out */ UnlockSupported = reason > 0; LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] Device does " + (UnlockSupported ? "" : "*NOT*") + " support SLIX-L unlock command"); DeviceFound?.Invoke(this, CurrentPort); LogWindow.Log(LogWindow.eLogLevel.Debug, "[PM3] TryOpen: " + port + " successfully opened"); Connected = true; return(true); } catch (Exception ex) { try { if (p != null && p.IsOpen) { p.Close(); } } catch (Exception e) { } } return(false); }
private ActionResult RenderResultListFlash(ListHeaderModel header) { var results = ResultsController.GetFlashResult(header); var dataTable = SortingClass.CreateStructure(); dataTable.Columns.Add("pos0", typeof(int)); //dt.Rows.Add(res.Climber.Vk, 0, String.Empty, res.Climber.SecretaryId.Value, String.Empty, // 0.0, String.Empty, sp, curPos); //climbersWithResult.Add(res.Climber.SecretaryId.Value); foreach (var r in results.Values.OfType <ResultsController.FlashRoundResult>().Where(r => r.RouteNum == 1)) { var climber = header.Competition.Climbers.FirstOrDefault(c => c.SecretaryId == r.ClimberId); if (climber == null) { continue; } int sp; bool allDSQ = true, allDNS = true; foreach (var route in r.Routes) { if (allDNS && !route.ResText.ToLowerInvariant().Contains("н/я")) { allDNS = false; } if (allDSQ && !route.ResText.ToLowerInvariant().Contains("дискв")) { allDSQ = false; } if (!allDNS || allDSQ) { break; } } if (allDNS && allDSQ) { continue; } if (allDNS) { sp = 2; } else if (allDSQ) { sp = 1; } else { sp = 0; } dataTable.Rows.Add(climber.Vk, 0, String.Empty, r.ClimberId, String.Empty, 0.0, String.Empty, sp, r.Pos); } if (dataTable.Rows.Count > 0) { SortingClass.SortResults(dataTable, header.Quota, true, false, header.CompetitionRules, false); } List <FlashResult> model = new List <FlashResult>(); foreach (DataRow row in dataTable.Rows) { FlashResult flshRes = new FlashResult(); flshRes.Climber = header.Competition.Climbers.First(r => r.SecretaryId == (int)row[3]); flshRes.PointsText = (string)row["ptsText"]; flshRes.PosText = (string)row["posText"]; flshRes.PreQf = false; flshRes.Qf = (string)row["qf"]; flshRes.ResText = results[flshRes.Climber.SecretaryId.Value].Pts.ToString("0.00"); foreach (var list in header.Children.OrderBy(r => r.LocalIid)) { var listRes = list.ResultsLead.FirstOrDefault(r => r.ClimberId == flshRes.Climber.Iid); if (listRes == null) { flshRes.Routes.Add(new LeadResultLine { ResText = String.Empty, PointsText = String.Empty, PosText = String.Empty }); } else { flshRes.Routes.Add(listRes); } } model.Add(flshRes); } return(PartialView("RenderResultListFlash", model)); }