Example #1
0
        /// <summary>
        /// Загрузка данных с устройства
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void loadFromDevice_Click(object sender, EventArgs e)
        {
            bool blocked = false;

            try
            {
                if (packetSyncMutex.WaitOne(defaultTimeWaitOnPacketMutex))
                {
                    blocked        = true;
                    biosTranslated = true;

                    blocked = false;
                    packetSyncMutex.ReleaseMutex();
                }
                else
                {
                    return;
                }

                if (!currentState.PacketsTurnOn)
                {
                    currentState.PacketsTurnOn = true;
                    TurnOnPackets(null, null);
                }
                LoadeForm loader = new LoadeForm(bios, currentState);

                if (loader.ShowDialog(this) == DialogResult.OK)
                {
                    if (currentState.Eprom == null)
                    {
                        MessageBox.Show(this, "Произошла не предвиденная ошибка!" +
                                        Constants.vbCrLf + "не удалось загрузить таблицу описателей калибруемых параметров",
                                        "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    if (currentState.CalibrationTableHandles == null)
                    {
                        MessageBox.Show(this, "Данные в EPROM устройстве не корректны!" +
                                        Constants.vbCrLf + "Не удалось выделить таблицу описателей калибровочных параметров",
                                        "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        currentState.Eprom = null;
                    }
                }

                loader.Close();
                loader.Dispose();

                gr.ResetPoint();
                gr.ResetPoints();

                gr.ResetScale();
                ClearDataGrid();

                onShown(null, null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (blocked)
                {
                    packetSyncMutex.ReleaseMutex();
                }

                currentState.PacketsTurnOn = false;
                TurnOffPackets(null, null);
            }
        }