Example #1
0
 public void SelectLocalRecord(MeasurementFileFormat file)
 {
     IsSelectedFileLocal  = true;
     SelectedGateway      = null;
     SelectedKellerDevice = null;
     SelectRecord(file);
 }
Example #2
0
 public void ExportExcel(MeasurementFileFormat file, string filePath)
 {
     using (var workbook = new XLWorkbook())
     {
         var worksheet = workbook.Worksheets.Add("MeasurementData");
         var table     = CreateTable(file);
         for (int i = 0; i < table.GetLength(0); i++)
         {
             for (int j = 0; j < table.GetLength(1); j++)
             {
                 worksheet.Cell(i + 1, j + 1).Value = table[i, j];
             }
         }
         workbook.SaveAs(filePath);
     }
 }
Example #3
0
 public void ExportKolibriFormat(MeasurementFileFormat file, string filePath)
 {
     try
     {
         var output = JsonConvert.SerializeObject(file);
         File.WriteAllText(filePath, output);
     }
     catch (DirectoryNotFoundException e)
     {
         throw new DirectoryNotFoundException("Export directory not found.", e);
     }
     catch (UnauthorizedAccessException e)
     {
         throw new UnauthorizedAccessException("Permission denied for export directory", e);
     }
 }
Example #4
0
        private MeasurementFileFormat GetObjectFromFile(string filePath)
        {
            var fileFormat = new MeasurementFileFormat();

            try
            {
                var content = File.ReadAllText(filePath);
                fileFormat = JsonConvert.DeserializeObject <MeasurementFileFormat>(content);
            }
            catch (Exception e)
            {
                Logger.Warn(e, "Failed to read file with measurements");
            }

            return(fileFormat);
        }
Example #5
0
        public void WriteFileCombinedWith(MeasurementFileFormat file, List <MeasurementFileFormatHeader> measurementsToCombine)
        {
            foreach (var measurement in measurementsToCombine)
            {
                if (measurement.UniqueSerialNumber != file.Header.UniqueSerialNumber ||
                    file.Header?.RemoteTransmissionUnitInfo?.ConnectionTypeId != measurement.RemoteTransmissionUnitInfo?.ConnectionTypeId)
                {
                    continue;
                }
                file.Body.AddRange(ReadFileFormat(measurement.RecordId).Body);
                RemoveFileFormat(measurement.RecordId);
            }

            file.Body = file.Body.GroupBy(x => x.Time).Select(x => x.First()).OrderBy(x => x.Time).ToList();
            file.Header.FirstMeasurementUTC = file.Body.FirstOrDefault()?.Time ?? DateTime.MinValue;
            file.Header.FirstMeasurementUTC = file.Body.LastOrDefault()?.Time ?? DateTime.MaxValue;

            WriteFileFormat(file);
        }
Example #6
0
        public void ExportCsv(MeasurementFileFormat file, string filePath)
        {
            var stringBuilder = new StringBuilder();
            var table         = CreateTable(file);

            for (var i = 0; i < table.GetLength(0); i++)
            {
                stringBuilder.Append(table[i, 0]);

                for (var j = 1; j < table.GetLength(1); j++)
                {
                    stringBuilder.Append($",{table[i,j]}");
                }

                stringBuilder.AppendLine();
            }

            using (var streamWriter = new StreamWriter(filePath))
            {
                streamWriter.WriteLine(stringBuilder.ToString());
            }
        }
        public static List <OxyPlotSeries> GenerateOxyPlotSeries(MeasurementFileFormat file)
        {
            var series = new List <OxyPlotSeries>();

            var counter = 0;

            foreach (var measurementDefinition in file.Header.MeasurementDefinitionsInBody)
            {
                series.Add(new OxyPlotSeries
                           (
                               ChannelInfo.GetMeasurementDefinitionName(measurementDefinition),
                               ChannelInfo.GetUnitType(measurementDefinition),
                               file.Body.Select(x => new DataPoint(DateTimeAxis.ToDouble(x.Time), x.Values[counter].HasValue ? x.Values[counter].Value : 0)).ToList()

                           ));

                counter++;
            }


            return(series);
        }
Example #8
0
        private static object[,] CreateTable(MeasurementFileFormat file)
        {
            var channelAmount     = file.Header.MeasurementDefinitionsInBody.Length;
            var measurementAmount = file.Body.Count;
            var dataTable         = new object[measurementAmount + 1, channelAmount + 1];

            for (var i = 0; i < channelAmount; i++)
            {
                dataTable[0, i + 1] = ChannelInfo.GetMeasurementDefinitionName(file.Header.MeasurementDefinitionsInBody[i]);
            }
            for (var i = 0; i < measurementAmount; i++)
            {
                dataTable[i + 1, 0] = file.Body[i].Time;
            }

            for (var i = 1; i < measurementAmount; i++)
            {
                for (var j = 1; j < channelAmount; j++)
                {
                    dataTable[i, j] = file.Body[i].Values[j];
                }
            }
            return(dataTable);
        }
Example #9
0
 private string FileFormatToJson(MeasurementFileFormat fileFormat)
 {
     return(JsonConvert.SerializeObject(fileFormat));
 }
Example #10
0
        public void WriteFileFormat(MeasurementFileFormat file)
        {
            var json = FileFormatToJson(file);

            WriteJsonToFile(Path.Combine(DefaultSavingPath, $"KIWIDesktop_{file.Header.RecordId}.json"), json);
        }
Example #11
0
 private void SelectRecord(MeasurementFileFormat file)
 {
     SelectedFile = file;
     SelectedRecordChanged?.Invoke(this, null);
 }