Ejemplo n.º 1
0
        private EMSLoadFlowNodeRecord CreateEMSLoadFlowNodeRecord(HierarchicalFilter hierarchyTree, long id)
        {
            EMSLoadFlowNodeRecord  rec = new EMSLoadFlowNodeRecord();
            HierarchicalRecordData recordData;

            if (!hierarchicalRecordData.TryGetValue(id, out recordData))
            {
                DMSLogger.Log(DMSLogger.LogLevel.DebugLog, "[EMSLoadFlow]: Record { 0:X} does not exists in hierarchical record data dictionary.", id);
                return(rec);
            }
            if (recordData.Name != null && !recordData.Name.Equals(string.Empty))
            {
                rec.Title = string.Format("{0}", recordData.Name);
            }
            else
            {
                rec.Title = string.Empty;
            }
            rec.Lid   = id;
            rec.Level = (byte)hierarchyTreeFilter.GetNodeByLid(id).Level;
            EMSLoadFlowRecordBean data = recordData as EMSLoadFlowRecordBean;

            if (data != null && (DMSType)ModelCodeHelper.ExtractTypeFromGlobalId(id) == DMSType.BUSNODE)
            {
                rec.Voltage      = data.Voltage;
                rec.VoltageLevel = data.VoltageLevel;
                rec.PNode        = data.PNode;
            }
            return(rec);
        }
Ejemplo n.º 2
0
        private List <EMSLoadFlowNodeRecord> CreateEMSLoadFlowNodeRecords()
        {
            List <EMSLoadFlowNodeRecord> records = new List <EMSLoadFlowNodeRecord>();

            try
            {
                List <long> gids = GetElementsForSelectedCircuits(selectedRecords, ModelCode.BUSNODERESULTSTA, ModelCode.TARESVAL_PARENTCIRCUIT);
                FillEMSLoadFlowNodeProperties(gids);
                GetElementsNames(gids);
                foreach (long id in selectedRecords)
                {
                    EMSLoadFlowNodeRecord circuitRecord = CreateEMSLoadFlowNodeRecord(hierarchyTreeFilter, id);
                    records.Add(circuitRecord);
                    if (hierarchyTreeFilter.GetNodeByLid(id).Children == null)
                    {
                        continue;
                    }
                    foreach (HierarchicalFilterNode childNode in hierarchyTreeFilter.GetNodeByLid(id).Children)
                    {
                        if ((DMSType)ModelCodeHelper.ExtractTypeFromGlobalId(childNode.Lid) != DMSType.BUSNODE)
                        {
                            continue;
                        }
                        MeasurementValueQuality lfQuality;
                        if (!lfMeasureQuality.TryGetValue(id, out lfQuality) || CheckIsLFStatusDisabled(lfQuality))
                        {
                            continue;
                        }
                        records.Add(CreateEMSLoadFlowNodeRecord(hierarchyTreeFilter, childNode.Lid));
                    }
                }
            }
            catch (Exception)
            {
                DMSLogger.Log(DMSLogger.LogLevel.Error, "[EMSLoadFlow]: Error occurred while creating EMSLoadFlowNode records.");
                throw;
            }
            return(records);
        }