Closed alexrobin closed 2 years ago
One way of implementing this would be the following steps:
Add result property to ICommandStatus
so that a system can associate one or more observations to a status report. This can be the initial status report returned synchronously or any subsequent status reports sent asynchronously. Note that including obs to the initial status report would allow a process to produce its result synchronously.
Store associated obs either in an existing Datastream or in a dedicated per-task datastream (in a separate obs store = ICommandResultStore
?). This would depend if obs was also published to a Datastream event channel or only to the command status channel. Per-task datastreams would not be exposed via API directly.
When observations are also published to a regular Datastream, only references are kept in the per-task obs store (need specific IObsData implementation).
Sometimes, observations are associated to a particular task/command.
We can extend
ICommandStatus
to include a result consisting of one or more observations (or observation references).Results can be made accessible via SPS
DescribeResultAccess
and SWE API route/commands/{id}/result
or/commands/{id}/observations
. The SWE API route can report full observations (like a regular datastream), described by a separate schema.