Commit d0d4b8d9 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

added reading of REF spectrum

parent 0ca19f36
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -8,5 +8,7 @@

        public static readonly string RAW_SPECTRUM_FILE = "rawspectrumfile";
        public static readonly string RAW_SPECTRUM_FILE_TOKEN = "rawspectrumfiletoken";
        public static readonly string REF_SPECTRUM_FILE = "refspectrumfile";
        public static readonly string REF_SPECTRUM_FILE_TOKEN = "refspectrumfiletoken";
    }
}
+8 −0
Original line number Diff line number Diff line
@@ -10,6 +10,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Constants
            Txt
        }

        public enum FileType
        {
            [Description("Raw")]
            Raw,
            [Description("Ref")]
            Ref
        }

        public enum Status
        {
            None,
+36 −5
Original line number Diff line number Diff line
@@ -14,6 +14,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models
        }

        #region properties
        #region ref spectrum
        private string refSpectrumFilepath;
        public string RefSpectrumFilepath
        {
            get { return refSpectrumFilepath; }
            set { SetProperty(ref refSpectrumFilepath, value); }
        }

        private string refSpectrumReadingErrorMessage;
        public string RefSpectrumReadingErrorMessage
        {
            get { return refSpectrumReadingErrorMessage; }
            set { SetProperty(ref refSpectrumReadingErrorMessage, value); }
        }

        private Status refSpectrumReadingStatus;
        public Status RefSpectrumReadingStatus
        {
            get { return refSpectrumReadingStatus; }
            set { SetProperty(ref refSpectrumReadingStatus, value); }
        }
        #endregion

        #region raw spectrum
        private Status rawSpectrumReadingStatus;
        public Status RawSpectrumReadingStatus
        {
@@ -34,6 +58,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models
            get { return rawSpectrumReadingErrorMessage; }
            set { SetProperty(ref rawSpectrumReadingErrorMessage, value); }
        }
        #endregion

        private SpectrumChartOptionsModel spectrumChartOptions;
        public SpectrumChartOptionsModel SpectrumChartOptions
@@ -42,19 +67,25 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models
            set { SetProperty(ref spectrumChartOptions, value); }
        }

        public SpectrumModel Spectrum { get; set; }
        public SpectrumModel RawSpectrum { get; set; }

        public SpectrumModel RefSpectrum { get; set; }

        public SpectrumSummaryModel SpectrumSummary { get; set; }
        public SpectrumSummaryModel RawSpectrumSummary { get; set; }

        public SpectrumSummaryModel RefSpectrumSummary { get; set; }
        #endregion

        #region methods
        private void init()
        {
            SpectrumSummary = new SpectrumSummaryModel();

            RawSpectrumSummary = new SpectrumSummaryModel();
            RawSpectrumFilepath = "RawSpectrumFileNotSelectedMessage".GetText();

            RawSpectrumReadingStatus = Status.None;

            RefSpectrumSummary = new SpectrumSummaryModel();
            RefSpectrumFilepath = "RefSpectrumFileNotSelectedMessage".GetText();
            RefSpectrumReadingStatus = Status.None;
        }
        #endregion
    }
+25 −4
Original line number Diff line number Diff line
@@ -180,10 +180,10 @@
    <value>Lower spectrum lines num than expected</value>
  </data>
  <data name="RawSpectrumFileNoContentMessage" xml:space="preserve">
    <value>No content found in selected file!</value>
    <value>No content found in RAW spectrum file!</value>
  </data>
  <data name="RawSpectrumFileNoSpectrumMessage" xml:space="preserve">
    <value>No spectrum found in selected file!</value>
    <value>No spectrum found in RAW spectrum file!</value>
  </data>
  <data name="RawSpectrumFileNotFoundMessage" xml:space="preserve">
    <value>Selected RAW spectrum file NOT FOUND!</value>
@@ -197,8 +197,8 @@
  <data name="RawSpectrumFileReadingErrorMessage" xml:space="preserve">
    <value>An error occurred while trying ro read selected file, please check its content</value>
  </data>
  <data name="SpectrumSummaryLabel.Text" xml:space="preserve">
    <value>Spectrum summary</value>
  <data name="RawSpectrumSummaryLabel.Text" xml:space="preserve">
    <value>RAW Spectrum summary</value>
  </data>
  <data name="SpectrumSummaryLinesNumText" xml:space="preserve">
    <value>Lines num: rv_1</value>
@@ -212,6 +212,9 @@
  <data name="ChartTooltipLabel" xml:space="preserve">
    <value>x,y: rv_1 rv_mu, rv_2</value>
  </data>
  <data name="RefSpectrumFileLabel.Text" xml:space="preserve">
    <value>Select REFERENCE spectrum file</value>
  </data>
  <data name="SpectrumMajorLinesVisibilitySelectionLabel.Text" xml:space="preserve">
    <value>Major lines visibility:</value>
  </data>
