using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Drawing;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
using SA_LTT;
|
using System.IO;
|
|
namespace SA_LTT_UI.Screen
|
{
|
public partial class ScreenLog : UserControl
|
{
|
private MainFrame _mainFrame;
|
|
public ScreenLog(MainFrame mainFrame)
|
{
|
InitializeComponent();
|
_mainFrame = mainFrame;
|
lv_Log.MultiSelect = true;
|
}
|
|
private void mc_DateTime_DateChanged(object sender, DateRangeEventArgs e)
|
{
|
dtp_StartDateTime.Value = mc_DateTime.SelectionStart;
|
dtp_EndDateTime.Value = mc_DateTime.SelectionEnd;
|
}
|
|
private void dtp_StartDateTime_ValueChanged(object sender, EventArgs e)
|
{
|
mc_DateTime.SelectionStart = dtp_StartDateTime.Value;
|
}
|
|
private void dtp_EndDateTime_ValueChanged(object sender, EventArgs e)
|
{
|
mc_DateTime.SelectionEnd = dtp_EndDateTime.Value;
|
}
|
|
private void btn_AlarmOccurredLog_Click(object sender, EventArgs e)
|
{
|
lv_Log.Columns.Clear();
|
lv_Log.Items.Clear();
|
|
lv_Log.Columns.Add("Date", 200);
|
lv_Log.Columns.Add("Alarm Code", 400);
|
lv_Log.Columns.Add("Description", 200);
|
lv_Log.Columns.Add("Level", 200);
|
|
List<DateTime> selectedDates = new List<DateTime>();
|
|
DateTime devDateTime = mc_DateTime.SelectionStart;
|
|
while(true)
|
{
|
selectedDates.Add(devDateTime);
|
|
devDateTime = devDateTime.AddDays(1);
|
|
if (devDateTime > mc_DateTime.SelectionEnd)
|
{
|
break;
|
}
|
}
|
|
string[] logs = GetLogsInFile(EquipmentLogManager.s_alarmOccurredLogPath, "AlarmOccurred_", selectedDates);
|
|
foreach (string log in logs)
|
{
|
ListViewItem logDatas = new ListViewItem(log.Split(','));
|
lv_Log.Items.Add(logDatas);
|
}
|
}
|
|
private void btn_AlarmChangedLog_Click(object sender, EventArgs e)
|
{
|
lv_Log.Columns.Clear();
|
lv_Log.Items.Clear();
|
|
lv_Log.Columns.Add("Date", 200);
|
lv_Log.Columns.Add("Alarm Code", 400);
|
lv_Log.Columns.Add("Description", 200);
|
lv_Log.Columns.Add("Level", 200);
|
lv_Log.Columns.Add("Use", 200);
|
|
List<DateTime> selectedDates = new List<DateTime>();
|
|
DateTime devDateTime = mc_DateTime.SelectionStart;
|
|
while (true)
|
{
|
selectedDates.Add(devDateTime);
|
|
devDateTime = devDateTime.AddDays(1);
|
|
if (devDateTime > mc_DateTime.SelectionEnd)
|
{
|
break;
|
}
|
}
|
|
string[] logs = GetLogsInFile(EquipmentLogManager.s_alarmChangedLogPath, "AlarmChanged_", selectedDates);
|
|
foreach (string log in logs)
|
{
|
ListViewItem logDatas = new ListViewItem(log.Split(','));
|
lv_Log.Items.Add(logDatas);
|
}
|
}
|
|
/// <summary>
|
/// 로그 가져오기.
|
/// ex) D:\\Log\\AlarmOccurred\\2022\\07\\AlarmOccurred_28.log
|
/// rootPath : D:\\Log\\AlarmOccurred\\
|
/// filePattern : AlarmOccurred_
|
/// extension : .log
|
/// </summary>
|
/// <param name="rootPath">Root 파일 경로.</param>
|
/// <param name="filePattern">파일 패턴.</param>
|
/// <param name="selectedDateTime">log 가져올 날짜</param>
|
/// <param name="extension">파일 확장자 (기본 .log)</param>
|
/// <returns></returns>
|
private string[] GetLogsInFile(string rootPath, string filePattern, List<DateTime> selectedDateTime, string extension = ".log")
|
{
|
List<string> logs = new List<string>();
|
logs.Clear();
|
|
foreach (DateTime logDate in selectedDateTime)
|
{
|
string path = rootPath + $@"{logDate.Year}\{logDate.Month:00}\{filePattern}{logDate.Day:00}{extension}";
|
|
if (File.Exists(path) == false)
|
continue;
|
|
//파일 열려있어도 읽을 수 있도록 제작.
|
using (FileStream fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite))
|
{
|
using (StreamReader sr = new StreamReader(fs))
|
{
|
while (true)
|
{
|
string logdata = sr.ReadLine();
|
|
if (logdata == null)
|
{
|
break;
|
}
|
else
|
{
|
logs.Add(logdata);
|
}
|
}
|
sr.Close();
|
}
|
|
fs.Close();
|
}
|
}
|
|
return logs.ToArray();
|
}
|
|
private void btn_EnergyDropCheckLog_Click(object sender, EventArgs e)
|
{
|
lv_Log.Columns.Clear();
|
lv_Log.Items.Clear();
|
|
lv_Log.Columns.Add("Date", 200);
|
lv_Log.Columns.Add("Description", 800);
|
|
List<DateTime> selectedDates = new List<DateTime>();
|
|
DateTime devDateTime = mc_DateTime.SelectionStart;
|
|
while (true)
|
{
|
selectedDates.Add(devDateTime);
|
|
devDateTime = devDateTime.AddDays(1);
|
|
if (devDateTime > mc_DateTime.SelectionEnd)
|
{
|
break;
|
}
|
}
|
|
string[] logs = GetLogsInFile(EquipmentLogManager.s_energyDropCheckLogPath, "EnergyDropCheck_", selectedDates);
|
|
foreach (string log in logs)
|
{
|
ListViewItem logDatas = new ListViewItem(log.Split(','));
|
lv_Log.Items.Add(logDatas);
|
}
|
}
|
|
private void btn_AttenuatorCalLog_Click(object sender, EventArgs e)
|
{
|
lv_Log.Columns.Clear();
|
lv_Log.Items.Clear();
|
|
lv_Log.Columns.Add("Date", 200);
|
lv_Log.Columns.Add("Description", 800);
|
|
List<DateTime> selectedDates = new List<DateTime>();
|
|
DateTime devDateTime = mc_DateTime.SelectionStart;
|
|
while (true)
|
{
|
selectedDates.Add(devDateTime);
|
|
devDateTime = devDateTime.AddDays(1);
|
|
if (devDateTime > mc_DateTime.SelectionEnd)
|
{
|
break;
|
}
|
}
|
|
string[] logs = GetLogsInFile(EquipmentLogManager.s_attenuatorCalLogPath, "AttenuatorCal_", selectedDates);
|
|
foreach (string log in logs)
|
{
|
ListViewItem logDatas = new ListViewItem(log.Split(','));
|
lv_Log.Items.Add(logDatas);
|
}
|
}
|
|
private void btn_ProcessLog_Click(object sender, EventArgs e)
|
{
|
lv_Log.Columns.Clear();
|
lv_Log.Items.Clear();
|
|
lv_Log.Columns.Add("Date", 200);
|
lv_Log.Columns.Add("Description", 800);
|
|
List<DateTime> selectedDates = new List<DateTime>();
|
|
DateTime devDateTime = mc_DateTime.SelectionStart;
|
|
while (true)
|
{
|
selectedDates.Add(devDateTime);
|
|
devDateTime = devDateTime.AddDays(1);
|
|
if (devDateTime > mc_DateTime.SelectionEnd)
|
{
|
break;
|
}
|
}
|
|
string[] logs = GetLogsInFile(EquipmentLogManager.s_processLogPath, "Process_", selectedDates);
|
|
foreach (string log in logs)
|
{
|
ListViewItem logDatas = new ListViewItem(log.Split(','));
|
lv_Log.Items.Add(logDatas);
|
}
|
}
|
|
private void btn_ButtonLog_Click(object sender, EventArgs e)
|
{
|
lv_Log.Columns.Clear();
|
lv_Log.Items.Clear();
|
|
lv_Log.Columns.Add("Date", 200);
|
lv_Log.Columns.Add("Event", 800);
|
|
List<DateTime> selectedDates = new List<DateTime>();
|
|
DateTime devDateTime = mc_DateTime.SelectionStart;
|
|
while (true)
|
{
|
selectedDates.Add(devDateTime);
|
|
devDateTime = devDateTime.AddDays(1);
|
|
if (devDateTime > mc_DateTime.SelectionEnd)
|
{
|
break;
|
}
|
}
|
|
string[] logs = GetLogsInFile(EquipmentLogManager.s_buttonLogPath, "Button_", selectedDates);
|
|
foreach (string log in logs)
|
{
|
ListViewItem logDatas = new ListViewItem(log.Split(','));
|
lv_Log.Items.Add(logDatas);
|
}
|
}
|
}
|
}
|