APP 601 last reported timestamp midnight

While checking some devices for time issues, I noticed that most of our APP 601 were showing the last report time as midnight tomorrow. Is this a known issue with APP devices?

-Andrew

Hi Andrew - do you still see this happening? What screen does this show up on?

Yes, we’re still having issues with this. Devices 3, 4, and 5 are showing this issue, shown below, and 5 is an hour off (likely due to daylight saving time).

list /i

System Uptime: 5 days 22 hours 37 minutes 45 seconds

>> All defined adapters in Input Adapter Collection (XXX total)

    ID     Name
---------- --------------------------------------------------------------------
    2      XXX-DFR1
                 Up for 11.89 hours, 0 errors 10/31/2018 16:54:49.700 29.79 fps
    3      XXX-DFR1
                   Up for 5.94 days, 0 errors 11/01/2018 05:00:00.000 29.99 fps
    4      XXX-DFR1
                   Up for 5.94 days, 0 errors 11/01/2018 05:00:00.000 30.19 fps
    5      XXX-DFR1
                   Up for 5.94 days, 0 errors 11/01/2018 06:00:00.000 29.59 fps
    6      XXX-PMU
                   Up for 3.02 days, 0 errors 03/17/1999 16:54:50.800 29.99 fps

Code error is here:

        protected void ExtractFrameMeasurements(IDataFrame frame)
        {
            const int AngleIndex = (int)CompositePhasorValue.Angle;
            const int MagnitudeIndex = (int)CompositePhasorValue.Magnitude;
            const int FrequencyIndex = (int)CompositeFrequencyValue.Frequency;
            const int DfDtIndex = (int)CompositeFrequencyValue.DfDt;

            List<IMeasurement> mappedMeasurements = new List<IMeasurement>(m_lastMeasurementMappedCount);
            List<IMeasurement> deviceMappedMeasurements = new List<IMeasurement>();
            DeviceStatisticsHelper<ConfigurationCell> statisticsHelper;
            ConfigurationCell definedDevice;
            PhasorValueCollection phasors;
            AnalogValueCollection analogs;
            DigitalValueCollection digitals;
            IMeasurement[] measurements;
            long timestamp;
            int x, count;

            // Adjust time to UTC based on source time zone
            if (!m_timezone.Equals(TimeZoneInfo.Utc))
                frame.Timestamp = TimeZoneInfo.ConvertTimeToUtc(frame.Timestamp, m_timezone);

            // We also allow "fine tuning" of time for fickle GPS clocks...
            if (m_timeAdjustmentTicks.Value != 0)
                frame.Timestamp += m_timeAdjustmentTicks;

            // Get adjusted timestamp of this frame
            timestamp = frame.Timestamp;

            // Track latest reporting time for mapper
            if (timestamp > m_lastReportTime.Value)
                m_lastReportTime = timestamp;
            else
                m_outOfOrderFrames++;

This does no resonabilibity checking… One spurious frame with bad time holds the bad time…