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) { ; } } } } }