

Each Detector should include:
    _mode attribute

    def ContinuousMode(self, dwelltime=None, numframes=None):

    def ScalerMode(self, dwelltime=1.0, numframes=1):
    def ROIMode(self, dwelltime=1.0, numframes=1):
    def NDArrayMode(self, dwelltime=0.25, numframes=16384, **kws):

    def SetDwelltime(self, dwelltime, **kws):

    def Arm(self,  mode=None, wait=False):
    def DisArm(self, mode=None, wait=False):
    def Start(self, mode=None, wait=False):
    def Stop(self, mode=None, wait=False):

    def SaveArrayData(self, filename=None):


Every Scan should have a "detector mode", one of "Scaler",  "ROI", or  "NDArray".

Every Detector needs to define each mode, though some may be duplicates.

On loading Detectors for a Scan, the "mode" must be set, which will call
the corresponding detectors  XMode() method.

get_detector() should take both "rois" and "mode" and pass on to
Detector.__initi().

  Each Detector.__init__() should also take "mode" and
"rois", and set self._mode appropriately, and overwrite XXMode() methods.