@@ -233,4 +236,22 @@
  <data name="SpectrumZoomModeSelectionLabel.Text" xml:space="preserve">
    <value>Zoom mode:</value>
  </data>
  <data name="RefSpectrumFileNoContentMessage" xml:space="preserve">
    <value>No content found in REF spectrum file!</value>
  </data>
  <data name="RefSpectrumFileNoSpectrumMessage" xml:space="preserve">
    <value>No spectrum found in REF spectrum file!</value>
  </data>
  <data name="RefSpectrumFileNotFoundMessage" xml:space="preserve">
    <value>Selected REF spectrum file NOT FOUND!</value>
  </data>
  <data name="RefSpectrumFileNotSelectedMessage" xml:space="preserve">
    <value>No REF spectrum file selected</value>
  </data>
  <data name="RefSpectrumFileOkMessage" xml:space="preserve">
    <value>Selected REF spectrum file successfully parsed</value>
  </data>
  <data name="RefSpectrumFileReadingErrorMessage" xml:space="preserve">
    <value>An error occurred while trying ro read REF spectrum file, please check its content</value>
  </data>
</root>
 No newline at end of file
+130 −37
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels

        #endregion

        private async Task tryReadingRawSpectrumFileAsync()
        private async Task tryReadingSpectrumFileAsync(FileType fileType)
        {
            SpectrumModel spectrum = null;
            string filename = string.Empty;
@@ -58,8 +58,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                {
                    UpdateUIHelper.UpdateUIAsync(() =>
                    {
                        switch (fileType)
                        {
                            case FileType.Raw:
                                WorkingItemsModel.RawSpectrumReadingStatus = Status.Error;
                                WorkingItemsModel.RawSpectrumReadingErrorMessage = "RawSpectrumFileNotFoundMessage".GetText();
                                break;
                            case FileType.Ref:
                                WorkingItemsModel.RefSpectrumReadingStatus = Status.Error;
                                WorkingItemsModel.RefSpectrumReadingErrorMessage = "RefSpectrumFileNotFoundMessage".GetText();
                                break;
                            default:
                                break;
                        }
                    });
                    return;
                }
@@ -72,10 +83,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                /* ...and manage lines... */
                if (lines?.Count > 0)
                {
                    spectrum = new SpectrumModel()
                    {
                        
                    };
                    spectrum = new SpectrumModel();

                    int linesNum = lines.Count;

@@ -101,8 +109,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                        {
                            UpdateUIHelper.UpdateUIAsync(() =>
                            {
                                switch (fileType)
                                {
                                    case FileType.Raw:
                                        WorkingItemsModel.RawSpectrumReadingStatus = Status.Error;
                                        WorkingItemsModel.RawSpectrumReadingErrorMessage = "RawSpectrumFileReadingErrorMessage".GetText();
                                        break;
                                    case FileType.Ref:
                                        WorkingItemsModel.RefSpectrumReadingStatus = Status.Error;
                                        WorkingItemsModel.RefSpectrumReadingErrorMessage = "RefSpectrumFileReadingErrorMessage".GetText();
                                        break;
                                    default:
                                        break;
                                }
                            });
                        }

@@ -113,8 +132,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                    {
                        UpdateUIHelper.UpdateUIAsync(() =>
                        {
                            switch (fileType)
                            {
                                case FileType.Raw:
                                    WorkingItemsModel.RawSpectrumReadingStatus = Status.Error;
                                    WorkingItemsModel.RawSpectrumReadingErrorMessage = "RawSpectrumFileNoSpectrumMessage".GetText();
                                    break;
                                case FileType.Ref:
                                    WorkingItemsModel.RefSpectrumReadingStatus = Status.Error;
                                    WorkingItemsModel.RefSpectrumReadingErrorMessage = "RefSpectrumFileNoSpectrumMessage".GetText();
                                    break;
                                default:
                                    break;
                            }
                        });
                        return;
                    }
@@ -125,8 +155,20 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                        /* if retrieved lines num if lower than expected, than warn about possible issue in file content */
                        UpdateUIHelper.UpdateUIAsync(() =>
                        {
                            switch (fileType)
                            {
                                case FileType.Raw:
                                    WorkingItemsModel.RawSpectrumReadingStatus = Status.Warning;
                                    WorkingItemsModel.RawSpectrumReadingErrorMessage = "RawSpectrumFileMissingSpectrumLinesMessage".GetText();
                                    break;
                                case FileType.Ref:
                                    WorkingItemsModel.RefSpectrumReadingStatus = Status.Warning;
                                    WorkingItemsModel.RefSpectrumReadingErrorMessage = "RefSpectrumFileMissingSpectrumLinesMessage".GetText();
                                    break;
                                default:
                                    break;
                            }

                        });
                    }
                    else
@@ -134,8 +176,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                        /* ok! spectrum is ready */
                        UpdateUIHelper.UpdateUIAsync(() =>
                        {
                            switch (fileType)
                            {
                                case FileType.Raw:
                                    WorkingItemsModel.RawSpectrumReadingStatus = Status.Ok;
                                    WorkingItemsModel.RawSpectrumReadingErrorMessage = "RawSpectrumFileOkMessage".GetText();
                                    break;
                                case FileType.Ref:
                                    WorkingItemsModel.RefSpectrumReadingStatus = Status.Ok;
                                    WorkingItemsModel.RefSpectrumReadingErrorMessage = "RefSpectrumFileOkMessage".GetText();
                                    break;
                                default:
                                    break;
                            }
                        });
                    }

