/// <summary> /// показать форму выбора калибруемого канала /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listOfChannels_Click(object sender, EventArgs e) { if (currentState.CalibrationTableHandles == null) { MessageBox.Show(this, "Не загруженна таблица калибровочных параметров", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } ChannelsForm cha = new ChannelsForm(); int i = 1; foreach (CalibrationTableHandle handle in currentState.CalibrationTableHandles) { ListViewItem item = new ListViewItem(i.ToString()); ListViewItem.ListViewSubItem id = new ListViewItem.ListViewSubItem(item, string.Format("{0:X2}", handle.Name)); ListViewItem.ListViewSubItem offset = new ListViewItem.ListViewSubItem(item, string.Format("{0:X2}", handle.Offset)); ListViewItem.ListViewSubItem name = new ListViewItem.ListViewSubItem(item, ""); item.Tag = handle; item.SubItems.Add(id); item.SubItems.Add(offset); item.SubItems.Add(name); cha.listViewChannels.Items.Add(item); i = i + 1; } if (cha.ShowDialog(this) == DialogResult.OK) { if (cha.listViewChannels.SelectedItems != null) { if (cha.listViewChannels.SelectedItems[0].Tag is CalibrationTableHandle) { currentState.SelectedCalibrationTable = (CalibrationTableHandle)cha.listViewChannels.SelectedItems[0].Tag; LastError lastError = bios.GetCalibrationTable(currentState.Eprom, currentState.SelectedCalibrationTable); switch (lastError) { case LastError.Success: ShowCalibrationTableInGraphics(currentState.SelectedCalibrationTable.CalibrationTable); ShowCalibrationTableInDataGrid(currentState.SelectedCalibrationTable.CalibrationTable); if (currentState.SelectedCalibrationTable.CalibrationTable.IsExtremCalculated) { if (currentState.SelectedCalibrationTable.CalibrationTable.IsValidExtremPoints == false) { checkBoxCaculateSide.Checked = false; if (MessageBox.Show(this, "Крайние точки расчитаны не корректно" + Constants.vbCrLf + "Сбросить крайние точки в значение по умолчанию?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) { currentState.SelectedCalibrationTable.CalibrationTable.ClearExtremPoints(); } } else { checkBoxCaculateSide.Checked = true; } } else { checkBoxCaculateSide.Checked = false; } checkBoxCaculateSide_CheckedChanged(checkBoxCaculateSide, new EventArgs()); checkBoxDoScale_CheckedChanged(checkBoxDoScale, new EventArgs()); onShown(null, null); if (packetSyncMutex.WaitOne(defaultTimeWaitOnPacketMutex)) { currentState.SelectedCalibrationTable.CalibrationTable.CalculateKoef(); currentState.SelectedCalibrationTable.CalibrationTable.SaveTable(); biosTranslated = false; if (!currentState.PacketsTurnOn) { currentState.PacketsTurnOn = true; } TurnOnPackets(null, null); packetSyncMutex.ReleaseMutex(); } else { MessageBox.Show(this, "Не настроить таблицу калибровки для работы." + Constants.vbCrLf + "Перезагрузите таблицу калибровки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } break; case LastError.Error: MessageBox.Show(this, "Не удалось загрузить таблицу калибровки." + Constants.vbCrLf + "Возможно данные не корректы в таблице калибровки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case LastError.Default: break; default: break; } } } } }
/// <summary> /// показать форму выбора калибруемого канала /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listOfChannels_Click(object sender, EventArgs e) { if (currentState.CalibrationTableHandles == null) { MessageBox.Show(this, "Не загруженна таблица калибровочных параметров", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } ChannelsForm cha = new ChannelsForm(); int i = 1; foreach (CalibrationTableHandle handle in currentState.CalibrationTableHandles) { ListViewItem item = new ListViewItem(i.ToString()); ListViewItem.ListViewSubItem id = new ListViewItem.ListViewSubItem(item, string.Format("{0:X2}", handle.Name)); ListViewItem.ListViewSubItem offset = new ListViewItem.ListViewSubItem(item, string.Format("{0:X2}", handle.Offset)); ListViewItem.ListViewSubItem name = new ListViewItem.ListViewSubItem(item, ""); item.Tag = handle; item.SubItems.Add(id); item.SubItems.Add(offset); item.SubItems.Add(name); cha.listViewChannels.Items.Add(item); i = i + 1; } if (cha.ShowDialog(this) == DialogResult.OK) { if (cha.listViewChannels.SelectedItems != null) { if (cha.listViewChannels.SelectedItems[0].Tag is CalibrationTableHandle) { currentState.SelectedCalibrationTable = (CalibrationTableHandle)cha.listViewChannels.SelectedItems[0].Tag; LastError lastError = bios.GetCalibrationTable(currentState.Eprom, currentState.SelectedCalibrationTable); switch (lastError) { case LastError.Success: ShowCalibrationTableInGraphics(currentState.SelectedCalibrationTable.CalibrationTable); ShowCalibrationTableInDataGrid(currentState.SelectedCalibrationTable.CalibrationTable); if (currentState.SelectedCalibrationTable.CalibrationTable.IsExtremCalculated) { if (currentState.SelectedCalibrationTable.CalibrationTable.IsValidExtremPoints == false) { checkBoxCaculateSide.Checked = false; if (MessageBox.Show(this, "Крайние точки расчитаны не корректно" + Constants.vbCrLf + "Сбросить крайние точки в значение по умолчанию?", "Ошибка", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) { currentState.SelectedCalibrationTable.CalibrationTable.ClearExtremPoints(); } } else checkBoxCaculateSide.Checked = true; } else checkBoxCaculateSide.Checked = false; checkBoxCaculateSide_CheckedChanged(checkBoxCaculateSide, new EventArgs()); checkBoxDoScale_CheckedChanged(checkBoxDoScale, new EventArgs()); onShown(null, null); if (packetSyncMutex.WaitOne(defaultTimeWaitOnPacketMutex)) { currentState.SelectedCalibrationTable.CalibrationTable.CalculateKoef(); currentState.SelectedCalibrationTable.CalibrationTable.SaveTable(); biosTranslated = false; if (!currentState.PacketsTurnOn) currentState.PacketsTurnOn = true; TurnOnPackets(null, null); packetSyncMutex.ReleaseMutex(); } else MessageBox.Show(this, "Не настроить таблицу калибровки для работы." + Constants.vbCrLf + "Перезагрузите таблицу калибровки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case LastError.Error: MessageBox.Show(this, "Не удалось загрузить таблицу калибровки." + Constants.vbCrLf + "Возможно данные не корректы в таблице калибровки", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case LastError.Default: break; default: break; } } } } }