Beispiel #1
0
        private List <OPCGroupConfig> GetOPCGroupsConfig(XmlNode opcServerNode)
        {
            List <OPCGroupConfig> groups = new List <OPCGroupConfig>();

            foreach (XmlNode opcGroupNode in opcServerNode.ChildNodes)
            {
                OPCGroupConfig group = GetOPCGroupConfig(opcGroupNode);
                if (group != null)
                {
                    groups.Add(group);
                }
            }

            return(groups);
        }
Beispiel #2
0
        private OPCGroupConfig GetOPCGroupConfig(XmlNode opcGroupNode)
        {
            if (opcGroupNode == null)
            {
                return(null);
            }

            OPCGroupConfig group = new OPCGroupConfig();

            group.GroupName    = opcGroupNode.Attributes["groupname"].Value;
            group.IsActive     = opcGroupNode.Attributes["isactive"].Value == "1";
            group.IsSubscribed = opcGroupNode.Attributes["issubscribed"].Value == "1";
            group.AutoInsert   = opcGroupNode.Attributes["autoinsert"].Value == "1";
            float deadband = 0;

            group.Deadband = float.TryParse(opcGroupNode.Attributes["deadband"].Value, out deadband) && deadband >= 0
                ? deadband : 0;
            int updateRate = 0;

            group.UpdateRate = int.TryParse(opcGroupNode.Attributes["updaterate"].Value, out updateRate) && updateRate > 0
                ? updateRate : 1000;
            int timeoutsetting = 0;

            group.TimeoutSetting = int.TryParse(opcGroupNode.Attributes["timeoutsetting"].Value, out timeoutsetting) && timeoutsetting >= 0
                ? timeoutsetting : 0;

            foreach (XmlNode node in opcGroupNode.ChildNodes)
            {
                switch (node.LocalName)
                {
                case "opcitems":
                    List <string> opcItems = GetOPCGroupItems(node);
                    foreach (string opcItem in opcItems)
                    {
                        group.OPCItems.Add(opcItem);
                    }
                    break;

                case "database-connection":
                    OPCGroupDatabaseConnectionConfig dbConnConfig = GetOPCDBConnectionConfig(node);

                    group.DBConnection.DatabaseType     = dbConnConfig.DatabaseType;
                    group.DBConnection.ServerName       = dbConnConfig.ServerName;
                    group.DBConnection.DatabaseName     = dbConnConfig.DatabaseName;
                    group.DBConnection.UserName         = dbConnConfig.UserName;
                    group.DBConnection.Password         = dbConnConfig.Password;
                    group.DBConnection.NewDataTable     = dbConnConfig.NewDataTable;
                    group.DBConnection.HistoryDataTable = dbConnConfig.HistoryDataTable;

                    group.DBConnection.Fields.Clear();
                    foreach (OPCGroupDatabaseFieldConfig field in dbConnConfig.Fields)
                    {
                        group.DBConnection.Fields.Add(field);
                    }
                    break;

                default:
                    break;
                }
            }

            return(group);
        }