developer.axis auto property


Jump to: navigation, search

Purpose: propose addition of auto property to dom axes that would explicitly control if the axis can/should be automatically set for autoranging. This would solve a problem where the vap files contains timerange that was autoranged for a dataset, but autoranging needs to be done because the dataset has changed. If the user doesn't change the range before saving the vap file, then it is marked as remaining in the automatic. Further, this may clean up some of the autoranging/syncing stuff that has always been a problem by adding more information.


  1. Use Cases
    1. looking at the tail of a streaming dataset
    2. VMO Omni product
    3. Autoplot internal bookkeeping
    4. Autorange on Scan
    5. Applet/Servlet API
  2. Proposal

1. Use Cases

1.1. looking at the tail of a streaming dataset

vap+dat:/home/jbf/temperatureMonitors/rm718.dat?tail=100 returns the last 100 measurements of a sensor. This is included in a vap file that has a stack of sensors. Autoplot reads in the vap, which will always contain a timeRange bacause the default 0 to 100 is rarely used. This makes the vap useless, because the timerange of the dataset is always updating.

1.2. VMO Omni product

Jan wants to have his VO dynamically produce vap files to display a stack of parameters. Presently he cannot use Autoplot to autorange the datasets after loading.

1.3. Autoplot internal bookkeeping

Autoplot currently uses registers in the panel controller to keep track of whether or not to do autoranging. When a new URI is entered, the panel controller gets the message and sets the flag resetRanges so that when the new dataset is loaded autoranging is done. When a vap file is loaded, we clear this flag, and hope that the flag is cleared before the data is finished loading. (This could be ensured with Mutex objects.) I suspect that having flags on each axis would really clean up this code.

1.4. Autorange on Scan

Bob has proposed that for long time series, Autoplot should re-autorange when the time axis is scanned to the next frame. This property would be useful in implementing this. Clearly sometimes it is useful to autorange on Y but not on X.

1.5. Applet/Servlet API

The applet and servlet API allow the user to autorange on Y but explicitly set X. Presently this requires that the data be downloaded outside of Autoplot's DataSourceController/PanelController mechanism to effectively bypass the 100% automatic mechanism.

2. Proposal

The Axis nodes get an additional property "autorange". What should its default setting be? If it is "false" by default then XMLEncoder will indicate in the vap file when it is set to "true" which is desirable because it's consistent with legacy vaps. Also a good rule of thumb is to be conservative with "auto" features that take control from the user.

What about Autolabelling? How does it relate to this?

Personal tools