I have two nodes sending data via pibufss, but only one at a time (manual redundancy). I want to put an indication in a ProcessBook display to show which node is sending data using VBA and the PI-SDK.
What callsgive me that information?
Are you monitoring the nodes with the PI Interface for Perfmon? You could monitor the PIBufss Total Events Sent/Sec counter for each node and come to a conclusion.
Otherwise you'd need something like PowerShell Tools to parse the network manager statistics to see which node is connected with the PIBufss process. Parsing PI Message Log files is another option that wouldn't in my opinion be reliable enough.
Is this an OSIsoft Interface? Does it possibly support UNIINT Interface Level failover phase 2? If so, the recommendation is to set up this redundant interface instance with phase 2 failover. The failover control tags allow you to monitor what source is actively sending data to PI but also to force a failover by overwriting the ActiveID e.g. using Archive Editor plug-in for PI System Management Tools (PI SMT).
In addition to what Rhys suggested OSIsoft Interfaces expose performance counter information you could use. Generally you can use PI Performance Monitor interface to collect e.g. ElapsedTime process counter for the sending process. This should work if your manual failover implies stopping the inactive instance. You will than get "I/O Timeout" for the process that is not actively running. Again with UNIINT based interfaces you could use the information from I/O Rate tag but I doubt this information would fit your requirements because it's only updated every 10 minutes.
Retrieving data ...