common/Ui/GenesisToolBox/FrmRawDataArchive.cs
2026-04-23 17:50:07 +02:00

158 lines
4.4 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
namespace Xylem.Common.Ui.GenesisToolBox
{
public partial class FrmRawDataArchive : Form
{
public FrmRawDataArchive()
{
InitializeComponent();
}
private void button1_Click(Object sender, EventArgs e)
{
var folderDia = new FolderBrowserDialog();
var rest = folderDia.ShowDialog();
//Pruef2000
if (rest == DialogResult.OK)
{
folderDia.SelectedPath = "Z:\\LAA-D-70MYB62\\2021-03-01\\Pruef2000_ROLADN HOTFIX";
//folderDia.SelectedPath;
var dir = new System.IO.DirectoryInfo(folderDia.SelectedPath);
CheckDir(dir);
foreach (var item in dir.GetDirectories())
{
CheckDir(item);
}
}
}
private void CheckDir(DirectoryInfo directoryInfo)
{
foreach (var item in directoryInfo.GetDirectories())
{
CheckDir(item);
}
CheckFiles(directoryInfo);
}
private void DecodeFile(String Slot, String SerialNumber, String PGNr, String[] Raw, List<BaseLine> Measuremnt)
{
var frist = decodeBaseLine(Raw.First());
var last = decodeBaseLine(Raw.Last());
//Filter Measuremnt
foreach (var item in Raw)
{
decodeRawLine(item);
}
}
//2021-03-01 11:36:49.4967 | Info | Slot:2 - Write register(CheckPresence), record(00)
//2021-03-01 12:30:27.8858 | @f 4FB95B 199F20D6 C043.11:30:27.8958.1
private class BaseLine
{
public DateTime LineDate { get; set; }
public String RawText { get; set; }
public Int32 LineNr { get; set; }
}
private class RawLine : BaseLine
{
}
private RawLine decodeRawLine(String line)
{
return new RawLine() { };
}
private BaseLine decodeBaseLine(String line)
{
var dt = new DateTime();
DateTime.TryParse(line.Substring(0,24), out dt);
return new BaseLine() { LineDate = dt, RawText = line.Substring(25) };
}
private List<BaseLine> decodeBaseLines(String[] line)
{
var ret = new List<BaseLine>();
foreach (var item in line)
{
try
{
ret.Add(decodeBaseLine(item));
}
catch (Exception)
{
throw;
}
}
return ret;
}
private void CheckFiles(DirectoryInfo directoryInfo)
{
var Meassuremnts = directoryInfo.GetFiles("Meter_SlotSlot_*_FlowTest.log", SearchOption.TopDirectoryOnly);
var MeassuremtnDic = new Dictionary<String, List<BaseLine>>();
foreach (var item in Meassuremnts)
{
MeassuremtnDic.Add(item.Name, decodeBaseLines(File.ReadAllLines(item.FullName)));
}
var Raws = directoryInfo.GetFiles("LedRawData_Slot_*", SearchOption.TopDirectoryOnly);
foreach (var item in Raws)
{
if (item.Name.Contains("_PG"))
{
//LedRawData_Slot_1_SN21733269_PG2016068336, Port_COM97, Protocol_Streaming, Type_LED -.log
//Meter_SlotSlot_1_SN21733269_FlowTest.log
var FileInfo = item.Name.Split('_');
var Slot = FileInfo[2];
var SerialNumber = FileInfo[3].Replace("SN", ""); ;
var PGNr = FileInfo[4].Replace(", Port", "").Replace("PG", "");
var RawFullText = File.ReadAllLines(item.FullName);
var MeassurmentText = new List<BaseLine>();
MeassuremtnDic.TryGetValue($"Meter_SlotSlot_{Slot}_SN{SerialNumber}_FlowTest.log", out MeassurmentText);
DecodeFile(Slot, SerialNumber, PGNr, RawFullText, MeassurmentText);
}
}
//LedRawData_Slot_1_SN21733269_PG2016068336, Port_COM97, Protocol_Streaming, Type_LED -.log
//Meter_SlotSlot_1_SN21733269_PG2016068336.log
}
}
}