Beispiel #1
0
        private ConfigurationReadResult ReadBinaryConfiguration([NotNull] Func <BackgroundWorker, byte[]> configurationProvider, bool useWorker = true)
        {
            if (configurationProvider == null)
            {
                throw new ArgumentNullException("configurationProvider");
            }

            try
            {
                var data = configurationProvider(useWorker ? m_worker : null);
                if (data == null)
                {
                    return(new ConfigurationReadResult(null, ReadResult.UnableToRead));
                }

                var info = BinaryStructure.ReadBinary <ArcticFoxConfiguration.DeviceInfo>(data);
                if (info.SettingsVersion < SupportedSettingsVersion || info.FirmwareBuild < MinimumSupportedBuildNumber)
                {
                    return(new ConfigurationReadResult(null, ReadResult.OutdatedFirmware));
                }
                if (info.SettingsVersion > SupportedSettingsVersion)
                {
                    return(new ConfigurationReadResult(null, ReadResult.OutdatedToolbox));
                }

                var configuration = BinaryStructure.ReadBinary <ArcticFoxConfiguration>(data);
                return(new ConfigurationReadResult(configuration, ReadResult.Success));
            }
            catch (TimeoutException)
            {
                return(new ConfigurationReadResult(null, ReadResult.UnableToRead));
            }
        }
Beispiel #2
0
		private byte[] PrepairConfiguration(byte[] source, ArcticFoxConfiguration existedConfiguration = null)
		{
			var result = BinaryStructure.ReadBinary<ArcticFoxConfiguration>(m_encryption.Decode(source));
			if (existedConfiguration == null)
			{
				SetSharedDeviceInfo(result.Info);
			}
			else
			{
				result.Info = existedConfiguration.Info;
			}
			return BinaryStructure.WriteBinary(result);
		}
        private void MonitoringProc()
        {
            while (true)
            {
                if (m_stopRequested)
                {
                    return;
                }
                if (!m_isChartPaused)
                {
                    byte[] bytes;
                    try
                    {
                        bytes = HidConnector.Instance.ReadMonitoringData();
                    }
                    catch (Exception)
                    {
                        break;
                    }

                    var data = BinaryStructure.ReadBinary <MonitoringData>(bytes);
                    var kvp  = CreateMonitoringDataCollection(data);

                    UpdateUI(() =>
                    {
                        try
                        {
                            m_isChartUpdating = true;
                            UpdateSeries(kvp);
                        }
                        finally
                        {
                            m_isChartUpdating = false;
                        }
                    });
                }
                Thread.Sleep(RequestDataIntervalInMs);
            }

            if (EnsureConnection())
            {
                MonitoringProc();
            }
        }
Beispiel #4
0
        private void OpenConfigurationFile(ArcticFoxConfiguration existedConfiguration)
        {
            string fileName;

            using (var op = new OpenFileDialog {
                Filter = FileFilters.ArcticFoxConfigFilter
            })
            {
                if (op.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                fileName = op.FileName;
            }

            try
            {
                var existedInfoBlock = existedConfiguration != null?existedConfiguration.Info.Copy() : null;

                var result = existedConfiguration ?? BinaryStructure.ReadBinary <ArcticFoxConfiguration>(m_encryption.Decode(Resources.new_configuration));
                var serializableConfiguration = Serializer.Read <SerializableConfiguration>(new MemoryStream(m_encryption.Decode(File.ReadAllBytes(fileName))));
                if (serializableConfiguration == null)
                {
                    InfoBox.Show("Most likely you are trying to open an obsolete configuration file. This operation is not supported.");
                    return;
                }
                BinaryStructure.ReadFromDictionary(result, serializableConfiguration.GetDictionary());
                if (existedInfoBlock != null)
                {
                    result.Info = existedInfoBlock;
                }
                else
                {
                    SetSharedDeviceInfo(result.Info);
                }
                OpenWorkspace(result);
            }
            catch (Exception ex)
            {
                Trace.Info(ex, "An error occurred during reading saved configuration file.");
                InfoBox.Show("Most likely you are trying to open an obsolete configuration file. This operation is not supported.");
            }
        }