using MaiMuControl.SysStatusMgr.UserMgr; using Models; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ToolKits.Ini; using ToolKits.mAPI; using ToolKits.PLC; namespace MaiMuAOI.SysCtrl { #region 参数类型 /// /// 图片保存参数 /// [Serializable] public class ImageSaveParam { /// /// 保存路径 /// public string SavePath { get; set; } /// /// 自动保存 /// public bool AutoSave { get; set; } /// /// 自动删除 /// public bool AutoDelete { get; set; } /// /// 自动删除日期 /// public double AutoDeleteDays { get; set; } public ImageSaveParam() { SavePath = "D:\\AllImageSave"; AutoSave = true; AutoDelete = true; AutoDeleteDays = 3; } public ImageSaveParam(string path) { SavePath = path; AutoSave = true; AutoDelete = true; AutoDeleteDays = 3; } } /// /// 镜头对应Z轴高度 /// [Serializable] public class LensAxisZ { public double Z_0_58X { get; set; } //public double Z_0_6X { get; set; } public double Z_1_0X { get; set; } public double Z_1_5X { get; set; } public double Z_2_0X { get; set; } public double Z_2_5X { get; set; } public double Z_3_0X { get; set; } public double Z_3_5X { get; set; } public double Z_4_0X { get; set; } public double Z_4_5X { get; set; } public double Z_5_0X { get; set; } public double Z_5_5X { get; set; } public double Z_6_0X { get; set; } public double Z_6_5X { get; set; } public double Z_7_0X { get; set; } public double Z_7_5X { get; set; } public LensAxisZ() { Z_0_58X = 0; //Z_0_6X = 0; Z_1_0X = 0; Z_1_5X = 0; Z_2_0X = 0; Z_2_5X = 0; Z_3_0X = 0; Z_3_5X = 0; Z_4_0X = 0; Z_4_5X = 0; Z_5_0X = 0; Z_5_5X = 0; Z_6_0X = 0; Z_6_5X = 0; Z_7_0X = 0; Z_7_5X = 0; } } [Serializable] public class SysConfigParams { #region 缺陷图 /// /// 保存所有图片 /// public bool SaveAllImg { get; set; } /// /// 缺陷大图 /// public ImageSaveParam DefectBigImag { get; set; } /// /// 缺陷小图 /// public ImageSaveParam DefectSmallImag { get; set; } /// /// 修复台 缺陷图 /// public ImageSaveParam DefectRepairImag { get; set; } /// /// 对比大图 /// public ImageSaveParam SizeBigImag { get; set; } /// /// 对比未通过 /// public ImageSaveParam SizeNGImag { get; set; } /// /// 修复台 对比图 /// public ImageSaveParam SizeRepairImag { get; set; } #endregion #region 功能 /// /// mark报警暂停 /// public bool OpenMarkErrorStop { get; set; } /// /// 开启蜂鸣器 /// public bool OpenBuzzer { get; set; } /// /// 开启门磁 /// public bool OpenDoor { get; set; } /// /// 开启http日志 /// public bool OpenHttpLog { get; set; } /// /// 开启软件开启自动回原 /// public bool OpenAutoGoHome { get; set; } /// /// 启用缺陷分布功能 /// public bool OpenFlawDistribution { get; set; } /// /// 启用X轴校准 2023-12-20 /// public bool OpenAxisXCalibration { get; set; } #endregion #region 硬件传感器通信 /// /// 光源串口 /// //public LightParams LightCfg { get; set; } public string LightCom { get; set; } /// /// 光源波特率 /// public int LightComBaud { get; set; } /// /// 张力传感器串口 /// public string TensionCom { get; set; } /// /// 张力传感器波特率 /// public int TensionComBaud { get; set; } /// /// 张力偏移值 /// public double Tension_Offset = 0; /// /// 镜头电机串口 /// public string LensMotorCom { get; set; } /// /// 镜头电机波特率 /// public int LensMotorComBaud { get; set; } /// /// 厚度传感器IP /// public string ThicknessIP { get; set; } /// /// 厚度传感器port /// public int ThicknessPort { get; set; } /// /// 测厚安全值 /// public double ThicknessSafeValue { get; set; } #endregion #region IO/电机/相机 /// /// IO驱动名称 /// //public IOParams IOCfg { get; set; } public string IODevName { get; set; } /// /// IO配置文件路径 /// public string IOCfgPath { get; set; } /// /// 电机配置文件路径 /// public string MotionCfgPath { get; set; } /// /// 前部相机名称 /// public string FrontCamName { get; set; } /// /// 前部相机配置文件路径 /// public string FrontCamCfgPath { get; set; } /// /// 后部相机名称 /// public string BackCamName { get; set; } /// /// 后部相机配置文件路径 /// public string BackCamCfgPath { get; set; } #endregion #region 禁用 public bool DisableX1 { get; set; } public bool DisableX2 { get; set; } public bool DisableY { get; set; } public bool DisableZ { get; set; } public bool DisableFrontCam { get; set; } public bool DisableBackCam { get; set; } public bool DisableLight { get; set; } public bool DisableTensor { get; set; } public bool DisableThickness { get; set; } public bool DisableLensMotor { get; set; } #endregion #region 系统 public string ImageProcessPath { get; set; } public string AIModelPath { get; set; } public string HttpServerIP { get; set; } public int HttpServerPort { get; set; } public string LogPath { get; set; } public bool AutoDeleteLog { get; set; } public double AutoDeleteLogData { get; set; } /// /// 调试:主界面显示复位按钮 /// public bool ShowResetBtn { get; set; } /// /// 调试:主界面显示蜂鸣器控制 /// public bool ShowBuzz { get; set; } /// /// 调试:主界面显示门磁报警控制 /// public bool ShowDoorAlm { get; set; } /// /// 后部相机视野X /// public double DefectCamViewX { get; set; } /// /// 后部相机视野Y /// public double DefectCamViewY { get; set; } #endregion #region Http /// /// 开启http上传 /// public bool EnableHttp { get; set; } /// /// 上传Http地址 /// public string HttpUrl { get; set; } /// /// 上传Json模板路径 /// public string HttpTempPath { get; set; } /// /// 返回值Key /// public string HttpReturnKey{ get; set; } /// /// 返回成功value /// public string HttpReturnValue { get; set; } #endregion #region 聚焦 /// /// 聚焦对应Z轴位置 /// public LensAxisZ LensAxisZPos { get; set; } #endregion #region 缺陷分割 //缺陷配置 public Size Defect_CutSize { get; set; } public Size Defect_ReSize { get; set; } public float Defect_Thresholds { get; set; } #endregion #region BarTender /// /// 开启标签打印 /// public bool EnableLabelPrint { get; set; } /// /// 打印机名称 /// public string LabelPrinterName { get; set; } /// /// 打印模板路径 /// public string LabelTempPath { get; set; } /// /// 打印信息 /// public Dictionary LabelData { get; set; } #endregion #region Excel /// /// 开启Excel打印 /// public bool EnableExcelPrint { get; set; } /// /// 打印机名称 /// public string ExcelPrinterName { get; set; } /// /// 打印模板路径 /// public string ExcelTempPath { get; set; } /// /// 打印信息 /// public Dictionary ExcelData { get; set; } #endregion public SysConfigParams() { DefectBigImag = new ImageSaveParam("D:\\AllImageSave\\DefectBigImag"); DefectSmallImag = new ImageSaveParam("D:\\AllImageSave\\DefectSmallImag"); DefectRepairImag = new ImageSaveParam("D:\\AllImageSave\\DefectRepairImag"); SizeBigImag = new ImageSaveParam("D:\\AllImageSave\\SizeBigImag"); SizeNGImag = new ImageSaveParam("D:\\AllImageSave\\SizeNGImag"); SizeRepairImag = new ImageSaveParam("D:\\AllImageSave\\SizeRepairImag"); OpenMarkErrorStop = true; OpenBuzzer = true; OpenDoor = true; OpenHttpLog = false; //LightCfg = new LightParams(); //IOCfg = new IOParams(); IODevName = ""; IOCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\IOCard_default.xml"); ; LightCom = ""; LightComBaud = 9600; LensMotorCom = ""; LensMotorComBaud = 9600; TensionCom = ""; TensionComBaud = 2400; ThicknessIP = "192.168.3.35"; ThicknessPort = 8888; ThicknessSafeValue = 10; FrontCamCfgPath = ""; BackCamCfgPath = ""; MotionCfgPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\Axis_default.cfg"); ; SaveAllImg = false; DisableX1 = false; DisableX2 = false; DisableY = false; DisableZ = false; DisableFrontCam = false; DisableBackCam = false; DisableLight = false; DisableLensMotor = false; DisableTensor = false; DisableThickness = false; ImageProcessPath = ""; AIModelPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles\\onnxFiles"); HttpServerIP = "127.0.0.1"; HttpServerPort = 18082; LogPath = Path.Combine(Directory.GetCurrentDirectory(), "LogFiles"); AutoDeleteLog = false; AutoDeleteLogData = 0; ShowResetBtn = true; ShowBuzz = false; ShowDoorAlm = false; DefectCamViewX = 30; DefectCamViewY = 30; EnableHttp = false; HttpUrl = ""; HttpTempPath = ""; HttpReturnKey = ""; HttpReturnValue = ""; LensAxisZPos = new LensAxisZ(); //缺陷配置 Defect_CutSize = new Size(592, 532); Defect_ReSize = new Size(224, 224); Defect_Thresholds = 0.4f; EnableLabelPrint = false; LabelPrinterName = ""; LabelTempPath = ""; LabelData = new Dictionary(); EnableExcelPrint = false; ExcelPrinterName = ""; ExcelTempPath = ""; ExcelData = new Dictionary(); } } #endregion /// /// 设备参数 /// public class ConfMgr { #region 实例化 /// /// 实例 /// private static ConfMgr _instance; private static readonly object _lock = new object(); public static ConfMgr Instance { get { if (_instance == null) { lock (_lock) { if (_instance == null) { _instance = new ConfMgr(); } } } return _instance; } } #endregion #region 私有字段 private readonly string _rootPath; private readonly string _configFile; private readonly string _projectDir; private readonly string _pointsPath; private readonly string _markPicPath; #endregion private ConfMgr() { _rootPath = Path.Combine(Directory.GetCurrentDirectory(), "ConfigFiles"); _configFile = Path.Combine(_rootPath, "SysParamsConfig.ini"); _devConfigPath = Path.Combine(_rootPath, "DevParamsConfig.ini"); _projectDir = Path.Combine(_rootPath, "Project"); _pointsPath = Path.Combine(_rootPath, "PointsConfig.ini"); _markPicPath = Path.Combine(_rootPath, "MarkPic"); DBConStr = "server = localhost; Database = ProductionDB; Uid = root; Pwd = " + ConteolUserDB.GetSqlDBCode() + "; AllowLoadLocalInfile = true;"; } #region 公开字段 //DB //有些服务器防火墙有问题需要加上 min pool size=1 避免认为是恶意请求 //如果用到bulkCopy需要加: AllowLoadLocalInfile=true //public static string dbMysqlCon = "server=localhost;Database=ProductionDB;Uid=root;Pwd=123456;"; public string DBConStr = "server=localhost;Database=ProductionDB;Uid=root;Pwd=123456; AllowLoadLocalInfile=true"; /// /// 系统配置参数 /// public SysConfigParams SysConfigParams { get; set; } private string _devConfigPath; /// /// 获取驱动配制文件路径 /// public string DevConfigPath { get { return _devConfigPath; } } public string ProjectDir { get { return _projectDir; } } public string MarkPicPath { get { return _markPicPath; } } /// /// 上料位X1 /// public double LoadPoint_X1 { get; set; } /// /// 上料位X2 /// public double LoadPoint_X2 { get; set; } /// /// 上料位Y /// public double LoadPoint_Y { get; set; } /// /// 上料位Z /// public double LoadPoint_Z { get; set; } /// /// 测厚气缸到位等待时间 /// public int HeightDoWait { get; set; } /// /// 加紧气缸到位等待时间 /// public int ProductDoWait { get; set; } #endregion #region 公开文件操作 #region 点位配置 public void WritePointsAndTime(double x1, double x2, double y, double z, int ht, int pt) { //XmlHelper.Serialize(_configFile, sysConfParams); IniHelper iniHelper = new IniHelper(_pointsPath); iniHelper.WriteDouble("LoadPoint", "X1", x1); iniHelper.WriteDouble("LoadPoint", "X2", x2); iniHelper.WriteDouble("LoadPoint", "Y", y); iniHelper.WriteDouble("LoadPoint", "Z", z); iniHelper.WriteInteger("WaitTime", "HeightDoWait", ht); iniHelper.WriteInteger("WaitTime", "ProductDoWait", pt); LoadPoint_X1 = x1; LoadPoint_X2 = x2; LoadPoint_Y = y; LoadPoint_Z = z; HeightDoWait = ht; ProductDoWait = pt; } public void ReadPointsAndTime() { IniHelper iniHelper = new IniHelper(_pointsPath); double dValue = 0; int iValue = 0; iniHelper.ReadDouble("LoadPoint", "X1", out dValue); LoadPoint_X1 = dValue; iniHelper.ReadDouble("LoadPoint", "X2", out dValue); LoadPoint_X2 = dValue; iniHelper.ReadDouble("LoadPoint", "Y", out dValue); LoadPoint_Y = dValue; iniHelper.ReadDouble("LoadPoint", "Z", out dValue); LoadPoint_Z = dValue; iniHelper.ReadInteger("WaitTime", "HeightDoWait", out iValue); HeightDoWait = iValue; iniHelper.ReadInteger("WaitTime", "ProductDoWait", out iValue); ProductDoWait = iValue; } #endregion #region 系统配置参数 /// /// 写入ini /// /// public void WriteSysConfParams(SysConfigParams SysParams) { //XmlHelper.Serialize(_configFile, sysConfParams); IniHelper iniHelper = new IniHelper(_configFile); iniHelper.WriteBool("SaveAllImg", "SaveAllImg", SysParams.SaveAllImg); iniHelper.WriteString("DefectBigImag", "SavePath", SysParams.DefectBigImag.SavePath); iniHelper.WriteBool("DefectBigImag", "AutoSave", SysParams.DefectBigImag.AutoSave); iniHelper.WriteBool("DefectBigImag", "AutoDelete", SysParams.DefectBigImag.AutoDelete); iniHelper.WriteDouble("DefectBigImag", "AutoDeleteDays", SysParams.DefectBigImag.AutoDeleteDays); iniHelper.WriteString("DefectSmallImag", "SavePath", SysParams.DefectSmallImag.SavePath); iniHelper.WriteBool("DefectSmallImag", "AutoSave", SysParams.DefectSmallImag.AutoSave); iniHelper.WriteBool("DefectSmallImag", "AutoDelete", SysParams.DefectSmallImag.AutoDelete); iniHelper.WriteDouble("DefectSmallImag", "AutoDeleteDays", SysParams.DefectSmallImag.AutoDeleteDays); iniHelper.WriteString("DefectRepairImag", "SavePath", SysParams.DefectRepairImag.SavePath); iniHelper.WriteBool("DefectRepairImag", "AutoSave", SysParams.DefectRepairImag.AutoSave); iniHelper.WriteBool("DefectRepairImag", "AutoDelete", SysParams.DefectRepairImag.AutoDelete); iniHelper.WriteDouble("DefectRepairImag", "AutoDeleteDays", SysParams.DefectRepairImag.AutoDeleteDays); iniHelper.WriteString("SizeBigImag", "SavePath", SysParams.SizeBigImag.SavePath); iniHelper.WriteBool("SizeBigImag", "AutoSave", SysParams.SizeBigImag.AutoSave); iniHelper.WriteBool("SizeBigImag", "AutoDelete", SysParams.SizeBigImag.AutoDelete); iniHelper.WriteDouble("SizeBigImag", "AutoDeleteDays", SysParams.SizeBigImag.AutoDeleteDays); iniHelper.WriteString("SizeNGImag", "SavePath", SysParams.SizeNGImag.SavePath); iniHelper.WriteBool("SizeNGImag", "AutoSave", SysParams.SizeNGImag.AutoSave); iniHelper.WriteBool("SizeNGImag", "AutoDelete", SysParams.SizeNGImag.AutoDelete); iniHelper.WriteDouble("SizeNGImag", "AutoDeleteDays", SysParams.SizeNGImag.AutoDeleteDays); iniHelper.WriteString("SizeRepairImag", "SavePath", SysParams.SizeRepairImag.SavePath); iniHelper.WriteBool("SizeRepairImag", "AutoSave", SysParams.SizeRepairImag.AutoSave); iniHelper.WriteBool("SizeRepairImag", "AutoDelete", SysParams.SizeRepairImag.AutoDelete); iniHelper.WriteDouble("SizeRepairImag", "AutoDeleteDays", SysParams.SizeRepairImag.AutoDeleteDays); iniHelper.WriteString("Log", "SavePath", SysParams.LogPath); iniHelper.WriteBool("Log", "AutoDelete", SysParams.AutoDeleteLog); iniHelper.WriteDouble("Log", "AutoDeleteDays", SysParams.AutoDeleteLogData); iniHelper.WriteBool("SysFunction", "OpenMarkErrorStop", SysParams.OpenMarkErrorStop); iniHelper.WriteBool("SysFunction", "OpenBuzzer", SysParams.OpenBuzzer); iniHelper.WriteBool("SysFunction", "OpenDoor", SysParams.OpenDoor); iniHelper.WriteBool("SysFunction", "OpenHttpLog", SysParams.OpenHttpLog); iniHelper.WriteBool("SysFunction", "OpenAutoGoHome", SysParams.OpenAutoGoHome); iniHelper.WriteBool("SysFunction", "OpenFlawDistribution", SysParams.OpenFlawDistribution); iniHelper.WriteBool("SysFunction", "OpenAxisXCalibration", SysParams.OpenAxisXCalibration); iniHelper.WriteString("Dev", "LightCom", SysParams.LightCom); iniHelper.WriteInteger("Dev", "LightComBaud", SysParams.LightComBaud); iniHelper.WriteString("Dev", "TensionCom", SysParams.TensionCom); iniHelper.WriteInteger("Dev", "TensionComBaud", SysParams.TensionComBaud); iniHelper.WriteDouble("Dev", "Tension_Offset", SysParams.Tension_Offset); iniHelper.WriteString("Dev", "LensMotorCom", SysParams.LensMotorCom); iniHelper.WriteInteger("Dev", "LensMotorComBaud", SysParams.LensMotorComBaud); iniHelper.WriteString("Dev", "ThicknessIP", SysParams.ThicknessIP); iniHelper.WriteInteger("Dev", "ThicknessPort", SysParams.ThicknessPort); iniHelper.WriteDouble("Dev", "ThicknessSafeValue", SysParams.ThicknessSafeValue); iniHelper.WriteString("Dev", "IODevName", SysParams.IODevName); iniHelper.WriteString("Dev", "IOCfgPath", SysParams.IOCfgPath); iniHelper.WriteString("Dev", "MotionCfgPath", SysParams.MotionCfgPath); iniHelper.WriteString("Dev", "FrontCamName", SysParams.FrontCamName); iniHelper.WriteString("Dev", "FrontCamCfgPath", SysParams.FrontCamCfgPath); iniHelper.WriteString("Dev", "BackCamName", SysParams.BackCamName); iniHelper.WriteString("Dev", "BackCamCfgPath", SysParams.BackCamCfgPath); iniHelper.WriteBool("Disable", "DisableX1", SysParams.DisableX1); iniHelper.WriteBool("Disable", "DisableX2", SysParams.DisableX2); iniHelper.WriteBool("Disable", "DisableY", SysParams.DisableY); iniHelper.WriteBool("Disable", "DisableZ", SysParams.DisableZ); iniHelper.WriteBool("Disable", "DisableFrontCam", SysParams.DisableFrontCam); iniHelper.WriteBool("Disable", "DisableBackCam", SysParams.DisableBackCam); iniHelper.WriteBool("Disable", "DisableLight", SysParams.DisableLight); iniHelper.WriteBool("Disable", "DisableThickness", SysParams.DisableThickness); iniHelper.WriteBool("Disable", "DisableTensor", SysParams.DisableTensor); iniHelper.WriteBool("Disable", "DisableLensMotor", SysParams.DisableLensMotor); iniHelper.WriteString("Sys", "ImageProcessPath", SysParams.ImageProcessPath); iniHelper.WriteString("Sys", "AIModelPath", SysParams.AIModelPath); iniHelper.WriteString("Sys", "HttpServerIP", SysParams.HttpServerIP); iniHelper.WriteInteger("Sys", "HttpServerPort", SysParams.HttpServerPort); iniHelper.WriteBool("ShowMainWin", "ShowResetBtn", SysParams.ShowResetBtn); iniHelper.WriteBool("ShowMainWin", "ShowBuzz", SysParams.ShowBuzz); iniHelper.WriteBool("ShowMainWin", "ShowDoorAlm", SysParams.ShowDoorAlm); iniHelper.WriteDouble("CamView", "DefectCamViewX", SysParams.DefectCamViewX); iniHelper.WriteDouble("CamView", "DefectCamViewY", SysParams.DefectCamViewY); iniHelper.WriteBool("CloudAndMES", "EnableHttp", SysParams.EnableHttp); iniHelper.WriteString("CloudAndMES", "HttpUrl", SysParams.HttpUrl); iniHelper.WriteString("CloudAndMES", "HttpTempPath", SysParams.HttpTempPath); iniHelper.WriteString("CloudAndMES", "HttpReturnKey", SysParams.HttpReturnKey); iniHelper.WriteString("CloudAndMES", "HttpReturnValue", SysParams.HttpReturnValue); iniHelper.WriteDouble("LensZ", "Z_0_58X", SysParams.LensAxisZPos.Z_0_58X); //iniHelper.WriteDouble("LensZ", "Z_0_6X", SysParams.LensAxisZPos.Z_0_6X); iniHelper.WriteDouble("LensZ", "Z_1_0X", SysParams.LensAxisZPos.Z_1_0X); iniHelper.WriteDouble("LensZ", "Z_1_5X", SysParams.LensAxisZPos.Z_1_5X); iniHelper.WriteDouble("LensZ", "Z_2_0X", SysParams.LensAxisZPos.Z_2_0X); iniHelper.WriteDouble("LensZ", "Z_2_5X", SysParams.LensAxisZPos.Z_2_5X); iniHelper.WriteDouble("LensZ", "Z_3_0X", SysParams.LensAxisZPos.Z_3_0X); iniHelper.WriteDouble("LensZ", "Z_3_5X", SysParams.LensAxisZPos.Z_3_5X); iniHelper.WriteDouble("LensZ", "Z_4_0X", SysParams.LensAxisZPos.Z_4_0X); iniHelper.WriteDouble("LensZ", "Z_4_5X", SysParams.LensAxisZPos.Z_4_5X); iniHelper.WriteDouble("LensZ", "Z_5_0X", SysParams.LensAxisZPos.Z_5_0X); iniHelper.WriteDouble("LensZ", "Z_5_5X", SysParams.LensAxisZPos.Z_5_5X); iniHelper.WriteDouble("LensZ", "Z_6_0X", SysParams.LensAxisZPos.Z_6_0X); iniHelper.WriteDouble("LensZ", "Z_6_5X", SysParams.LensAxisZPos.Z_6_5X); iniHelper.WriteDouble("LensZ", "Z_7_0X", SysParams.LensAxisZPos.Z_7_0X); iniHelper.WriteDouble("LensZ", "Z_7_5X", SysParams.LensAxisZPos.Z_7_5X); iniHelper.WriteBool("LabelPrint", "EnableLabelPrint", SysParams.EnableLabelPrint); iniHelper.WriteString("LabelPrint", "LabelPrinterName", SysParams.LabelPrinterName); iniHelper.WriteString("LabelPrint", "LabelTempPath", SysParams.LabelTempPath); iniHelper.WriteString("LabelPrint", "LabelData", JsonConvert.SerializeObject(SysParams.LabelData)); iniHelper.WriteBool("ExcelPrint", "EnableExcelPrint", SysParams.EnableExcelPrint); iniHelper.WriteString("ExcelPrint", "ExcelPrinterName", SysParams.ExcelPrinterName); iniHelper.WriteString("ExcelPrint", "ExcelTempPath", SysParams.ExcelTempPath); iniHelper.WriteString("ExcelPrint", "ExcelData", JsonConvert.SerializeObject(SysParams.ExcelData)); SysConfigParams = SysParams; } /// /// 读取ini /// /// public SysConfigParams ReadSysConfParams() { //return XmlHelper.Deserialize(_configFile); SysConfigParams sysParams = new SysConfigParams(); IniHelper iniHelper = new IniHelper(_configFile); string sValue = ""; int iValue = 0; double dValue = 0; bool bValue = false; iniHelper.ReadBool("SaveAllImg", "SaveAllImg", out bValue); sysParams.SaveAllImg = bValue; iniHelper.ReadString("DefectBigImag", "SavePath", out sValue); sysParams.DefectBigImag.SavePath = sValue.Replace("\0", ""); iniHelper.ReadBool("DefectBigImag", "AutoSave", out bValue); sysParams.DefectBigImag.AutoSave = bValue; iniHelper.ReadBool("DefectBigImag", "AutoDelete", out bValue); sysParams.DefectBigImag.AutoDelete = bValue; iniHelper.ReadDouble("DefectBigImag", "AutoDeleteDays", out dValue); sysParams.DefectBigImag.AutoDeleteDays = dValue; iniHelper.ReadString("DefectSmallImag", "SavePath", out sValue); sysParams.DefectSmallImag.SavePath = sValue.Replace("\0", ""); iniHelper.ReadBool("DefectSmallImag", "AutoSave", out bValue); sysParams.DefectSmallImag.AutoSave = bValue; iniHelper.ReadBool("DefectSmallImag", "AutoDelete", out bValue); sysParams.DefectSmallImag.AutoDelete = bValue; iniHelper.ReadDouble("DefectSmallImag", "AutoDeleteDays", out dValue); sysParams.DefectSmallImag.AutoDeleteDays = dValue; iniHelper.ReadString("DefectRepairImag", "SavePath", out sValue); sysParams.DefectRepairImag.SavePath = sValue.Replace("\0", ""); iniHelper.ReadBool("DefectRepairImag", "AutoSave", out bValue); sysParams.DefectRepairImag.AutoSave = bValue; iniHelper.ReadBool("DefectRepairImag", "AutoDelete", out bValue); sysParams.DefectRepairImag.AutoDelete = bValue; iniHelper.ReadDouble("DefectRepairImag", "AutoDeleteDays", out dValue); sysParams.DefectRepairImag.AutoDeleteDays = dValue; iniHelper.ReadString("SizeBigImag", "SavePath", out sValue); sysParams.SizeBigImag.SavePath = sValue.Replace("\0", ""); iniHelper.ReadBool("SizeBigImag", "AutoSave", out bValue); sysParams.SizeBigImag.AutoSave = bValue; iniHelper.ReadBool("SizeBigImag", "AutoDelete", out bValue); sysParams.SizeBigImag.AutoDelete = bValue; iniHelper.ReadDouble("SizeBigImag", "AutoDeleteDays", out dValue); sysParams.SizeBigImag.AutoDeleteDays = dValue; iniHelper.ReadString("SizeNGImag", "SavePath", out sValue); sysParams.SizeNGImag.SavePath = sValue.Replace("\0", ""); iniHelper.ReadBool("SizeNGImag", "AutoSave", out bValue); sysParams.SizeNGImag.AutoSave = bValue; iniHelper.ReadBool("SizeNGImag", "AutoDelete", out bValue); sysParams.SizeNGImag.AutoDelete = bValue; iniHelper.ReadDouble("SizeNGImag", "AutoDeleteDays", out dValue); sysParams.SizeNGImag.AutoDeleteDays = dValue; iniHelper.ReadString("SizeRepairImag", "SavePath", out sValue); sysParams.SizeRepairImag.SavePath = sValue.Replace("\0", ""); iniHelper.ReadBool("SizeRepairImag", "AutoSave", out bValue); sysParams.SizeRepairImag.AutoSave = bValue; iniHelper.ReadBool("SizeRepairImag", "AutoDelete", out bValue); sysParams.SizeRepairImag.AutoDelete = bValue; iniHelper.ReadDouble("SizeRepairImag", "AutoDeleteDays", out dValue); sysParams.SizeRepairImag.AutoDeleteDays = dValue; iniHelper.ReadString("Log", "SavePath", out sValue); sysParams.LogPath = sValue.Replace("\0", ""); iniHelper.ReadBool("Log", "AutoDelete", out bValue); sysParams.AutoDeleteLog = bValue; iniHelper.ReadDouble("Log", "AutoDeleteDays", out dValue); sysParams.AutoDeleteLogData = dValue; iniHelper.ReadBool("SysFunction", "OpenMarkErrorStop", out bValue); sysParams.OpenMarkErrorStop = bValue; iniHelper.ReadBool("SysFunction", "OpenBuzzer", out bValue); sysParams.OpenBuzzer = bValue; iniHelper.ReadBool("SysFunction", "OpenDoor", out bValue); sysParams.OpenDoor = bValue; iniHelper.ReadBool("SysFunction", "OpenHttpLog", out bValue); sysParams.OpenHttpLog = bValue; iniHelper.ReadBool("SysFunction", "OpenAutoGoHome", out bValue); sysParams.OpenAutoGoHome = bValue; iniHelper.ReadBool("SysFunction", "OpenFlawDistribution", out bValue); sysParams.OpenFlawDistribution = bValue; iniHelper.ReadBool("SysFunction", "OpenAxisXCalibration", out bValue); sysParams.OpenAxisXCalibration = bValue; iniHelper.ReadString("Dev", "LightCom", out sValue); sysParams.LightCom = sValue.Replace("\0", ""); iniHelper.ReadInteger("Dev", "LightComBaud", out iValue); sysParams.LightComBaud = iValue; iniHelper.ReadString("Dev", "TensionCom", out sValue); sysParams.TensionCom = sValue.Replace("\0", ""); iniHelper.ReadInteger("Dev", "TensionComBaud", out iValue); sysParams.TensionComBaud = iValue; iniHelper.ReadDouble("Dev", "Tension_Offset", out dValue); sysParams.Tension_Offset = dValue; iniHelper.ReadString("Dev", "LensMotorCom", out sValue); sysParams.LensMotorCom = sValue.Replace("\0", ""); iniHelper.ReadInteger("Dev", "LensMotorComBaud", out iValue); sysParams.LensMotorComBaud = iValue; iniHelper.ReadString("Dev", "ThicknessIP", out sValue); sysParams.ThicknessIP = sValue.Replace("\0", ""); iniHelper.ReadInteger("Dev", "ThicknessPort", out iValue); sysParams.ThicknessPort = iValue; iniHelper.ReadDouble("Dev", "ThicknessSafeValue", out dValue); sysParams.ThicknessSafeValue = dValue; iniHelper.ReadString("Dev", "IODevName", out sValue); sysParams.IODevName = sValue.Replace("\0", ""); iniHelper.ReadString("Dev", "IOCfgPath", out sValue); sysParams.IOCfgPath = sValue.Replace("\0", ""); iniHelper.ReadString("Dev", "FrontCamName", out sValue); sysParams.FrontCamName = sValue.Replace("\0", ""); iniHelper.ReadString("Dev", "FrontCamCfgPath", out sValue); sysParams.FrontCamCfgPath = sValue.Replace("\0", ""); iniHelper.ReadString("Dev", "BackCamName", out sValue); sysParams.BackCamName = sValue.Replace("\0", ""); iniHelper.ReadString("Dev", "BackCamCfgPath", out sValue); sysParams.BackCamCfgPath = sValue.Replace("\0", ""); iniHelper.ReadString("Dev", "MotionCfgPath", out sValue); sysParams.MotionCfgPath = sValue.Replace("\0", ""); iniHelper.ReadBool("Disable", "DisableX1", out bValue); sysParams.DisableX1 = bValue; iniHelper.ReadBool("Disable", "DisableX2", out bValue); sysParams.DisableX2 = bValue; iniHelper.ReadBool("Disable", "DisableY", out bValue); sysParams.DisableY = bValue; iniHelper.ReadBool("Disable", "DisableZ", out bValue); sysParams.DisableZ = bValue; iniHelper.ReadBool("Disable", "DisableFrontCam", out bValue); sysParams.DisableFrontCam = bValue; iniHelper.ReadBool("Disable", "DisableBackCam", out bValue); sysParams.DisableBackCam = bValue; iniHelper.ReadBool("Disable", "DisableLight", out bValue); sysParams.DisableLight = bValue; iniHelper.ReadBool("Disable", "DisableTensor", out bValue); sysParams.DisableTensor = bValue; iniHelper.ReadBool("Disable", "DisableThickness", out bValue); sysParams.DisableThickness = bValue; iniHelper.ReadBool("Disable", "DisableLensMotor", out bValue); sysParams.DisableLensMotor = bValue; iniHelper.ReadString("Sys", "ImageProcessPath", out sValue); sysParams.ImageProcessPath = sValue.Replace("\0", ""); iniHelper.ReadString("Sys", "AIModelPath", out sValue); sysParams.AIModelPath = sValue.Replace("\0", ""); iniHelper.ReadString("Sys", "HttpServerIP", out sValue); sysParams.HttpServerIP = sValue.Replace("\0", ""); iniHelper.ReadInteger("Sys", "HttpServerPort", out iValue); sysParams.HttpServerPort = iValue; iniHelper.ReadBool("ShowMainWin", "ShowResetBtn", out bValue); sysParams.ShowResetBtn = bValue; iniHelper.ReadBool("ShowMainWin", "ShowBuzz", out bValue); sysParams.ShowBuzz = bValue; iniHelper.ReadBool("ShowMainWin", "ShowDoorAlm", out bValue); sysParams.ShowDoorAlm = bValue; iniHelper.ReadDouble("CamView", "DefectCamViewX", out dValue); sysParams.DefectCamViewX = dValue; iniHelper.ReadDouble("CamView", "DefectCamViewY", out dValue); sysParams.DefectCamViewY = dValue; iniHelper.ReadBool("CloudAndMES", "EnableHttp", out bValue); sysParams.EnableHttp = bValue; iniHelper.ReadString("CloudAndMES", "HttpUrl", out sValue); sysParams.HttpUrl = sValue; iniHelper.ReadString("CloudAndMES", "HttpTempPath", out sValue); sysParams.HttpTempPath = sValue; iniHelper.ReadString("CloudAndMES", "HttpReturnKey", out sValue); sysParams.HttpReturnKey = sValue; iniHelper.ReadString("CloudAndMES", "HttpReturnValue", out sValue); sysParams.HttpReturnValue = sValue; iniHelper.ReadDouble("LensZ", "Z_0_58X", out dValue); sysParams.LensAxisZPos.Z_0_58X = dValue; //iniHelper.ReadDouble("LensZ", "Z_0_6X", out dValue); //sysParams.LensAxisZPos.Z_0_6X = dValue; iniHelper.ReadDouble("LensZ", "Z_1_0X", out dValue); sysParams.LensAxisZPos.Z_1_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_1_5X", out dValue); sysParams.LensAxisZPos.Z_1_5X = dValue; iniHelper.ReadDouble("LensZ", "Z_2_0X", out dValue); sysParams.LensAxisZPos.Z_2_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_2_5X", out dValue); sysParams.LensAxisZPos.Z_2_5X = dValue; iniHelper.ReadDouble("LensZ", "Z_3_0X", out dValue); sysParams.LensAxisZPos.Z_3_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_3_5X", out dValue); sysParams.LensAxisZPos.Z_3_5X = dValue; iniHelper.ReadDouble("LensZ", "Z_4_0X", out dValue); sysParams.LensAxisZPos.Z_4_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_4_5X", out dValue); sysParams.LensAxisZPos.Z_4_5X = dValue; iniHelper.ReadDouble("LensZ", "Z_5_0X", out dValue); sysParams.LensAxisZPos.Z_5_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_5_5X", out dValue); sysParams.LensAxisZPos.Z_5_5X = dValue; iniHelper.ReadDouble("LensZ", "Z_6_0X", out dValue); sysParams.LensAxisZPos.Z_6_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_6_5X", out dValue); sysParams.LensAxisZPos.Z_6_5X = dValue; iniHelper.ReadDouble("LensZ", "Z_7_0X", out dValue); sysParams.LensAxisZPos.Z_7_0X = dValue; iniHelper.ReadDouble("LensZ", "Z_7_5X", out dValue); sysParams.LensAxisZPos.Z_7_5X = dValue; iniHelper.ReadBool("LabelPrint", "EnableLabelPrint", out bValue); sysParams.EnableLabelPrint = bValue; iniHelper.ReadString("LabelPrint", "LabelPrinterName", out sValue); sysParams.LabelPrinterName = sValue; iniHelper.ReadString("LabelPrint", "LabelTempPath", out sValue); sysParams.LabelTempPath = sValue; iniHelper.ReadString("LabelPrint", "LabelData", out sValue); if (string.IsNullOrEmpty(sValue)) sysParams.LabelData = new Dictionary(); else sysParams.LabelData = JsonConvert.DeserializeObject>(sValue); iniHelper.ReadBool("ExcelPrint", "EnableExcelPrint", out bValue); sysParams.EnableExcelPrint = bValue; iniHelper.ReadString("ExcelPrint", "ExcelPrinterName", out sValue); sysParams.ExcelPrinterName = sValue; iniHelper.ReadString("ExcelPrint", "ExcelTempPath", out sValue); sysParams.ExcelTempPath = sValue; iniHelper.ReadString("ExcelPrint", "ExcelData", out sValue); if (string.IsNullOrEmpty(sValue)) sysParams.ExcelData = new Dictionary(); else sysParams.ExcelData = JsonConvert.DeserializeObject>(sValue); SysConfigParams = sysParams; return sysParams; } /// /// 写入系统默认配置 /// public void WriteDefaultSystemConfig() { SysConfigParams = new SysConfigParams(); WriteSysConfParams(SysConfigParams); } /// /// 加载系统配置 /// /// public bool LoadSystemConfig() { bool ret = false; if (!Directory.Exists(_rootPath)) { Directory.CreateDirectory(_rootPath); } if (!Directory.Exists(_projectDir)) { Directory.CreateDirectory(_projectDir); } if (File.Exists(_pointsPath)) { ReadPointsAndTime(); } else { // write default value WritePointsAndTime(0, 0, 0, 0, 1000, 1000); ret = true; } if (File.Exists(_configFile)) { SysConfigParams = ReadSysConfParams(); if (null != SysConfigParams) { ret = true; } } else { // write default value WriteDefaultSystemConfig(); ret = true; } return ret; } #endregion #region 文件选择 /// /// 选择目录 /// /// public static string SelectFolder(string defaultPath = "") { FolderBrowserDialog dlg = new FolderBrowserDialog(); dlg.SelectedPath = (defaultPath != "" ? defaultPath : Path.GetFullPath(".")); if (dlg.ShowDialog() == DialogResult.OK) return dlg.SelectedPath; return ""; } /// /// 选择文件 /// /// 如 图像文件|*.jpg|图像文件|*.png|所有文件|*.* /// public static string SelectFile(string filter = "所有文件|*.*", string defaultPath = "") { OpenFileDialog fie = new OpenFileDialog(); fie.Title = "选择文件"; //fie.InitialDirectory = (defaultPath != "" ? defaultPath : Path.GetFullPath(".")); fie.Filter = filter; //设置文件类型 if (fie.ShowDialog() == DialogResult.OK) return fie.FileName; return ""; } /// /// 删除指定目录下文件 /// /// /// /// public static bool DelFilesInFolder(string FolderPath, string fileExtend = "*") { if (!Directory.Exists(FolderPath)) return false; string[] files = Directory.GetFiles(FolderPath, fileExtend, SearchOption.TopDirectoryOnly); foreach (string file in files) API.DeleteFile(file); return true; } /// /// 另存为 /// /// 默认文件名 /// 如 图像文件|*.jpg|图像文件|*.png|所有文件|*.* /// public static string SaveAsFile(string defaultFileName, string filter = "所有文件|*.*") { SaveFileDialog s = new SaveFileDialog(); s.Title = "保存文件"; s.Filter = filter; //"图像文件|*.jpg|图像文件|*.png|所有文件|*.*"; //s.DefaultExt = "图像文件|*.jpg"; //默认扩展名 //s.InitialDirectory = @"C:\Users\Administrator\Desktop"; //保存的初始目录 s.FileName = defaultFileName;//默认文件名 if (s.ShowDialog() == DialogResult.OK) return s.FileName; return ""; } #endregion #region json操作 public static void addKey(JObject obj, string key, JToken value) { if (obj.ContainsKey(key)) obj[key] = value; else obj.Add(key, value); } #endregion #region enum名称 public static ArrayList GetArrayList() { ArrayList list = new ArrayList(); Type type = typeof(T); //list.Add(new DictionaryEntry("start", "启动按钮")); foreach (int value in Enum.GetValues(type)) { string strName = Enum.GetName(type, value);//获取名称 list.Add(new DictionaryEntry(value, strName)); } return list; } #endregion #endregion } }