コード例 #1
0
            public FaultSummarizer(double systemFrequency)
            {
                FaultGroupTable   = new FaultLocationData.FaultGroupDataTable();
                FaultSegmentTable = new FaultLocationData.FaultSegmentDataTable();
                FaultCurveTable   = new FaultLocationData.FaultCurveDataTable();
                FaultSummaryTable = new FaultLocationData.FaultSummaryDataTable();

                m_faultGroupList   = new List <Tuple <Tuple <int, DateTime, DateTime>, FaultLocationData.FaultGroupRow> >();
                m_faultSegmentList = new List <Tuple <EventKey, FaultLocationData.FaultSegmentRow> >();
                m_faultCurveList   = new List <Tuple <EventKey, FaultLocationData.FaultCurveRow> >();
                m_faultSummaryList = new List <Tuple <EventKey, FaultLocationData.FaultSummaryRow> >();

                m_systemFrequency = systemFrequency;
            }
コード例 #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection conn = null;
        SqlDataReader rdr  = null;

        if (!IsPostBack)
        {
            if (Request["eventId"] != null)
            {
                postedEventId = Request["eventId"];

                using (EventTypeTableAdapter eventTypeAdapter = new EventTypeTableAdapter())
                    using (EventTableAdapter eventAdapter = new EventTableAdapter())
                        using (MeterInfoDataContext meterInfo = new MeterInfoDataContext(connectionstring))
                            using (FaultSummaryTableAdapter summaryInfo = new FaultSummaryTableAdapter())
                            {
                                try
                                {
                                    eventAdapter.Connection.ConnectionString     = connectionstring;
                                    eventTypeAdapter.Connection.ConnectionString = connectionstring;
                                    summaryInfo.Connection.ConnectionString      = connectionstring;
                                    MeterData.EventRow theevent = eventAdapter.GetDataByID(Convert.ToInt32(postedEventId)).First();
                                    FaultLocationData.FaultSummaryDataTable thesummarydatatable = summaryInfo.GetDataBy(Convert.ToInt32(postedEventId));

                                    FaultLocationData.FaultSummaryRow thesummary = thesummarydatatable
                                                                                   .OrderBy(row => row.IsSuppressed)
                                                                                   .ThenByDescending(row => row.IsSelectedAlgorithm)
                                                                                   .ThenBy(row => row.Inception)
                                                                                   .FirstOrDefault();

                                    if ((object)thesummary == null)
                                    {
                                        postedFaultType             = "Invalid";
                                        postedInceptionTime         = "Invalid";
                                        postedDurationPeriod        = "Invalid";
                                        postedFaultCurrent          = "Invalid";
                                        postedDistanceMethod        = "Invalid";
                                        postedSingleEndedDistance   = "Invalid";
                                        postedDeltaTime             = "Invalid";
                                        postedDoubleEndedDistance   = "Invalid";
                                        postedDoubleEndedConfidence = "Invalid";
                                        return;
                                    }

                                    postedFaultType           = thesummary.FaultType;
                                    postedInceptionTime       = thesummary.Inception.TimeOfDay.ToString();
                                    postedDurationPeriod      = (thesummary.DurationSeconds * 1000).ToString("##.###", CultureInfo.InvariantCulture) + "msec (" + thesummary.DurationCycles.ToString("##.##", CultureInfo.InvariantCulture) + " cycles)";
                                    postedFaultCurrent        = thesummary.CurrentMagnitude.ToString("####.#", CultureInfo.InvariantCulture) + " Amps (RMS)";
                                    postedDistanceMethod      = thesummary.Algorithm;
                                    postedSingleEndedDistance = thesummary.Distance.ToString("####.###", CultureInfo.InvariantCulture) + " miles";
                                    double deltatime = (thesummary.Inception - theevent.StartTime).Ticks / 10000000.0;
                                    postedDeltaTime = deltatime.ToString();

                                    postedStartTime = theevent.StartTime.TimeOfDay.ToString();

                                    Meter themeter = meterInfo.Meters.Single(m => m.ID == theevent.MeterID);

                                    postedMeterName = themeter.Name + " - " + themeter.AssetKey;
                                    postedMeterId   = theevent.MeterID.ToString();

                                    conn = new SqlConnection(connectionstring);
                                    conn.Open();
                                    SqlCommand cmd = new SqlCommand("dbo.selectDoubleEndedFaultDistanceForEventID", conn);
                                    cmd.CommandType = CommandType.StoredProcedure;
                                    cmd.Parameters.Add(new SqlParameter("@EventID", postedEventId));
                                    cmd.CommandTimeout = 300;
                                    rdr = cmd.ExecuteReader();

                                    if (rdr.HasRows)
                                    {
                                        while (rdr.Read())
                                        {
                                            postedDoubleEndedDistance   = ((double)rdr["Distance"]).ToString("####.###", CultureInfo.InvariantCulture) + " miles";
                                            postedDoubleEndedConfidence = ((double)rdr["Angle"]).ToString("####.####", CultureInfo.InvariantCulture) + " degrees";
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    postedExceptionMessage = ex.Message;
                                }
                                finally
                                {
                                    if (rdr != null)
                                    {
                                        rdr.Dispose();
                                    }

                                    if (conn != null)
                                    {
                                        conn.Dispose();
                                    }
                                }
                            }
            }
        }
    }
コード例 #3
0
ファイル: OpenSEE.aspx.cs プロジェクト: lulzzz/openSEE
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request["eventId"] != null)
            {
                if (Request["faultcurves"] != null)
                {
                    postedShowFaultCurves = Request["faultcurves"];
                }

                if (Request["breakerdigitals"] != null)
                {
                    postedShowBreakerDigitals = Request["breakerdigitals"];
                }

                postedURLQueryString = string.Concat(Request.QueryString.AllKeys
                                                     .Where(key => !key.Equals("eventId", StringComparison.OrdinalIgnoreCase))
                                                     .Select(key => "&" + HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(Request.QueryString[key])));

                postedEventId = Request["eventId"];

                using (DbAdapterContainer dbAdapterContainer = new DbAdapterContainer(connectionString))
                {
                    try
                    {
                        EventTypeTableAdapter    eventTypeAdapter   = dbAdapterContainer.GetAdapter <EventTypeTableAdapter>();
                        EventTableAdapter        eventAdapter       = dbAdapterContainer.GetAdapter <EventTableAdapter>();
                        MeterInfoDataContext     meterInfo          = dbAdapterContainer.GetAdapter <MeterInfoDataContext>();
                        FaultSummaryTableAdapter summaryInfo        = dbAdapterContainer.GetAdapter <FaultSummaryTableAdapter>();
                        DisturbanceTableAdapter  disturbanceAdapter = dbAdapterContainer.GetAdapter <DisturbanceTableAdapter>();

                        MeterData.EventRow theevent = eventAdapter.GetDataByID(Convert.ToInt32(postedEventId)).First();

                        JavaScriptSerializer serializer = new JavaScriptSerializer();

                        postedSeriesList = serializer.Serialize(signalService.GetFlotInfo(theevent.ID));

                        postedMeterId           = theevent.MeterID.ToString();
                        postedDate              = theevent.StartTime.ToShortDateString();
                        postedEventId           = theevent.ID.ToString();
                        postedEventDate         = theevent.StartTime.ToString("yyyy-MM-dd HH:mm:ss.fffffff");
                        postedEventMilliseconds = theevent.StartTime.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString();
                        postedMeterName         = meterInfo.Meters.Single(m => m.ID == theevent.MeterID).Name;

                        MeterData.EventTypeDataTable eventTypes = eventTypeAdapter.GetData();

                        postedAdjacentEventIds = GetPreviousAndNextEventIds(theevent.ID, dbAdapterContainer.Connection);

                        postedLineName = meterInfo.MeterLines.Where(row => row.LineID == theevent.LineID)
                                         .Where(row => row.MeterID == theevent.MeterID)
                                         .Select(row => row.LineName)
                                         .FirstOrDefault() ?? "";

                        postedLineLength = meterInfo.Lines
                                           .Where(row => row.ID == theevent.LineID)
                                           .Select(row => row.Length)
                                           .AsEnumerable()
                                           .Select(length => length.ToString())
                                           .FirstOrDefault() ?? "";

                        postedEventName = eventTypes
                                          .Where(row => row.ID == theevent.EventTypeID)
                                          .Select(row => row.Name)
                                          .DefaultIfEmpty("")
                                          .Single();

                        if (postedEventName.Equals("Fault"))
                        {
                            FaultLocationData.FaultSummaryDataTable thesummarydatatable = summaryInfo.GetDataBy(Convert.ToInt32(postedEventId));

                            FaultLocationData.FaultSummaryRow thesummary = thesummarydatatable
                                                                           .Where(row => row.IsSelectedAlgorithm == 1)
                                                                           .OrderBy(row => row.IsSuppressed)
                                                                           .ThenBy(row => row.Inception)
                                                                           .FirstOrDefault();

                            if ((object)thesummary != null)
                            {
                                postedStartTime      = thesummary.Inception.TimeOfDay.ToString();
                                postedDurationPeriod = thesummary.DurationCycles.ToString("##.##", CultureInfo.InvariantCulture) + " cycles";
                                postedMagnitude      = thesummary.CurrentMagnitude.ToString("####.#", CultureInfo.InvariantCulture) + " Amps (RMS)";
                            }
                        }
                        else if (new[] { "Sag", "Swell" }.Contains(postedEventName))
                        {
                            MeterData.DisturbanceDataTable disturbanceTable = disturbanceAdapter.GetDataBy(theevent.ID);

                            MeterData.DisturbanceRow disturbance = disturbanceTable
                                                                   .Where(row => row.EventTypeID == theevent.EventTypeID)
                                                                   .OrderBy(row => row.StartTime)
                                                                   .FirstOrDefault();

                            if ((object)disturbance != null)
                            {
                                postedStartTime      = disturbance.StartTime.TimeOfDay.ToString();
                                postedDurationPeriod = disturbance.DurationCycles.ToString("##.##", CultureInfo.InvariantCulture) + " cycles";

                                if (disturbance.PerUnitMagnitude != -1.0e308)
                                {
                                    postedMagnitude = disturbance.PerUnitMagnitude.ToString("N3", CultureInfo.InvariantCulture) + " pu (RMS)";
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        postedErrorMessage = ex.Message;
                    }
                }
            }
        }
    }