;+
; Project     :	SOHO - CDS
;
; Name        :	GET_SLITN_DELAY
;
; Purpose     :	Calculates the time in millisecond units for a slit number movement
;
; Explanation :	Uses delay = constant + rate*no. of steps
;
; Use         : <delay = get_slitn_delay( slitn_start, slitn_end )>
;
; Inputs      : slitn_start = slitn start position;
;               slitn_end   = slitn end position.
;
; Opt. Inputs : None.
;
; Outputs     : delay = delay in ms units;
;
; Opt. Outputs:	None.
;
; Keywords    : None.
;
; Calls       :	cp_get_entry.
;                
; Common      :	None.
;
; Restrictions:	None.
;
; Side effects:	None.
;
; Category    :	Command preparation.
;
; Prev. Hist. :	None.
;
; Written     :	Version 0.0, Martin Carter, RAL, 6/3/95
;
; Modified    :	Version 0.1, MKC, 21/4/95
;                            Removed maximum flag.
;               Version 0.2, MKC, 24/5/95.
;                            Changed definition of invalid slitn_start.
;                            Changed output to LONG.
;               Version 0.3, MKC, 14/8/95
;                            Adapted to use CDHS state database
;               Version 0.4, MKC, 7/11/95
;                            Used cp_get_entry
;               Version 0.5, 5/12/95
;                            Modified state database indices.
;               Version 0.6, 3 May 1996, Zarro (GSFC), added common block 
;                            for speed.
; Version     :	Version 0.6
;-
;**********************************************************

FUNCTION get_slitn_delay, slitn_start, slitn_end

common get_slitn_delay,ss,ss1

  ; get slit number delay

  if n_elements(ss) eq 0 then ss = cp_get_entry ( 'CB2LAT', [11,12] )

  const = ss(0).active  ; slitn const delay
  rate  = ss(1).active  ; slitn rate  delay

  ; get ops home position


  if n_elements(ss1) eq 0 then ss1 = cp_get_entry ( 'CB2POSN', [4] ) 

  ; constants

  slitn_home  = ss1(0).active ; slit number home position

  ; work out delay
  ; assume for now in home position if not defined

  IF slitn_start GE 1 AND slitn_start LE 7 THEN $
    no_of_steps = ABS(slitn_end - slitn_start) ELSE $
    no_of_steps = ABS(slitn_end - slitn_home)

  delay = const + rate*no_of_steps

  ; return delay in ms units

  RETURN, delay

END
