below I report my overrides
public override AFDataReferenceMethod SupportedMethods
return AFDataReferenceMethod.GetValue | AFDataReferenceMethod.GetValues;
public override AFDataMethods SupportedDataMethods
Have I to add something else?
Might be a typo but can you verify that your SupportedDataMethods getter is:
It should be base instead of this.
I turned this in base but I always read "NO DATA" in coresight
I would like to make sure your data reference performs as to be expect in PSE.
It helps to understand that the DefaultSupportedDataMethods include:
Which means that your data reference must implement each individual method or else just use the base implementation. Using the base is normally quite easy and requires no extra lines of code. What this means then is that every event recorded for the input attributes will result in an output event.
The problem I see is in the description of your DR. You say your DR filters the input attribute. In that case, your output can have fewer values than the input, which means you really shouldn't use the base but instead code your own implementation for the RDA methods.
Putting RDA aside for the moment, let's look at simple non-RDA GetValue and GetValues. You say Attribute2 has the correct filtered value when viewed in PSE. I suspect you have not looked at the Time Series data for Attribute2 with PSE. I would ask for you to do that. Navigate to the attribute in question, right-click on it, choose Time Series Data. When the popup dialog appears, choose Reytrieval Type: Time Range and Boundary Type: Interpolated. Pick a suitable time range. This issues a GetValues call. Review the returned data set and see if that matches what you expect.
Turning back to GetValue ... just because it has the right value in PSE doesn't mean your code is right. It may work perfectly fine for the latest value, i.e. when invoked as GetValue(), but may not work well when a time in passed in, i.e. GetValue(time). You need to thoroughly test your DR by passing in times. You may want to try passing in a known input time, as well as passing in a time somewhere between 2 known input times. I'd even pass in a time before the first ever recorded input time.
I ve looked at the Time Series data for Attribute2 with PSE and the returned data matched in time with which I expect.
Each sample is filtered and changhing time I can see the correct filtered value in PSE.
What version of Coresight are you using?
I am admittedly weak with Coresight and hope that someone else can offer help.
I've done some searches and gotten a few hits. Though the hits refer to issues when upgrading from 2013 to 2014, perhaps they could point you in the right direction particularly with your PI DS settings.
I've seen some notes that some default PI DS settings were missing when upgrading from older versions:
<add key="RtBaselineVersion" value="18.104.22.168" />
<add key="RtBaselineConfigModule" value="" />
<add key="PIOLEDBConnectionLimit" value="4" />
<add key="PIBatchCacheInterval" value="0" />
<add key="PIOLEDBConnectionString" value="Provider=PIOLEDB.1;Data Source=test;Session ID=-1;Initial Catalog=piarchive;Integrated Security = SSPI;Time Zone=UTC;Support PI Wildcards=TRUE" />
<add key="PIBatchConnectionTimeout" value="120" />
<add key="piinstrumentationConfigFile" value="C:\ProgramData\OSIsoft\Coresight\PIInstrumentation.config" />
And for some users who upgraded from 2013, some other keys such as these listed below were missing:
Have you tried testing this in another client tool such as PI DataLink? This would allow you to further determine if the problem is in the actual data reference code itself, or if it is a Coresight specific issue.