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
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…