Skip to content

3. General Info

Andy Frank edited this page Aug 8, 2024 · 1 revision

This document covers implementation details specific to Niagara.

How are Sources defined?

The Jasper protocol uses a two-tier concept of Sources and Points, where points exist under a specific Source.

In the Niagara implementation, a source is any parent BComponent of any control point. Sibling points are grouped together under their shared parent component. Sources are identified by the handleOrd of the parent component, and points are referenced using their relative slot:

BComponent Tree                  Jaspser Source
---------------                  -------------
Foo [BFolder]                    Foo (id=5e23)
  PointA [BNumericWritable]        av.PointA
  PointB [BNumericWritable]        av.PointB
  PointC [BBooleanWritable]        bv.PointC    

This design allows components to be moved inside a Station without breaking external connectivity. Using relative points allows external systems to use reusable tooling similar to how Niagara works.

For proxy points that are ungrouped under a driver network, where the direct parent would be "Points", the indexer will walk up one level and use the BDevice as the parent source. This generally works to model the available sources to match what sits underneath the Niagara instance.

Sources are automatically created when the JasperService indexes the station.

Clone this wiki locally