@@ -146,36 +199,59 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                {
                    UpdateUIHelper.UpdateUIAsync(() =>
                    {
                        switch (fileType)
                        {
                            case FileType.Raw:
                                WorkingItemsModel.RawSpectrumReadingStatus = Status.Error;
                                WorkingItemsModel.RawSpectrumReadingErrorMessage = "RawSpectrumFileNoContentMessage".GetText();
                                break;
                            case FileType.Ref:
                                WorkingItemsModel.RefSpectrumReadingStatus = Status.Error;
                                WorkingItemsModel.RefSpectrumReadingErrorMessage = "RefSpectrumFileNoContentMessage".GetText();
                                break;
                            default:
                                break;
                        }
                    });
                }
            });

            if (spectrum != null)
            {
                WorkingItemsModel.Spectrum = spectrum;
                WorkingItemsModel.SpectrumSummary.init(spectrum);
                switch (fileType)
                {
                    case FileType.Raw:
                        WorkingItemsModel.RawSpectrum = spectrum;
                        WorkingItemsModel.RawSpectrumSummary.init(spectrum);

                        WorkingItemsModel.SpectrumChartOptions = new SpectrumChartOptionsModel(spectrum)
                        {
                            Filename = filename,
                            YAxisTitle = "SpectrumYAxisTitle".GetText()
                        };
                        break;
                    case FileType.Ref:
                        WorkingItemsModel.RefSpectrum = spectrum;
                        WorkingItemsModel.RefSpectrumSummary.init(spectrum);
                        break;
                }
                
            }
        }

        private new async Task selectFileAsync(List<FileExt> fileExts)
        private async Task selectFileAsync(FileType fileType, List<FileExt> fileExts)
        {
            /* reset spectrum summary when opening a new file */
            WorkingItemsModel.SpectrumSummary.reset();
            WorkingItemsModel.RawSpectrumSummary.reset();

            /* select file */
            StorageFile file = await base.selectFileAsync(fileExts);

            if (file != null)
            {
                //logHelper.addLogInfoItemOnlyLog($"MReqFilepath: {file.Path}");
                switch (fileType)
                {
                    case FileType.Raw:
                        WorkingItemsModel.RawSpectrumFilepath = file.Path;
                        /* remember access to file */
                        settingsHelper.save(Constants.Constants.RAW_SPECTRUM_FILE, file.Path);
@@ -183,13 +259,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.ViewModels
                        storageItemsAccessHelper.save(Constants.Constants.RAW_SPECTRUM_FILE_TOKEN, file);

                        /* try reading the file to make spectrum available */
                await tryReadingRawSpectrumFileAsync();
                        await tryReadingSpectrumFileAsync(fileType);
                        break;
                    case FileType.Ref:
                        WorkingItemsModel.RefSpectrumFilepath = file.Path;
                        /* remember access to file */
                        settingsHelper.save(Constants.Constants.REF_SPECTRUM_FILE, file.Path);
                        /* remember access to file */
                        storageItemsAccessHelper.save(Constants.Constants.REF_SPECTRUM_FILE_TOKEN, file);

                        /* try reading the file to make spectrum available */
                        await tryReadingSpectrumFileAsync(fileType);
                        break;
                    default:
                        break;
                }
            }
        }

        #region commands
        private RelayCommand commandSelectRawSpectrumFile;
        public RelayCommand CommandSelectRawSpectrumFile => commandSelectRawSpectrumFile ?? (commandSelectRawSpectrumFile = new RelayCommand(() => selectFileAsync(new List<FileExt>(new[] { FileExt.Txt }))));
        public RelayCommand CommandSelectRawSpectrumFile => commandSelectRawSpectrumFile ?? (commandSelectRawSpectrumFile = new RelayCommand(() => selectFileAsync(FileType.Raw, new List<FileExt>(new[] { FileExt.Txt }))));

        private RelayCommand commandSelectRefSpectrumFile;
        public RelayCommand CommandSelectRefSpectrumFile => commandSelectRefSpectrumFile ?? (commandSelectRefSpectrumFile = new RelayCommand(() => selectFileAsync(FileType.Ref, new List<FileExt>(new[] { FileExt.Txt }))));
        #endregion
    }
}
Loading