PRO HSI_Packet2DetectorEvent, packets, events, $
       VERBOSE=verbose, HELP=help

;

IF Keyword_Set( VERBOSE ) THEN verbose = 1 ELSE verbose = 0
IF Keyword_Set( HELP ) THEN BEGIN
    Doc_Menu, 'hsi_packet2detectorevent'
    RETURN
END
;IF N_Tags( {detectorEvent}) EQ 0 THEN BEGIN
;    IF verbose THEN Print, 'Defining the HESSI/IDL structures...'
;    HSI_Struct_Def
;ENDIF

eventLengthByte =  4
nbEventsInPacket = 270
sourceBitOffset =  27
sourceBitLength =  5
energyBitOffset =  14
energyBitLength =  13
timeBitOffset = 4
timeBitLength = 10
liveTimeBitOffset =  0
liveTimeBitLength =  4

list =  WHERE( packets.id EQ 100 )
IF Total( list ) NE -1 THEN packets =  packets( list )

nPackets =  N_Elements( packets )
nbEvents =  nPackets*nbEventsInPacket

data = $
    LONG(REFORM(packets.data, eventLengthByte, nbEvents), $
         0, nbEvents )

IEEE_To_Host, data

events = REPLICATE( {detectorEvent}, nbEvents )

events.source = Mask( data, sourceBitOffset, sourceBitLength )
events.energy = Mask( data, energyBitOffset, energyBitLength )
events.time = Mask( data, timeBitOffset, timeBitLength )
events.liveTime = Mask( data, liveTimeBitOffset, liveTimeBitLength )

END


;---------------------------------------------------------------------------
; End of 'hsi_packet2detectorevent.pro'.
;---------------------------------------------------------------------------