초기 커밋.
This commit is contained in:
204
LFP_Manager_PRM/Function/csIniControlFunction.cs
Normal file
204
LFP_Manager_PRM/Function/csIniControlFunction.cs
Normal file
@@ -0,0 +1,204 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using System.IO;
|
||||
|
||||
using LFP_Manager.DataStructure;
|
||||
|
||||
namespace LFP_Manager.Function
|
||||
{
|
||||
class csIniControlFunction
|
||||
{
|
||||
#region [Function] INI File Read Function(Section Setting)
|
||||
public static string[] GetIniValue(string Section, string path)
|
||||
{
|
||||
byte[] ba = new byte[5000];
|
||||
uint Flag = GetPrivateProfileSection(Section, ba, 5000, path);
|
||||
return Encoding.Default.GetString(ba).Split(new char[1] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region [Function] INI File Read Function(Section and Key Setting)
|
||||
public static string GetIniValue(string Section, string key, string path)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder(500);
|
||||
int Flag = GetPrivateProfileString(Section, key, "", sb, 500, path);
|
||||
return sb.ToString();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region [Function] INI File Read Function(Section, Key, Value, Address Setting)
|
||||
public bool SetIniValue(string Section, string Key, string Value, string path)
|
||||
{
|
||||
return (WritePrivateProfileString(Section, Key, Value, path));
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region [DLL Function] INI DLL Load
|
||||
[DllImport("kernel32")]
|
||||
public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
|
||||
[DllImport("kernel32")]
|
||||
public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
|
||||
[DllImport("kernel32")]
|
||||
public static extern uint GetPrivateProfileInt(string lpAppName, string lpKeName, int nDefault, string lpFileName);
|
||||
[DllImport("kernel32")]
|
||||
public static extern uint GetPrivateProfileSection(string lpAppName, byte[] lpPairValues, uint nSize, string lpFileName);
|
||||
[DllImport("kernel32")]
|
||||
public static extern uint GetPrivateProfileSectionNames(byte[] lpSections, uint nSize, string lpFileName);
|
||||
#endregion
|
||||
|
||||
public static DateTime Delay(int MS)
|
||||
{
|
||||
DateTime thisMoment = DateTime.Now;
|
||||
TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS);
|
||||
DateTime afterMoment = thisMoment.Add(duration);
|
||||
|
||||
while (afterMoment >= thisMoment)
|
||||
{
|
||||
System.Windows.Forms.Application.DoEvents();
|
||||
|
||||
thisMoment = DateTime.Now;
|
||||
}
|
||||
|
||||
return DateTime.Now;
|
||||
}
|
||||
|
||||
public static CommConfig IniLoad(string AppPath, CommConfig aConfig)
|
||||
{
|
||||
string path;
|
||||
path = Path.GetDirectoryName(AppPath);
|
||||
|
||||
if (aConfig == null)
|
||||
{
|
||||
aConfig = new CommConfig();
|
||||
}
|
||||
if (File.Exists(String.Format("{0}\\CommSet.ini", path)))
|
||||
{
|
||||
StringBuilder ret = new StringBuilder();
|
||||
string InIPath = String.Format("{0}\\CommSet.ini", path);
|
||||
|
||||
// CommType = 0: USBCAN, 1: UARTCAN
|
||||
aConfig.CommType = (int)csIniControlFunction.GetPrivateProfileInt("COMM TYPE", "TYPE", 0, InIPath);
|
||||
|
||||
// SNMP Config
|
||||
// IP
|
||||
ret.Clear();
|
||||
csIniControlFunction.GetPrivateProfileString("SNMP", "IP", "(NONE)", ret, 32, InIPath);
|
||||
aConfig.SnmpIP = ret.ToString();
|
||||
// Model
|
||||
aConfig.SnmpModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("SNMP", "MODEL", 2, InIPath);
|
||||
// Module Quantity
|
||||
aConfig.SnmpMdQty = (int)csIniControlFunction.GetPrivateProfileInt("SNMP", "MD_QTY", 2, InIPath);
|
||||
|
||||
// CAN Config
|
||||
// DEVICE
|
||||
ret.Clear();
|
||||
aConfig.CanDevice = (int)csIniControlFunction.GetPrivateProfileInt("CAN", "DEVICE", 0, InIPath);
|
||||
// INDEX
|
||||
aConfig.CanIndex = (int)csIniControlFunction.GetPrivateProfileInt("CAN", "INDEX", 0, InIPath);
|
||||
// CAN NO
|
||||
aConfig.CanNo = (int)csIniControlFunction.GetPrivateProfileInt("CAN", "CAN_NO", 0, InIPath);
|
||||
// SPEED
|
||||
aConfig.CanBaudrate = (int)csIniControlFunction.GetPrivateProfileInt("CAN", "BAUDRATE", 0, InIPath);
|
||||
// MODEL
|
||||
aConfig.TargetModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("CAN", "MODEL", 0, InIPath);
|
||||
|
||||
// UART Config
|
||||
// PORT
|
||||
ret.Clear();
|
||||
csIniControlFunction.GetPrivateProfileString("UART", "PORT", "(NONE)", ret, 32, InIPath);
|
||||
aConfig.UartPort = ret.ToString();
|
||||
// SPEED
|
||||
aConfig.UartBaudrate = (int)csIniControlFunction.GetPrivateProfileInt("UART", "BAUDRATE", 0, InIPath);
|
||||
|
||||
// Database Config
|
||||
ret.Clear();
|
||||
// Log Period
|
||||
aConfig.DbLogPeriod = (int)csIniControlFunction.GetPrivateProfileInt("DATABASE", "LOG_PERIOD", 5, InIPath);
|
||||
|
||||
// CB Test Config
|
||||
aConfig.CbTestGap = (int)csIniControlFunction.GetPrivateProfileInt("CB_TEST", "MAX_GAP", 1500, InIPath);
|
||||
// CB Test Config
|
||||
aConfig.CbTestTime = (int)csIniControlFunction.GetPrivateProfileInt("CB_TEST", "TIME", 3000, InIPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
aConfig.CommType = csConstData.CommType.COMM_USBCAN;
|
||||
|
||||
// MODEL
|
||||
aConfig.TargetModelIndex = 0;
|
||||
|
||||
// CAN DEVICE
|
||||
aConfig.CanDevice = 0;
|
||||
// CAN INDEX
|
||||
aConfig.CanIndex = 0;
|
||||
// CAN NO
|
||||
aConfig.CanNo = 0;
|
||||
// SPEED
|
||||
aConfig.CanBaudrate = 0;
|
||||
|
||||
// UART PORT
|
||||
aConfig.UartPort = "";
|
||||
// SPEED
|
||||
aConfig.UartBaudrate = 0;
|
||||
|
||||
aConfig.DbLogPeriod = 5;
|
||||
|
||||
aConfig.CbTestGap = 1500;
|
||||
aConfig.CbTestTime = 3000;
|
||||
}
|
||||
|
||||
return aConfig;
|
||||
}
|
||||
|
||||
public static void IniSave(string AppPath, CommConfig aConfig)
|
||||
{
|
||||
string path = System.IO.Path.GetDirectoryName(AppPath);
|
||||
string InIPath = String.Format("{0}\\CommSet.ini", path);
|
||||
|
||||
// write ini
|
||||
|
||||
// CommType = 0: SNMP, 1: UARTCAN, 2: USBCAN
|
||||
csIniControlFunction.WritePrivateProfileString("COMM TYPE", "TYPE", aConfig.CommType.ToString(), InIPath);
|
||||
|
||||
// SNMP Config
|
||||
// IP
|
||||
csIniControlFunction.WritePrivateProfileString("SNMP", "IP", aConfig.SnmpIP, InIPath);
|
||||
// Model
|
||||
csIniControlFunction.WritePrivateProfileString("SNMP", "MODEL", aConfig.SnmpModelIndex.ToString(), InIPath);
|
||||
// Module Quantity
|
||||
csIniControlFunction.WritePrivateProfileString("SNMP", "MD_QTY", aConfig.SnmpMdQty.ToString(), InIPath);
|
||||
|
||||
// CAN Config
|
||||
// DEVICE
|
||||
csIniControlFunction.WritePrivateProfileString("CAN", "DEVICE", aConfig.CanDevice.ToString(), InIPath);
|
||||
// INDEX
|
||||
csIniControlFunction.WritePrivateProfileString("CAN", "INDEX", aConfig.CanIndex.ToString(), InIPath);
|
||||
// CAN NO
|
||||
csIniControlFunction.WritePrivateProfileString("CAN", "CAN_NO", aConfig.CanNo.ToString(), InIPath);
|
||||
// SPEED
|
||||
csIniControlFunction.WritePrivateProfileString("CAN", "BAUDRATE", aConfig.CanBaudrate.ToString(), InIPath);
|
||||
// MODEL
|
||||
csIniControlFunction.WritePrivateProfileString("CAN", "MODEL", aConfig.TargetModelIndex.ToString(), InIPath);
|
||||
|
||||
// UART Config
|
||||
// PORT
|
||||
csIniControlFunction.WritePrivateProfileString("UART", "PORT", aConfig.UartPort.ToString(), InIPath);
|
||||
// SPEED
|
||||
csIniControlFunction.WritePrivateProfileString("UART", "BAUDRATE", aConfig.UartBaudrate.ToString(), InIPath);
|
||||
|
||||
// Database Config
|
||||
// Log Period
|
||||
csIniControlFunction.WritePrivateProfileString("DATABASE", "LOG_PERIOD", aConfig.DbLogPeriod.ToString(), InIPath);
|
||||
|
||||
// CB Test Config
|
||||
// MAX GAP
|
||||
csIniControlFunction.WritePrivateProfileString("CB_TEST", "MAX_GAP", aConfig.CbTestGap.ToString(), InIPath);
|
||||
// TIME
|
||||
csIniControlFunction.WritePrivateProfileString("CB_TEST", "TIME", aConfig.CbTestTime.ToString(), InIPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user