;+
; PROJECT:
;           Solar-B EIS
;
; NAME:
;           EIS_READ_STATION_EVENTS
;
; PURPOSE:
;           This function reads JSide stev_yyyymmddpppp.evt files
;
; CATEGORY:
;           Planning, Science
;
; EXPLANATION:
;           This function reads the JSide station events files. It
;           collates an array of events structures, and those that
;           lie in the eis_mk_plan display period are returned.
;
; INPUTS:
;           start_time - eis_mk_plan display start time (TAI)
;           duration   - duration of the display period (hours)
;
; KEYWORDS:
;           None
;
; HISTORY:
;          v0.0 Written - August 2005 - John Rainnie, RAL
;          v0.1 6-Feb-2008 JAR
;              Filter out station events that occur only in the
;              eis_mk_plan display period.
;
;-
;______________________________________________________________________________
FUNCTION eis_read_station_events , start_time , duration , num_days= num_days

IF (N_ELEMENTS(num_days) EQ 0) THEN num_days = 3

disp_start_time = start_time
disp_stop_time  = start_time + (duration * 3600.)
; Get array of datestrings
ds = eis_create_datestring_array(start_time , duration,num_days = num_days)

; Get array of event fileNames - eg;
;/home/sstdljar/jar24/cmdpln/latest/stev_200610080001.evt
;/home/sstdljar/jar24/cmdpln/latest/stev_200610080002.evt
;/home/sstdljar/jar24/cmdpln/latest/stev_200610110001.evt
fileNames = eis_create_jside_filenames(ds,/STEV)

IF (STRLEN(fileNames[0]) EQ 0) THEN RETURN , 0

all_events = ''

; OK, read each file
FOR i = 0 , N_ELEMENTS(fileNames) - 1 DO BEGIN

    events = eis_read_file_station_events(fileNames[i])

    IF (N_TAGS(events) NE 0) THEN BEGIN

        CASE N_TAGS(all_events) OF
            0    : all_events = events
            ELSE : all_events = [all_events , events]
        ENDCASE

    ENDIF

ENDFOR

; JAR 6-Feb-2008
; Get events that (1) stop  after  disp_start_time
;             and (2) start before disp_stop_time

valid_events_list = WHERE(                                                $
                     (all_events[*].stop_time  GT disp_start_time) AND    $
                     (all_events[*].start_time LT disp_stop_time ) ,      $
                         count)
CASE count OF
   0    : stev_events = ''
   ELSE : stev_events = all_events[valid_events_list]
ENDCASE

RETURN , stev_events

END
