Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  •             self.timestamp_pv    = epics.PV(pv_name+':Image:TimeStamp_RBV', auto_monitor=True)
                self.arraydata_pv    = epics.PV(pv_name+':Image:ArrayData')

                # size of the image
                #self.numpix_x_pv    = epics.PV(pv_name+':ROI:ArraySizeX_RBV')
                #self.numpix_y_pv    = epics.PV(pv_name+':ROI:ArraySizeY_RBV')
                self.numpix_x_pv    = epics.PV(pv_name+':Image:ArraySize0_RBV')
                self.numpix_y_pv    = epics.PV(pv_name+':Image:ArraySize1_RBV')

                #self.acquire_pv    = epics.PV(pv_name+':ROI:Acquire_RBV')
                self.is_rotated_pv    = epics.PV(pv_name+':IS_ROTATED')
                self.x_orient_pv    = epics.PV(pv_name+':X_ORIENT')
                self.y_orient_pv    = epics.PV(pv_name+':Y_ORIENT')

  • Reshape: camdata.data                        = new_data.reshape((numpix_y,numpix_x))

Timing

We performed a timing test of the PV readout. We used the EPICS address 'CAMR:LI20:107:Image:ArrayData', which is the data array of the camera image.

  • caget() → 6.95 ms ± 102 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
  • pv.get() → 6.87 ms ± 54 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
  • pv.value → 328 ns ± 11.4 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
  • → pv.value should be used for fast readout