public AxisProperties() { Active = false; Show = false; AxisKind = AxisKinds.Angular; AxisId = 0; SeriesIndex = 0; ParamIndex = 0; DeviceNumber = 0; DeviceRank = 0; MinusStop = 0.0f; MinusStop = 0.0f; DeviceId = "None"; Description = "Axis 0"; AxisState = AxisStateKinds.AxisStateNotReady; ActualSeries = null; TargetSeries = null; DataCacheOffset = 0; DataPVTOffset = 0; AxisPortPropertiesIndex = 0; }
// This is called every time axis options change. public void SetupSeriesConfiguration() { ResetCache(); ResetSeries(); ChartPlotModel.Series.Clear(); foreach (AxisProperties ap in Recorder.AxisOptions) { // Note: series are installed in reverse order so that actual draws on top of signal. RecorderSignalLineSeries st = new RecorderSignalLineSeries(this, ChartCache, ap.SeriesIndex + 1); st.LineStyle = LineStyle.Solid; st.Title = ap.Description + " signal"; ChartPlotModel.Series.Add(st); ap.TargetSeries = st; // RecorderAngularLineSeries sa = new RecorderAngularLineSeries(this, ChartCache, ap.SeriesIndex + 0); sa.LineStyle = LineStyle.Solid; sa.Title = ap.Description + " position"; ChartPlotModel.Series.Add(sa); ap.ActualSeries = sa; // SetAxisVisibility(ap); } }