public void SelectLocalRecord(MeasurementFileFormat file) { IsSelectedFileLocal = true; SelectedGateway = null; SelectedKellerDevice = null; SelectRecord(file); }
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); } }
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); } }
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); }
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); }
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); }
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); }
private string FileFormatToJson(MeasurementFileFormat fileFormat) { return(JsonConvert.SerializeObject(fileFormat)); }
public void WriteFileFormat(MeasurementFileFormat file) { var json = FileFormatToJson(file); WriteJsonToFile(Path.Combine(DefaultSavingPath, $"KIWIDesktop_{file.Header.RecordId}.json"), json); }
private void SelectRecord(MeasurementFileFormat file) { SelectedFile = file; SelectedRecordChanged?.Invoke(this, null); }