using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace friction { public static class Config { static string m_strPath = ""; static Config() { string strPrjName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name; string strFolder = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), strPrjName); m_strPath = strFolder + "\\config.ini"; if (!Directory.Exists(strFolder)) Directory.CreateDirectory(strFolder); Load(); } public static void Init() { } [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); private static void Load() { StringBuilder temp = new StringBuilder(10240); int iRes = GetPrivateProfileString("Option", "recent", "", temp, 10240, m_strPath); if(temp.Length > 0) { string[] astrList = temp.ToString().Split(new string[] { "//" }, StringSplitOptions.None); foreach (string strFile in astrList) OPTION.AddRecentFile(strFile); } } private static void Save() { WritePrivateProfileString("Option", "recent", OPTION.GetRecentAll(), m_strPath); } public struct COLUMN_NAME { public static string SPRING = "Material spring"; public static string TABLE = "material 2 table"; public static string RPN = "Risk priority number"; public static string FORCE = "normal force"; public static string TEMP = "Temperature"; public static string HUMIDITY = "Relative humidity"; public static string VELOCITY = "Relative velocity"; } public static class OPTION { public static List m_RecentList = new List(); public static void AddRecentFile(string strPath) { if(m_RecentList.Find(s => s==strPath) != null) m_RecentList.Remove(strPath); m_RecentList.Add(strPath); Save(); } public static string GetRecentAll() { return string.Join("//", m_RecentList); } } public static class ANALYSIS { public enum RISK { NO=3, POTENTIAL=5, HIGH=10 } public enum DEPENDANCY { NO, POTENTIAL, HIGH, NOT_ENNOUGH_DATA } public static RISK GetRisk(float fAvg) { if (fAvg <= 3) return RISK.NO; else if (fAvg <= 5) return RISK.POTENTIAL; else return RISK.HIGH; } public static DEPENDANCY GetDependancy(float fStdev, int iTestCnt) { if (iTestCnt <= 3) return DEPENDANCY.NOT_ENNOUGH_DATA; else if (fStdev < 3.5f) return DEPENDANCY.NO; else if (fStdev < 5.5f) return DEPENDANCY.POTENTIAL; else return DEPENDANCY.HIGH; } } } }