示例#1
0
 public static Config GetConfig(string options)
 {
     var document = GetDocument(options);
     var configNames = new []
         {
             AsciiConfig.Name,
             AsciiViaTcpConfig.Name,
             RtuConfig.Name,
             RTUviaTCPConfig.Name,
             TcpConfig.Name
         };
     var rootTagName = document.ChildNodes.OfType<XmlNode>()
         .First(n => configNames.Contains(n.Name))
         .Name;
     Config config;
     switch (rootTagName)
     {
         case AsciiConfig.Name:
             config = new AsciiConfig();
             break;
         case AsciiViaTcpConfig.Name:
             config = new AsciiViaTcpConfig();
             break;
         case RtuConfig.Name:
             config = new RtuConfig();
             break;
         case RTUviaTCPConfig.Name:
             config = new RTUviaTCPConfig();
             break;
         case TcpConfig.Name:
             config = new TcpConfig();
             break;
         default:
             throw new NotSupportedException(rootTagName);
     }
     config.SetDocument(document);
     return config;
 }
 private void UpdateConfig()
 {
     switch (ConfigType)
     {
         case ConfigType.Ascii:
             if (AsciiConfig == null)
             {
                 Config = new AsciiConfig();
             }
             break;
         case ConfigType.AsciiViaTcp:
             if (AsciiViaTcpConfig == null)
             {
                 Config = new AsciiViaTcpConfig();
             }
             break;
         case ConfigType.Rtu:
             if (RtuConfig == null)
             {
                 Config = new RtuConfig();
             }
             break;
         case ConfigType.RtuViaTcp:
             if (RtuViaTcpConfig == null)
             {
                 Config = new RTUviaTCPConfig();
             }
             break;
         case ConfigType.Tcp:
             if (TcpConfig == null)
             {
                 Config = new TcpConfig();
             }
             break;
         default:
             throw new NotSupportedException(ConfigType.ToString());
     }
 }