158 lines
4.4 KiB
C#
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
|
|
}
|
|
}
|
|
}
|