function gethkevents,sc,d1,d2, CODE=code, DAT1=dat1, SSYS=ssys, STR=str, SRCFILE=srcfile
; $Id: gethkevents.pro,v 1.6 2021/11/23 21:26:54 secchia Exp $
;
; Project     : STEREO SECCHI
;                   
; Name        : gethkevents
;               
; Purpose     : get event message info from SQL database
;               
; Explanation : 
;               
; Use         : IDL> ev=gethkevents('a','2006-11-01 12:34:12','2006-11-05 23:12:09',code=23)
;    
; Inputs      :   sc = A or B 
;   	     	  d1 = date/time in UTC string or struct format (time optional)
;   	    	  d2 = date/time in UTC string or struct format (time optional)
;               
; Outputs     :   ev = structure of packettime (string & unix), and HKEVENT mnemonics 
;		(see $SSW_SECCHI/data/secchi_hk_scevent_table_def.html)
;
; Keywords :	Allow specification of HKEVENT keyword values in database call
;               
; Calls from LASCO : none
;
; Common      : 
;               
; Restrictions: 
;               
; Side effects: 
;               
; Category    : Database 
;               
; Prev. Hist. : None.
;
; Written     : Nathan Rich, NRL/I2, Dec 2006
;               
; Modified    :
;
; $Log: gethkevents.pro,v $
; Revision 1.6  2021/11/23 21:26:54  secchia
; nr - do 1 retry if fails
;
; Revision 1.5  2007/05/22 18:53:07  nathan
; allow one date input
;
; Revision 1.4  2007/03/16 17:45:57  nathan
; correct comments
;
; Revision 1.3  2006/12/16 00:32:00  nathan
; check for ssys=99
;
; Revision 1.2  2006/12/14 15:45:00  nathan
; not ready yet
;
; Revision 1.1  2006/12/08 21:31:55  nathan
; for getting event message info from SQL db
;
; Log: get_hbtemps.pro,v 
; Revision 1.3  2006/10/31 17:53:10  mcnutt
; updated to use flight database

tbl='hk_events_'+strlowcase(sc) 
dtb='secchi_flight_hk_'+strupcase(sc)
;resol=' group by mid('+hk_temps+'.pckt_time,1,16)'
if (keyword_set(res)) then begin
	 if (Res eq 60) then resol=' group by mid('+hk_temps+'.pckt_time,1,13)'
	 if (Res eq 30) then resol=' and (CAST('+hk_temps+'.pckt_time as CHAR) like "%:00:0%" OR CAST('+hk_temps+'.pckt_time as CHAR) like "%:30:0%") group by mid('+hk_temps+'.pckt_time,1,16)'
	 if (Res eq 10) then resol=' and CAST('+hk_temps+'.pckt_time as CHAR) like "%:%0:0%" group by mid('+hk_temps+'.pckt_time,1,16)'
	 if (Res eq 0) then resol=''
endif

d1=utc2str(anytim2utc(d1),/ecs)
IF n_params() GT 2 THEN d2=utc2str(anytim2utc(d2),/ecs) ELSE BEGIN
    utc1=anytim2utc(d1)
    utc2=utc1
    utc2.mjd=utc1.mjd+1
    d2=utc2str(utc2,/ecs)
ENDELSE

datvars='HKEVENTDAT1, HKEVENTDAT2, HKEVENTDAT3, HKEVENTDAT4, HKEVENTSEV, '
IF keyword_set(CODE) THEN IF code EQ 420 THEN $
datvars='HKEVENTDAT1, HKEVENTDAT2, '
IF keyword_set(SSYS) THEN IF ssys EQ 99 THEN $
datvars='HKEVENTDAT1, HKEVENTDAT2, '

cmnd='select pckt_time, unix_time, HKEVENTCODE, '+datvars+'HKEVENTSSYS, HKEVENTSTR, sourcefileid from '+tbl+' where pckt_time between "'+d1+'" and "'+d2+'"'

IF keyword_set(CODE) THEN cmnd=cmnd+' and HKEVENTCODE='+string(code)
IF keyword_set(DAT1) THEN cmnd=cmnd+' and HKEVENTDAT1='+string(dat1)
IF keyword_set(SSYS) THEN cmnd=cmnd+' and HKEVENTSSYS='+string(ssys)
IF keyword_set(STR)  THEN cmnd=cmnd+' and HKEVENTSTR="'+string(str)+'"'
IF keyword_set(SRCFILE) THEN cmnd=cmnd+' and sourcefileid="'+string(srcfile)+'"'

print,cmnd
outp=SQDB (dtb,cmnd)
IF datatype(outp) NE 'STC' THEN BEGIN
	help,outp
	message,'SQDB error - retrying 1x',/info
	wait, 5
	outp=sqdb(dtb,cmnd)
ENDIF

return, outp

end
