diff --git a/plugins/XPSSpectrum.java b/plugins/XPSSpectrum.java index 1447a918..9e03354c 100644 --- a/plugins/XPSSpectrum.java +++ b/plugins/XPSSpectrum.java @@ -71,6 +71,7 @@ public class XPSSpectrum extends Panel { } }); + //Component persistence ArrayList persistedComponents = new ArrayList<>(); persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JToggleButton.class))); @@ -114,10 +115,13 @@ public class XPSSpectrum extends Panel { scienta.getCurrentChannel().addListener(progressListener); dvpAcqTime.setDevice(scienta.getAcquisitionTime()); startTimer(500, 100); + + //Setting data so cam define ranges for detailed without initial + LinePlotSeries series = new LinePlotSeries("Data"); + rangeSelectionPanel.setSeries(series); + series.setData(new double[]{valueLow.getValue(), valueHigh.getValue()}, new double[]{Double.NaN,Double.NaN}); } - - - + @Override public void onStateChange(State state, State former) { setEnabled(state == State.Ready); diff --git a/script/XPSSpectrum.py b/script/XPSSpectrum.py index 83eca774..5246a2bb 100644 --- a/script/XPSSpectrum.py +++ b/script/XPSSpectrum.py @@ -84,14 +84,19 @@ spectrum_series = p.getSeries(0) p.getAxis(p.AxisId.X2).setLabel("binding energy") -ephot = Eph.take(100) -elo = Scienta.lowEnergy.take(100) -ehi = Scienta.highEnergy.take(100) -workfunc = 4.5 -if ephot is not float or ephot < 0.: - ephot = ehi -eb1 = ephot - elo - workfunc -eb2 = ephot - ehi - workfunc +def get_binding_range(): + ephot = Eph.take(100) + elo = Scienta.lowEnergy.take(100) + ehi = Scienta.highEnergy.take(100) + workfunc = 4.5 + if ephot is not float or ephot < 0.: + ephot = ehi + eb1 = ephot - elo - workfunc + eb2 = ephot - ehi - workfunc + return eb2, eb1 + + +eb2, eb1 = get_binding_range() plots[0].getAxis(p.AxisId.X2).setRange(eb2, eb1) # @@ -133,6 +138,12 @@ def plot_cur_spectrum(): x = Scienta.spectrumX spectrum_series.setData(x, y) #set_online_spectrum_x2_range() + + eb2, eb1 = get_binding_range() + if True: #(plots[0].getAxis(p.AxisId.X2).min != eb2) or (plots[0].getAxis(p.AxisId.X2).max != eb1): + + plots[0].getAxis(p.AxisId.X2).setRange(eb2, eb1) + time.sleep(1.0) finally: print "Stopping spectrum plotting" @@ -154,6 +165,10 @@ try: Scienta.stepTime.write(vars[0]) Scienta.stepSize.write(vars[1]) Scienta.setIterations(1) + + eb2, eb1 = get_binding_range() + plots[0].getAxis(p.AxisId.X2).setRange(eb2, eb1) + set_adc_averaging() @@ -185,9 +200,10 @@ try: xdata = Scienta.spectrumX p.getSeries(0).setData(xdata, ydata) + """ # adjust the binding energy scale # if Eph returns an invalid number, we take energy_high as photon energy - #eb_axis = p.chart.plot.getDomainAxis(1) + eb_axis = p.chart.plot.getDomainAxis(1) ephot = Eph.take(100) elo = Scienta.lowEnergy.take(100) ehi = Scienta.highEnergy.take(100) @@ -196,7 +212,9 @@ try: ephot = ehi eb1 = ephot - elo - workfunc eb2 = ephot - ehi - workfunc - #eb_axis.setRange(eb2, eb1) + eb_axis.setRange(eb2, eb1) + """ + eb2, eb1 = get_binding_range() p.getAxis(p.AxisId.X2).setRange(eb2, eb1) if save_scienta_image: