优化IoProviderManager对象代码,优化反编译后的一些变量名称,优化代码格式。
This commit is contained in:
parent
fdee426de3
commit
f57dbff818
|
@ -29,67 +29,67 @@ namespace MECF.Framework.RT.Core.IoProviders
|
|||
|
||||
public void Initialize(string xmlConfigFile, Dictionary<string, Dictionary<int, string>> ioMappingPathFile)
|
||||
{
|
||||
XmlDocument xmlDocument = new XmlDocument();
|
||||
var xmlDocument = new XmlDocument();
|
||||
try
|
||||
{
|
||||
xmlDocument.Load(xmlConfigFile);
|
||||
XmlNodeList xmlNodeList = xmlDocument.SelectNodes("IoProviders/IoProvider");
|
||||
foreach (object item in xmlNodeList)
|
||||
var xmlNodeIoProviders = xmlDocument.SelectNodes("IoProviders/IoProvider");
|
||||
foreach (var node in xmlNodeIoProviders)
|
||||
{
|
||||
if (!(item is XmlElement xmlElement) || !(xmlElement.SelectSingleNode("Parameter") is XmlElement nodeParameter))
|
||||
if (!(node is XmlElement nodeProvider) || !(nodeProvider.SelectSingleNode("Parameter") is XmlElement nodeParameter))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string text = xmlElement.GetAttribute("module").Trim();
|
||||
string text2 = xmlElement.GetAttribute("name").Trim();
|
||||
string name = xmlElement.GetAttribute("class").Trim();
|
||||
string assemblyString = xmlElement.GetAttribute("assembly").Trim();
|
||||
string text3 = xmlElement.GetAttribute("load_condition").Trim();
|
||||
bool boolValue = SC.GetConfigItem("System.IsSimulatorMode").BoolValue;
|
||||
if ((boolValue && text3 != "0" && text3 != "2") || (!boolValue && text3 != "1" && text3 != "2"))
|
||||
var attrModule = nodeProvider.GetAttribute("module").Trim();
|
||||
var attrName = nodeProvider.GetAttribute("name").Trim();
|
||||
var attrClass = nodeProvider.GetAttribute("class").Trim();
|
||||
var attrAssembly = nodeProvider.GetAttribute("assembly").Trim();
|
||||
var attrLoadCond = nodeProvider.GetAttribute("load_condition").Trim();
|
||||
var isSim = SC.GetConfigItem("System.IsSimulatorMode").BoolValue;
|
||||
if ((isSim && attrLoadCond != "0" && attrLoadCond != "2") || (!isSim && attrLoadCond != "1" && attrLoadCond != "2"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string text4 = text + "." + text2;
|
||||
Type type = Assembly.Load(assemblyString).GetType(name);
|
||||
var ioProviderName = attrModule + "." + attrName;
|
||||
var type = Assembly.Load(attrAssembly).GetType(attrClass);
|
||||
if (type == null)
|
||||
{
|
||||
throw new Exception(string.Format("ioProvider config file class and assembly not valid," + text4));
|
||||
throw new Exception(string.Format("ioProvider config file class and assembly not valid," + ioProviderName));
|
||||
}
|
||||
IIoProvider ioProvider;
|
||||
try
|
||||
{
|
||||
ioProvider = (IIoProvider)Activator.CreateInstance(type);
|
||||
_providers.Add(ioProvider);
|
||||
_dicProviders[text4] = ioProvider;
|
||||
_dicProviders[ioProviderName] = ioProvider;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LOG.Write(ex);
|
||||
throw new Exception(string.Format("ioProvider can not be created," + text4));
|
||||
throw new Exception(string.Format("ioProvider can not be created," + ioProviderName));
|
||||
}
|
||||
List<IoBlockItem> list = new List<IoBlockItem>();
|
||||
XmlNodeList xmlNodeList2 = xmlElement.SelectNodes("Blocks/Block");
|
||||
foreach (object item2 in xmlNodeList2)
|
||||
var list = new List<IoBlockItem>();
|
||||
var xmlNodeBlocks = nodeProvider.SelectNodes("Blocks/Block");
|
||||
foreach (var nodeBlock in xmlNodeBlocks)
|
||||
{
|
||||
if (!(item2 is XmlElement xmlElement2))
|
||||
if (!(nodeBlock is XmlElement xmlNodeBlock))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
IoBlockItem ioBlockItem = new IoBlockItem();
|
||||
string attribute = xmlElement2.GetAttribute("type");
|
||||
string attribute2 = xmlElement2.GetAttribute("offset");
|
||||
string attribute3 = xmlElement2.GetAttribute("size");
|
||||
string attribute4 = xmlElement2.GetAttribute("value_type");
|
||||
if (!int.TryParse(attribute2, out var result))
|
||||
var ioBlockItem = new IoBlockItem();
|
||||
var attrType = xmlNodeBlock.GetAttribute("type");
|
||||
var attrOffset = xmlNodeBlock.GetAttribute("offset");
|
||||
var attrSize = xmlNodeBlock.GetAttribute("size");
|
||||
var attrValueType = xmlNodeBlock.GetAttribute("value_type");
|
||||
if (!int.TryParse(attrOffset, out var result))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
ioBlockItem.Offset = result;
|
||||
if (int.TryParse(attribute3, out result))
|
||||
if (int.TryParse(attrSize, out result))
|
||||
{
|
||||
ioBlockItem.Size = result;
|
||||
switch (attribute.ToLower())
|
||||
switch (attrType.ToLower())
|
||||
{
|
||||
case "ai":
|
||||
ioBlockItem.Type = IoType.AI;
|
||||
|
@ -108,18 +108,18 @@ namespace MECF.Framework.RT.Core.IoProviders
|
|||
}
|
||||
if (ioBlockItem.Type == IoType.AI || ioBlockItem.Type == IoType.AO)
|
||||
{
|
||||
ioBlockItem.AIOType = ((string.IsNullOrEmpty(attribute4) || attribute4.ToLower() != "float") ? typeof(short) : typeof(float));
|
||||
ioBlockItem.AIOType = ((string.IsNullOrEmpty(attrValueType) || attrValueType.ToLower() != "float") ? typeof(short) : typeof(float));
|
||||
}
|
||||
list.Add(ioBlockItem);
|
||||
}
|
||||
}
|
||||
if (ioMappingPathFile.ContainsKey(text4))
|
||||
if (ioMappingPathFile.ContainsKey(ioProviderName))
|
||||
{
|
||||
ioProvider.Initialize(text, text2, list, Singleton<IoManager>.Instance, nodeParameter, ioMappingPathFile[text4]);
|
||||
ioProvider.Initialize(attrModule, attrName, list, Singleton<IoManager>.Instance, nodeParameter, ioMappingPathFile[ioProviderName]);
|
||||
ioProvider.Start();
|
||||
continue;
|
||||
}
|
||||
throw new Exception(string.Format("can not find io map config files," + text4));
|
||||
throw new Exception(string.Format("can not find io map config files," + ioProviderName));
|
||||
}
|
||||
}
|
||||
catch (Exception ex2)
|
||||
|
@ -130,67 +130,67 @@ namespace MECF.Framework.RT.Core.IoProviders
|
|||
|
||||
public void Initialize(string xmlConfigFile)
|
||||
{
|
||||
XmlDocument xmlDocument = new XmlDocument();
|
||||
var xmlDoc = new XmlDocument();
|
||||
try
|
||||
{
|
||||
xmlDocument.Load(xmlConfigFile);
|
||||
XmlNodeList xmlNodeList = xmlDocument.SelectNodes("IoProviders/IoProvider");
|
||||
foreach (object item in xmlNodeList)
|
||||
xmlDoc.Load(xmlConfigFile);
|
||||
var xmlNodeList = xmlDoc.SelectNodes("IoProviders/IoProvider");
|
||||
foreach (var item in xmlNodeList)
|
||||
{
|
||||
if (!(item is XmlElement xmlElement) || !(xmlElement.SelectSingleNode("Parameter") is XmlElement nodeParameter))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string moduleName = xmlElement.GetAttribute("module").Trim();
|
||||
string providerName = xmlElement.GetAttribute("name").Trim();
|
||||
string typeName = xmlElement.GetAttribute("class").Trim();
|
||||
string assemblyString = xmlElement.GetAttribute("assembly").Trim();
|
||||
string loadCond = xmlElement.GetAttribute("load_condition").Trim();
|
||||
var moduleName = xmlElement.GetAttribute("module").Trim();
|
||||
var providerName = xmlElement.GetAttribute("name").Trim();
|
||||
var typeName = xmlElement.GetAttribute("class").Trim();
|
||||
var assemblyString = xmlElement.GetAttribute("assembly").Trim();
|
||||
var loadCond = xmlElement.GetAttribute("load_condition").Trim();
|
||||
var isSim = SC.GetConfigItem("System.IsSimulatorMode").BoolValue;
|
||||
if ((isSim && loadCond != "0" && loadCond != "2") || (!isSim && loadCond != "1" && loadCond != "2"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string text4 = moduleName + "." + providerName;
|
||||
Type type = Assembly.Load(assemblyString).GetType(typeName);
|
||||
var ioProviderName = moduleName + "." + providerName;
|
||||
var type = Assembly.Load(assemblyString).GetType(typeName);
|
||||
if (type == null)
|
||||
{
|
||||
throw new Exception(string.Format("ioProvider config file class and assembly not valid," + text4));
|
||||
throw new Exception(string.Format("ioProvider config file class and assembly not valid," + ioProviderName));
|
||||
}
|
||||
IIoProvider ioProvider;
|
||||
try
|
||||
{
|
||||
ioProvider = (IIoProvider)Activator.CreateInstance(type);
|
||||
_providers.Add(ioProvider);
|
||||
_dicProviders[text4] = ioProvider;
|
||||
_dicProviders[ioProviderName] = ioProvider;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LOG.Write(ex);
|
||||
throw new Exception(string.Format("ioProvider can not be created," + text4));
|
||||
throw new Exception(string.Format("ioProvider can not be created," + ioProviderName));
|
||||
}
|
||||
List<IoBlockItem> list = new List<IoBlockItem>();
|
||||
XmlNodeList xmlNodeList2 = xmlElement.SelectNodes("Blocks/Block");
|
||||
foreach (object item2 in xmlNodeList2)
|
||||
var list = new List<IoBlockItem>();
|
||||
var nodeBlocks = xmlElement.SelectNodes("Blocks/Block");
|
||||
foreach (var nodeBlock in nodeBlocks)
|
||||
{
|
||||
if (!(item2 is XmlElement xmlElement2))
|
||||
if (!(nodeBlock is XmlElement xmlBlock))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
IoBlockItem ioBlockItem = new IoBlockItem();
|
||||
string attribute = xmlElement2.GetAttribute("type");
|
||||
string attribute2 = xmlElement2.GetAttribute("offset");
|
||||
string attribute3 = xmlElement2.GetAttribute("size");
|
||||
string attribute4 = xmlElement2.GetAttribute("value_type");
|
||||
if (!int.TryParse(attribute2, out var result))
|
||||
var ioBlockItem = new IoBlockItem();
|
||||
var attrType = xmlBlock.GetAttribute("type");
|
||||
var attrOffset = xmlBlock.GetAttribute("offset");
|
||||
var attrSize = xmlBlock.GetAttribute("size");
|
||||
var attrValueType = xmlBlock.GetAttribute("value_type");
|
||||
if (!int.TryParse(attrOffset, out var result))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
ioBlockItem.Offset = result;
|
||||
if (int.TryParse(attribute3, out result))
|
||||
if (int.TryParse(attrSize, out result))
|
||||
{
|
||||
ioBlockItem.Size = result;
|
||||
switch (attribute.ToLower())
|
||||
switch (attrType.ToLower())
|
||||
{
|
||||
case "ai":
|
||||
ioBlockItem.Type = IoType.AI;
|
||||
|
@ -209,15 +209,15 @@ namespace MECF.Framework.RT.Core.IoProviders
|
|||
}
|
||||
if (ioBlockItem.Type == IoType.AI || ioBlockItem.Type == IoType.AO)
|
||||
{
|
||||
ioBlockItem.AIOType = ((string.IsNullOrEmpty(attribute4) || attribute4.ToLower() != "float") ? typeof(short) : typeof(float));
|
||||
ioBlockItem.AIOType = ((string.IsNullOrEmpty(attrValueType) || attrValueType.ToLower() != "float") ? typeof(short) : typeof(float));
|
||||
}
|
||||
list.Add(ioBlockItem);
|
||||
}
|
||||
}
|
||||
string ioModule = xmlElement.GetAttribute("map_module").Trim();
|
||||
string text5 = xmlElement.GetAttribute("map_file").Trim();
|
||||
FileInfo fileInfo = new FileInfo(xmlConfigFile);
|
||||
string ioMappingPathFile = fileInfo.Directory.FullName + "\\" + text5;
|
||||
var ioModule = xmlElement.GetAttribute("map_module").Trim();
|
||||
var ioMapFileName = xmlElement.GetAttribute("map_file").Trim();
|
||||
var fileInfo = new FileInfo(xmlConfigFile);
|
||||
var ioMappingPathFile = fileInfo.Directory.FullName + "\\" + ioMapFileName;
|
||||
ioProvider.Initialize(moduleName, providerName, list, Singleton<IoManager>.Instance, nodeParameter, ioMappingPathFile, ioModule);
|
||||
ioProvider.Start();
|
||||
}
|
||||
|
@ -232,7 +232,7 @@ namespace MECF.Framework.RT.Core.IoProviders
|
|||
{
|
||||
try
|
||||
{
|
||||
foreach (IIoProvider provider in _providers)
|
||||
foreach (var provider in _providers)
|
||||
{
|
||||
provider.Stop();
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ namespace MECF.Framework.RT.Core.IoProviders
|
|||
{
|
||||
try
|
||||
{
|
||||
foreach (IIoProvider provider in _providers)
|
||||
foreach (var provider in _providers)
|
||||
{
|
||||
provider.Reset();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue