Exemple #1
0
        /// <summary>
        /// сохранить таблицу калибровки в устройство
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void вУстройсвоToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (currentState.SelectedCalibrationTable == null)
            {
                MessageBox.Show(this, "Не загруженна конфигурация калибровочных параметров",
                                "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            if (currentState.SelectedCalibrationTable.CalibrationTable == null)
            {
                MessageBox.Show(this, "Не загруженна таблица калибровки",
                                "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            bool blocked = false;

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

                    blocked = false;
                    packetSyncMutex.ReleaseMutex();
                }
                else
                {
                    MessageBox.Show(this, "Не удается сохрать таблицу калибровки" + Constants.vbCrLf +
                                    "Причина: очень энтенсивный обмен данными", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }

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

                saver.ShowDialog(this);

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

                    blocked = false;
                    packetSyncMutex.ReleaseMutex();
                }
                else
                {
                    MessageBox.Show(this, "Не удается сохрать таблицу калибровки" + Constants.vbCrLf +
                                    "Причина: очень энтенсивный обмен данными", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            finally
            {
                if (blocked)
                {
                    packetSyncMutex.ReleaseMutex();
                }

                //currentState.PacketsTurnOn = false;
                //TurnOffPackets(null, null);
            }
        }
Exemple #2
0
        /// <summary>
        /// сохранить таблицу калибровки в устройство
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void вУстройсвоToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (currentState.SelectedCalibrationTable == null)
            {
                MessageBox.Show(this, "Не загруженна конфигурация калибровочных параметров",
                    "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            if (currentState.SelectedCalibrationTable.CalibrationTable == null)
            {
                MessageBox.Show(this, "Не загруженна таблица калибровки",
                    "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

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

                    blocked = false;
                    packetSyncMutex.ReleaseMutex();
                }
                else
                {
                    MessageBox.Show(this, "Не удается сохрать таблицу калибровки" + Constants.vbCrLf +
                        "Причина: очень энтенсивный обмен данными", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }

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

                saver.ShowDialog(this);

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

                    blocked = false;
                    packetSyncMutex.ReleaseMutex();
                }
                else
                {
                    MessageBox.Show(this, "Не удается сохрать таблицу калибровки" + Constants.vbCrLf +
                        "Причина: очень энтенсивный обмен данными", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }

            }
            finally
            {
                if (blocked) packetSyncMutex.ReleaseMutex();

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