All events stored by a PI Server can have an annotation associated with them. They are usually strings with some kind of relevant comment about the event, but they can also contain structured data. The majority of events stored in PI Servers have no annotations. Even when they are present, most of our applications don't actually retrieve them unless you ask.
We are struggling with the best way to expose annotations through the PI Web Services. In the current CTP, there is no support for them at all. We are considering these options:
- Create a separate web service to retrieve annotations. It would likely take the same Context argument as the normal data call. We would have to return timestamp and value as well so you know with which event the annotation is associated. This makes it pretty much the same as the regular data service.
- Add a nullable annotation object to the TimedValue. This means that any event returned by the normal data call could hold an annotation. We would add an "option code" to the parameter list so that you can tell the service whether you want annotations returned or not.
Whatever choice we make, we will add support for the "status flags" associated with each event. This is a set of booleans that tell you if an event is Questionable, has been Substituted or is Annotated. The last flag means you can find out if an annotation is present without retrieving it.