Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="lpResult" type="Itron.Metering.DeviceDataTypes.LoadProfileEnergyData">
        /// </param>
        /// <returns>
        ///     A Itron.Metering.Datafiles.TotalizationContributorList.TotalizationResult value...
        /// </returns>
        private TotalizationResult Totalize(out LoadProfileEnergyData lpResult)
        {
            lpResult = null;

            TotalizationResult Result = ValidateDataSources();

            if (Result == TotalizationResult.Success)
            {
                lpResult = new LoadProfileEnergyData(IntervalLength);

                // Add the appropriate number of channels
                for (int nChannelIndex = 0; nChannelIndex < NumProfileChannels; nChannelIndex++)
                {
                    // The channels will assume the same name as the first contributor
                    lpResult.AddChannel(m_lstDataSources[0].LPData.Channels[nChannelIndex].ChannelName,
                                        (float)1.0,
                                        (float)1.0);
                }

                // Next combine the load profile data from all the contributors
                foreach (LoadProfileDataSource ProfileContributor in m_lstDataSources)
                {
                    TotalizationDataSource contributor = ProfileContributor as TotalizationDataSource;

                    if (contributor != null)
                    {
                        TotalizeIntervalData(lpResult, contributor.LPData.EnergyData, contributor.Calculation);
                    }
                }
            }

            return(Result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// This method displays a user-readable error message for the given
        /// totalization result.
        /// </summary>
        /// <param name="Result" type="Itron.Metering.Datafiles.AggregratedProfileData.AggregationResult">
        /// </param>
        /// <remarks>
        ///  Revision History
        ///  MM/DD/YY Who Version Issue#        Description
        ///  -------- --- ------- ------------- -----------------------------------
        ///  08/28/08 MAH 9.50				    Created
        /// </remarks>
        public static String TranslateTotalizationError(TotalizationResult Result)
        {
            String strResult = "";

            switch (Result)
            {
            case TotalizationResult.DSTMismatch:
                strResult = "DST settings do not match";
                break;

            case TotalizationResult.IntervalLengthMismatch:
                strResult = "Interval lengths do not match";
                break;

            case TotalizationResult.NoContributors:
                strResult = "Some contributors do not contain load profile data";
                break;

            case TotalizationResult.QuantityMismatch:
                strResult = "Load profile channel quantities do not match";
                break;

            case TotalizationResult.NoCommonIntervalData:
                strResult = "A common date range does not exist between all contributors";
                break;

            default:
                strResult = Result.ToString();
                break;
            }

            return(strResult);
        }