コード例 #1
0
        private void OnCorrectChecksumsCompleted(Operation operation, bool success)
        {
            //UI should occur on the UI thread...
            Dispatcher.Invoke((Action)(() =>
            {
                App.PercentOperationComplete = 100.0f;
                App.OperationInProgress = false;

                var correctOperation = operation as Checksum.CorrectChecksumsOperation;

                App.DisplayStatusMessage("Corrected " + correctOperation.NumCorrectedChecksums + " of " + correctOperation.NumChecksums + " checksums.", StatusMessageType.USER);

                if (success)
                {
                    App.DisplayStatusMessage("Checksums updated to correct values.", StatusMessageType.USER);

                    if (FlashMemoryImage.SaveToFile(FileNameToFlash))
                    {
                        App.DisplayStatusMessage("Saved changes to file: " + FileNameToFlash, StatusMessageType.USER);
                    }
                    else
                    {
                        App.DisplayStatusMessage("Failed to save changes to file: " + FileNameToFlash, StatusMessageType.USER);
                    }
                }
                else
                {
                    App.DisplayStatusMessage("Failed to correct checksums.", StatusMessageType.USER);
                }
            }));
        }
コード例 #2
0
        private void LoadFlashFile()
        {
            if (FlashMemoryImage != null)
            {
                FlashMemoryImage.Reset();
            }

            IsFlashFileOK = false;
            string error = null;

            if (FlashMemoryImage == null)
            {
                error = "Internal program error";
            }
            else if (!String.IsNullOrEmpty(FileNameToFlash))
            {
                Properties.Settings.Default.FlashFile = FileNameToFlash;

                try
                {
                    var fileBytes = File.ReadAllBytes(FileNameToFlash);
                    FlashMemoryImage = new MemoryImage(fileBytes, 0);

                    ValidateFileToFlash(FlashMemoryImage, FlashMemoryLayout, out error);
                }
                catch (Exception)
                {
                    error = "Could not read flash file";
                }
            }
            else
            {
                error = "No file selected";
            }

            //force and update without setting the property
            OnPropertyChanged(new PropertyChangedEventArgs("FlashMemoryImage"));

            this["FileNameToFlash"] = error;
            IsFlashFileOK           = (error == null);
        }