using BaseLibComm; using BaseLibRWFile; using HardwareConfig; using System; using System.Collections.Generic; using System.IO; using System.IO.Ports; using System.Linq; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HRT_Measure { public enum ImageSource { Camera = 1, File = 2, Folder = 3 } public class ProgramHelp { public static ProgramHelp Instance { get; set; } = new ProgramHelp(); public event Action SaveMsgEvent; public Log newLog = new Log(); public Ini newIni; public FrmMain frmMain; //客户端 public Dictionary dictClient = new Dictionary(); //public ClientHelp clientBC1; //public ClientHelp clientBC2; //public ClientHelp clientBC3; //public ClientHelp clientPrint2; //public ClientHelp clientPrint3; //服务器 public Dictionary dictServer = new Dictionary(); //PLC public Dictionary dictCommPLC = new Dictionary(); public CommPLC commPLC_M01M02; public CommPLC commPLC_M03; public CommPLC commPLC_M04M05; public CommPLC comm压机; public CommPLC comm称重; public CommPLC comm称重1; #region Variable #endregion public ProjectConfig ProConfig { get; set; } = new ProjectConfig(); public ProjectParameter ProPara { get; set; } = new ProjectParameter(); public void LoadProjectFiles() { LoadProjectConfig(); LoadProjectPara(); //HRT_Help.LoadResultTitle(); //AlmInfoHelp.GetAlmInfo(); LoadHardWare(); } /// /// 加载硬件 /// public void LoadHardWare() { dictCommPLC.Clear(); commPLC_M01M02 = new CommPLC(ProConfig.M01_M02_PLC_IP, ProConfig.M01_M02_PLC_Port, "PLC-M01M02", ProConfig.PLC通讯类型); commPLC_M03 = new CommPLC(ProConfig.M03_PLC_IP, ProConfig.M03_PLC_Port, "PLC-M03", ProConfig.PLC通讯类型); commPLC_M04M05 = new CommPLC(ProConfig.M04_M05_PLC_IP, ProConfig.M04_M05_PLC_Port, "PLC-M04M05", ProConfig.PLC通讯类型); dictCommPLC.Add("PLC-M01M02", commPLC_M01M02); dictCommPLC.Add("PLC-M03", commPLC_M03); dictCommPLC.Add("PLC-M04M05", commPLC_M04M05); comm压机 = new CommPLC(ProConfig.压机串口号.ToString(), 9600, 8, 1, Parity.Even, ProConfig.压机通讯类型, "压机"); dictCommPLC.Add("压机", comm压机); comm称重 = new CommPLC(ProConfig.称重PLC_IP地址, ProConfig.称重PLC_Port, "称重", ProConfig.称重通讯类型); dictCommPLC.Add("称重", comm称重); comm称重1 = new CommPLC(ProConfig.称重PLC_IP地址1, ProConfig.称重PLC_Port1, "称重1", ProConfig.称重通讯类型1); dictCommPLC.Add("称重1", comm称重1); } public void UnloadHardWare() { foreach (var item in dictCommPLC) { item.Value.Close(); } } #region load save xml public void LoadProjectConfig() { string path = Application.StartupPath + $"\\Config\\ProjectConfig.xml"; if (File.Exists(path)) { if (ClsXml.XmlConfigReader(path, typeof(List)) is List paraList) { ProConfig = paraList[0]; } } } public void SavePorjectConfig() { string path = Application.StartupPath + $"\\Config\\ProjectConfig.xml"; List listConfig = new List(); if (ProConfig != null) { listConfig.Add(ProConfig); } ClsXml.XmlConfigWriter(listConfig, path); } public void LoadProjectPara() { string path = Application.StartupPath + $"\\Config\\{ProConfig.当前料号}\\ProjectPara-{ProConfig.当前料号}.xml"; //{ ProConfig.StrCurrentPartNumber}\\-{ ProgramHelp.Instance.ProConfig.StrCurrentPartNumber} if (File.Exists(path)) { if (ClsXml.XmlConfigReader(path, typeof(List)) is List paraList) { ProPara = paraList[0]; } } } public void SavePorjectPara() { string path = Application.StartupPath + $"\\Config\\{ProConfig.当前料号}\\ProjectPara-{ProConfig.当前料号}.xml"; //string path = Application.StartupPath + $"\\Config\\{ProConfig.StrCurrentPartNumber}\\ProjectPara-{ProgramHelp.Instance.ProConfig.StrCurrentPartNumber}.xml"; List listConfig = new List(); if (ProConfig != null) { listConfig.Add(ProPara); } ClsXml.XmlConfigWriter(listConfig, path); } #endregion public void SaveMsg(string strFileName, string strMsg, bool isDayOrHour) { string strDate; if (isDayOrHour) { strDate = DateTime.Now.ToString("yyyyMMdd") + ".csv"; } else { strDate = DateTime.Now.ToString("yyyyMMddHH") + ".csv"; } string strFilePath = "D:" + "\\DATA\\" + "\\Logs\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\"; strFileName = strFileName + "_" + strDate; newLog.SaveTxt(strFilePath, strFileName, strMsg); if (SaveMsgEvent != null) { string str = DateTime.Now.ToString("HH:mm:ss:fff") + " " + strMsg + "\r\n";//:fff SaveMsgEvent(str); } } } }