/// <summary> /// Основная процедура чтения данных с устройства /// </summary> void ReadCFG() { try { pObject.Eprom = pBios.LoadEprom(); if (pObject.Eprom != null) { pObject.CalibrationTableHandles = pBios.CreateCalibrationTableHandles(pObject.Eprom); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка во время загрузки конфигурации", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
/// <summary> /// загружаем с файла /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void loadFromFile_Click(object sender, EventArgs e) { if (openFileDialog.ShowDialog(this) == DialogResult.OK) { FileFormat format = FileFormat.EF1TXT; switch (openFileDialog.FilterIndex) { case 1: format = FileFormat.EF1TXT; break; case 2: format = FileFormat.EF2XMLOLD; break; case 3: format = FileFormat.EF2XML; break; } bool blocked = false; try { if (packetSyncMutex.WaitOne(defaultTimeWaitOnPacketMutex)) { blocked = true; currentState.PacketsTurnOn = false; TurnOffPackets(null, null); currentState.Eprom = bios.LoadEpromFromFile(openFileDialog.FileName, format); if (currentState.Eprom == null) { MessageBox.Show(this, "Произошла не предвиденная ошибка!" + Constants.vbCrLf + "не удалось загрузить таблицу описателей калибруемых параметров", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { currentState.CalibrationTableHandles = bios.CreateCalibrationTableHandles(currentState.Eprom); if (currentState.CalibrationTableHandles == null) { MessageBox.Show(this, "Данные в EPROM устройстве не корректны!" + Constants.vbCrLf + "Не удалось выделить таблицу описателей калибровочных параметров", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); currentState.Eprom = null; } } gr.ResetPoint(); gr.ResetPoints(); gr.ResetScale(); ClearDataGrid(); onShown(this, new EventArgs()); } else { MessageBox.Show(this, "Не удалось загрузить из файла." + Constants.vbCrLf + "Причина: Интенсивный обмен", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (Exception) { MessageBox.Show(this, "Не удалось загрузить файл. Возможно файл не соответствует формату или поврежден", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { if (blocked) { packetSyncMutex.ReleaseMutex(); } } } }