using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Forms;
using System.Threading;
namespace M423project
{
///
/// 日志记录类型
///
public enum LogType { Err, Inf, Exc}
///
/// 检测作业类型
///
public enum DetectionType
{
Normal = 0, //正常測試
Repeat = 1, //重複性測試
Offline, //離線測試
LastProduct,//最後一盤料測試
Manual, //手動測試
BIAS //BIAS
}
public enum DetectionOption
{ doProduct,doStandardBlock}
///
/// 公用静态类
///
public static class CommonUtil
{
public const int ProductNoLength = 17;
public static StepContol StepControl;
public static Random random;
///
/// 线程锁对象
///
private static object lockObj = new object();
private static object logObj = new object();
//private static bool uploadDataEnable = true;
//public static bool UploadDataEnable
//{
// get
// {
// lock (lockObj) { return uploadDataEnable; }
// }
// set
// {
// lock (lockObj)
// {
// uploadDataEnable = value;
// }
// }
//}
private static DetectionOption detectionOption = DetectionOption.doProduct;
public static DetectionOption DetectionOption
{
get{return detectionOption;}
set{detectionOption = value;}
}
private static string logFile;
public const double InvalidValue = 999.999;
///
/// 系统状态
///
public static bool IsRunning { get; set; }
///
/// 程序运行目录
///
public static string CurrentDir { get; set; }
public static string FileSaveDir { get; set; }
///
/// 返回当天图象目录 .\日期\Images
///
public static string ImageDir { get { return FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\Image"; } }
public static string ProductNoImageDir { get { return FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\Image\ProductNo"; } }
public static string ProductHeightImageDir { get { return FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\Image\ProductHeight"; } }
public static string ProductSizeImageDir { get { return FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\Image\ProductSize"; } }
public static string ScreenshotsDir { get { return FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\Image\Screenshots"; } }
///
/// 返回当天截图目录 .\日期\Screenshots
///
///
/// 返回当天工作目录 .\日期
///
public static string DayDir { get { return FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd"); } }
public static string DailyReport { get { return @"E:\DailyReport"; } }
///
/// 返回配置文件目录 .\config
///
public static string ConfigDir { get { return CurrentDir + @"\config"; } }
///
/// 返回模板文件目录 .\model
///
public static string ModelDir { get { return CurrentDir + @"\Model"; } }
///
/// 主窗体引用
///
public static MainForm mainForm { get; set; }
public static ManualResetEvent UploadDoneHandle = new ManualResetEvent(true);
public static object UploadDataLock = new object();
public static bool UploadDataEnable = true;
static CommonUtil()
{
CurrentDir = Directory.GetCurrentDirectory();
Directory.CreateDirectory(CurrentDir + @"\config");
Directory.CreateDirectory(CurrentDir + @"\Model");
DriveInfo di = new DriveInfo("E");
if (di.IsReady && di.DriveType == DriveType.Fixed)
{
FileSaveDir = @"E:\DetectFile";
Directory.CreateDirectory(FileSaveDir);
Directory.CreateDirectory(@"E:\DailyReport");
Directory.CreateDirectory(@"E:\CheckReport");
}
else
{
FileSaveDir = CurrentDir;
Directory.CreateDirectory(FileSaveDir + @"\DailyReport");
}
//Directory.CreateDirectory(FileSaveDir + @"\DailyReport");
DateTime D = DateTime.Now;
DateTime EndDay = D.AddDays(7);
while (D <= EndDay)
{
string dayDir = FileSaveDir + @"\" + D.ToString("yyyyMMdd");
Directory.CreateDirectory(dayDir);
Directory.CreateDirectory(dayDir + @"\log");
Directory.CreateDirectory(dayDir + @"\Image");
Directory.CreateDirectory(dayDir + @"\Image\ProductNo");
Directory.CreateDirectory(dayDir + @"\Image\ProductHeight");
Directory.CreateDirectory(dayDir + @"\Image\ProductSize");
Directory.CreateDirectory(dayDir + @"\Image\Screenshots");
Directory.CreateDirectory(dayDir + @"\Image\ProductNo_NG");
Directory.CreateDirectory(dayDir + @"\Image\ProductHeight_NG");
Directory.CreateDirectory(dayDir + @"\Image\ProductSize_NG");
Directory.CreateDirectory(dayDir + @"\Image\Screenshots_NG");
D = D.AddDays(1);
}
StepControl = new StepContol();
random = new Random();
IsRunning = false;
}
///
/// 日志记录
///
///
///
public static void WriteLog(LogType _logType, string _logInfo)
{
MessageHandler.MessageHandlerInstance.NewMessage(_logInfo, true);
/*
lock (logObj)
{
try
{
string dayDir = FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd");
logFile = dayDir + @"\log\" + DateTime.Now.ToString("yyyyMMddHH") + ".log";
using (StreamWriter sw = new StreamWriter(logFile, true))
{
string infoString = string.Format("{0}[{1}] {2}", DateTime.Now.ToString("HH:mm:ss"), _logType.ToString(), _logInfo);
sw.WriteLine(infoString);
mainForm.Invoke(new Action(() => {
mainForm.InfoInspect.AppendText(infoString + "\r\n");
mainForm.InfoInspect.ScrollToCaret();
}));
sw.Close();
}
}
catch (Exception)
{
;
}
}*/
}
///
/// 日志记录
///
///
///
public static void WriteLog(string _logInfo)
{
lock (logObj)
{
try
{
string dayDir = FileSaveDir + @"\" + DateTime.Now.ToString("yyyyMMdd");
logFile = dayDir + @"\log\" + DateTime.Now.ToString("yyyyMMddHH") + ".log";
using (StreamWriter sw = new StreamWriter(logFile, true))
{
string infoString = string.Format("{0} {1}", DateTime.Now.ToString("HH:mm:ss"), _logInfo);
sw.WriteLine(infoString);
sw.Close();
}
}
catch (Exception)
{
;
}
}
}
}
}