public static bool Cal0() { HexString inc = null; bool repeat = true; while (repeat) { repeat = false; try { byte[] send = StrToByte("5A 52 43 0D 0A"); //ZRC SendPort(send); for (int i = 0; i < 60; i++) { //TaskEx.Delay(500); Thread.Sleep(500); inc = ReadPortIncomes(); //inc.bin_answer = "45523231"; if (inc?.Hex == "") { continue; } LastPortAnswer = inc.Txt + "\n" + inc.Hex; if (inc.Hex.Contains("4F4B3030".ToLower())) //OK { MessageBox.Show("Переключите пробник в режим измерения \"MEAS\"", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information); return(true); } if (inc.Hex.Contains("45523231")) //ER21 = Too Bright { var re = MessageBox.Show("Переключите пробник в режим \"0-CAL\"\n\nСлишком светло!", "Слишком светло!", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (re == DialogResult.OK) { repeat = true; } else { repeat = false; } } if (inc.Hex.Contains("4532320d")) //E22 Too Dark, 0-Cal enabled - калибровка не нужна { MessageBox.Show("Переключите пробник в режим измерения \"MEAS\"", "Калибровка не нужна", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(true); } break; } } catch (Exception ex) { LastPortAnswer = inc?.Hex; MessageBox.Show("Ошибка калибровки Cal-0.\n" + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } MessageBox.Show("Время калибровки вышло (30с): ответ не получен => Нет соединения.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); }
public bool Run() { LastPortIncome = null; UsePrevRead = false; ifstate state = ifstate.normal; bool FirstSelected = false; failMsg = null; for (int i = 0; i < RunList.Count; i++) { if (StringToTestList.ContainsKey(RunList[i].Key)) { switch (state) { case ifstate.normal: #region no if (RunList[i].Key == "{") { state = ifstate.skip; continue; } bool pass = StringToTestList[RunList[i].Key](RunList[i].Value); if (!pass) { if (nextIf(i)) { state = ifstate.go; } else { return(FailRun()); } } break; #endregion case ifstate.skip: #region skip if (RunList[i].Key == "}") { state = ifstate.normal; } //else //{ // continue; //} break; #endregion case ifstate.go: #region go if (RunList[i].Key == "}") { return(SuccessRun()); } bool pass2 = StringToTestList[RunList[i].Key](RunList[i].Value); if (!pass2) { return(FailRun()); } break; #endregion } } else { PublicData.write_info($"{display}: \"{RunList[i].Key}\" - программа не знает такого пункта. (F4 редактировать - \"{section.Name}\")"); if (!FirstSelected) { PublicData.SetFokusListView(this); } FirstSelected = true; failMsg = $"Неизвестная команда \"{RunList[i].Key}\" в тесте [{section.Name}]"; return(FailRun()); } } return(SuccessRun()); }