#=============================================================================
#Filename:	TdsDataRes
#Author:	Rashmi
#Description:	TDS Data Definition Resources
#Notes:	 	GLL Resources	
#Warnings:	
#See Also:	
#Sccs:		@(#) /mgds/REL19_1/tds/etc/setup/gll/TdsDataRes ver.5 07/18/94;16:26:08
#=============================================================================

#-----------------------------------------------------------------------------
# Cacheing
#-----------------------------------------------------------------------------
#    TDS Data Description for Galileo
#
#    NertCache.CtgPath points to the location of the C-ISAM catalog files.
#    NertCache.Path points to data caches.  There will be separate caches
#    for each data class for each spacecraft.
#
#    As of V18, the cache directories can span partitions, so
#    here are examples of nertCachePath overrides for spacecraft, dataClass
#    *nertCachePath:            This is the global default
#    *Gll*nertCachePath:        Specifies cache path for the Gll spcecrft
#    *Gll*eng*nertCachePath:    Specifies cache path for the eng dataClass of
#                               the Gll spcecrft only
#    *eng*nertCachePath:        Specifies cache path for ALL eng dataClass of
#                               ALL spacecrafts.
#

NertCache.CtgPath:              /esiscratch/gllctg
*nertCachePath:                 /esiscratch/gllcache

#
#-----------------------------------------------------------------------------
# List of Spacecraft (Sim Spacecraft) this TDS will support
#-----------------------------------------------------------------------------
NertCache.SpaceCraft:           Gll, Sgll

#-----------------------------------------------------------------------------
# Purging Spooler Files
#-----------------------------------------------------------------------------

*purgeState:            Disabled
*triggerTime:           07/06/1992:07:00:00
*triggerInt:            007-00:00
*purgeConfirm:          True


#-----------------------------------------------------------------------------
# Field definitions.
#-----------------------------------------------------------------------------
*Fields:			ert, sclk, rct, mst, scet, vcdu_seq_num,\
				pkt_sequencer, pkt_seq_count, data_source,\
				record_id, jplsfdu, maxClockGap

*data_source.comparisonRtn:	tdmsCompareLongs
*data_source.fieldSpecSize:     1
*record_id.comparisonRtn:       tdmsCompareLongs
*record_id.fieldSpecSize:       4
*pkt_sequencer.comparisonRtn:	tdmsCompareLongs
*pkt_sequencer.fieldSpecSize:	4
*pkt_seq_count.comparisonRtn:	tdmsCompareShorts
*pkt_seq_count.fieldSpecSize:	2
*jplsfdu.comparisonRtn:		NullCompareRtn
*jplsfdu.fieldSpecSize:         4
*comparisonRtn:			tdmsCompareSfoctimes

*maxClockGap.fieldSpecSize:     4
*maxClock.fieldSpecSize:        7

*maxClock.converter:		SclkScetStrToSfocTime
*maxErtRegressInc.converter:	ErtToInt
*maxRctRegressInc.converter:	RctToInt


#-----------------------------------------------------------------------------
# Key definitions.
# SclkScetRegressionHandler requires the following parameters to be defined in
# the resource data base:
#     maxEnqueuedSfdus
#     validSequenceLength
#     maxClockGap
#     maxClock                        (Value Optional)
#
# The parameterList resource is not idiot proof and should not be edited
# unless you know what you are doing.
#-----------------------------------------------------------------------------
*KeysList:			ert_key, sclk_key, rct_key, mst_key, \
				scet_key, no_key, pkt_sclk_key,\
				qqc_rct_key, qqc_ert_key,\
				mon_mst_key, mon_ert_key, vcdu_seq_key

*ert_key.sequence:		ert
*ert_key.tiebreakers:          	data_source, sclk
*ert_key.ascentCheckRtn:        ErtRegressionHandler
*ert_key.parameterList:         maxEnqueuedSfdus, maxErtRegressInc
*ert_key.maxErtRegressInc:      0:0:3.000

*sclk_key.sequence:		sclk
*sclk_key.tiebreakers:		record_id
*sclk_key.ascentCheckRtn:	SclkScetRegressionTest
*sclk_key.seqFieldValidRtn:	IsSclkValid
*sclk_key.parameterList:        maxEnqueuedSfdus, validSequenceLength, \
                                maxClockGap, maxClock
#
#  Gll maxClockGap represents approximatly 8 hours.  This is about one
#  Station pass since a SCLK gap in a stream of data should never span a
#  station change (we always detect station changes and switch spoolers).
#
*sclk_key.maxClockGap:			474.66.0.0
*sclk_key.maxClockGap.converter:	SclkToInt

*pkt_sclk_key.sequence:		sclk
*pkt_sclk_key.tiebreakers:	pkt_sequencer record_id
*pkt_sclk_key.ascentCheckRtn:	SclkScetRegressionTest
*pkt_sclk_key.seqFieldValidRtn:	IsSclkValid
*pkt_sclk_key.parameterList:	maxEnqueuedSfdus, validSequenceLength, \
                                maxClockGap, maxClock
#
#  Gll maxClockGap represents approximatly 8 hours.  This is about one
#  Station pass since a SCLK gap in a stream of data should never span a
#  station change (we always detect station changes and switch spoolers).
#
*pkt_sclk_key.maxClockGap:		474.66.0.0
*pkt_sclk_key.maxClockGap.converter:	SclkToInt


*scet_key.sequence:             scet
*scet_key.tiebreakers:
*scet_key.ascentCheckRtn:       SclkScetRegressionTest
*scet_key.seqFieldValidRtn:     IsSclkValid
*scet_key.parameterList:        maxEnqueuedSfdus, validSequenceLength, \
                                maxClockGap, maxClock
#
#       As above, set to 8 hours.
#
*scet_key.maxClockGap:			8:0:0.000
*scet_key.maxClockGap.converter:	ScetToInt


*rct_key.sequence:		rct
*rct_key.tiebreakers:		data_source, sclk
*rct_key.ascentCheckRtn:        RctRegressionHandler
*rct_key.parameterList:         maxEnqueuedSfdus, maxRctRegressInc
*rct_key.maxRctRegressInc:      0:0:3.000

*vcdu_seq_key.sequence:		vcdu_seq_num
*vcdu_seq_key.tiebreakers:	record_id
*vcdu_seq_key.ascentCheckRtn:   SeqRegressionHandler
*vcdu_seq_key.parameterList:    maxEnqueuedSfdus, maxSeqRegressInc
*vcdu_seq_key.maxSeqRegressInc: 1

*qqc_rct_key.sequence:          rct
*qqc_rct_key.tiebreakers:	data_source
*qqc_rct_key.ascentCheckRtn:    RctRegressionHandler
*qqc_rct_key.parameterList:     maxEnqueuedSfdus, maxRctRegressInc
*qqc_rct_key.maxRctRegressInc:  0:0:3.000

*qqc_ert_key.sequence:          ert
*qqc_ert_key.tiebreakers:	data_source
*qqc_ert_key.ascentCheckRtn:    ErtRegressionHandler
*qqc_ert_key.parameterList:     maxEnqueuedSfdus, maxErtRegressInc
*qqc_ert_key.maxErtRegressInc:  0:0:3.000

*mon_mst_key.sequence:          mst
*mon_mst_key.ascentCheckRtn:    ErtRegressionHandler
*mon_mst_key.tiebreakers:       record_id
*mon_mst_key.parameterList:     maxEnqueuedSfdus, maxErtRegressInc
*mon_mst_key.maxErtRegressInc:  0:0:3.000

*mon_ert_key.sequence:          ert
*mon_ert_key.ascentCheckRtn:    ErtRegressionHandler
*mon_ert_key.tiebreakers:       record_id
*mon_ert_key.parameterList:     maxEnqueuedSfdus, maxErtRegressInc
*mon_ert_key.maxErtRegressInc:  0:0:3.000

*mst_key.sequence:		mst
*mst_key.tiebreakers:		data_source

*no_key.sequence:		jplsfdu
*no_key.tiebreakers:
*no_key.ascentCheckRtn:		NullAscentCheck

*ascentCheckRtn:		tdmsCheckAscendingSfoctime
*seqFieldValidRtn:		IsSeqFieldValid

*sfduBestingRtn:		sfduBestingRtn

#-----------------------------------------------------------------------------
# Global Defaults for lifeTime, maxEnqueuedSfdus, maxBytesPerSegment, keys
#-----------------------------------------------------------------------------
*lifeTime:			030-00:00
*maxEnqueuedSfdus:		15
*validSequenceLength:           3
*maxBytesPerSegment:		1000000
*spl_K_BytesPerSeg:		13000
#
#-----------------------------------------------------------------------------
# Global defaults for GLL packet sequencing - number of SFDUs buffered and
#       the size of each buffer (in bytes)
#-----------------------------------------------------------------------------
*sequenceBufferCount:		800
*recordSize:			3000

#-----------------------------------------------------------------------------
#                         !!! Note !!!
# The ordering of the keys is important.  If there is going to be a scet_key
# it MUST come after the sclk_key.  The ScetRegressionHandler assumes that the
# SclkRegressionHandler will have tested the Sclk and, if it is bad, set the
# suspect sclk header flag to so indicate.  Since the Scet is derived from the
# Sclk, it too is suspect.
#-----------------------------------------------------------------------------
*keys:                          ert_key, sclk_key, scet_key, rct_key

#-----------------------------------------------------------------------------
# Data Description/Cache Definitions
#-----------------------------------------------------------------------------
DataTypeClasses:		teng, peng, cteng, cpeng,\
				lrs, clrs, chlrs, chdrs, lpr, cprb,\
				img, pksci, vcdu, fcd, mon, chmon,\
				qqc, chqqc, misc

#-----------------------------------------------------------------------------
# TDM Engineering Frames
#-----------------------------------------------------------------------------
#
*teng.dataTypes:	eh8, ehr, es8, ess, ems, el8, els, evs, e8n,\
			epn, e8b, epb, e8m, e8j, epj, e8v, eng_dms,\
			eng_cds, eng_none, eng_8, eng_10, eng_16,\
			eng_40, eng_1200, teng

*teng.composedOf:	eh8, ehr, es8, ess, ems, el8, els, evs, e8n,\
			epn, e8b, epb, e8m, e8j, epj, e8v

*eng_dms.composedOf:	e8v, e8j, epj, e8m, e8b, epb, e8n, epn
*eng_cds.composedOf:	evs, el8, els, ems, ess, es8, ehr, eh8
*eng_none.composedOf:	evs, els, ems, ess, ehr

*eng_8.composedOf:	e8v, evs
*eng_10.composedOf:	e8j, el8, epj, els
*eng_16.composedOf:	ems, e8m
*eng_40.composedOf:	ess, e8b, epb, es8
*eng_1200.composedOf:	e8n, epn, ehr, eh8

*teng*bestingRuleList:		RejectAnomaly, GllTdmLessFilling,\
				SclkInReference, UncorrectedSclk,\
				BestSsnrModComp

*teng*cdbDataObject:		eng
teng.eh8.cdbDataObject:		EH8
teng.ehr.cdbDataObject:		EHR
teng.es8.cdbDataObject:		ES8
teng.ess.cdbDataObject:		ESS
teng.ems.cdbDataObject:		EMS
teng.el8.cdbDataObject:		EL8
teng.els.cdbDataObject:		ELS
teng.evs.cdbDataObject:		EVS
teng.e8n.cdbDataObject:		E8N
teng.epn.cdbDataObject:		EPN
teng.e8b.cdbDataObject:		E8B
teng.epb.cdbDataObject:		EPB
teng.e8m.cdbDataObject:		E8M
teng.e8j.cdbDataObject:		E8J
teng.epj.cdbDataObject:		EPJ
teng.e8v.cdbDataObject:		E8V

#-----------------------------------------------------------------------------
# Packet Engineering Frames
#-----------------------------------------------------------------------------
#

*peng.dataTypes:	pkt_eng1_rt, pkt_eng2_pb,\
			aacs1_rt, aacs2_pb, aacs3_pb_comp,\
			aacs3_pb_decomp, aacs4_rrcc, pkt_aacs, pkt_aacs_all,\
			sub_aacs1_rt, sub_aacs2_pb_rrcc, sub_aacs,\
			pkt_eng_frame_2, pkt_eng_frame_10, pkt_eng_frame_40,\
			pkt_eng_frame_1200, pkt_eng_frame_rt,\
			pkt_eng_frame_pb, pkt_eng_frame,\
			pkt_eng, peng

*peng.composedOf:	pkt_eng1_rt, pkt_eng2_pb,\
			aacs1_rt, aacs2_pb, aacs3_pb_comp,\
			aacs3_pb_decomp, aacs4_rrcc,\
			sub_aacs1_rt, sub_aacs2_pb_rrcc,\
			pkt_eng_frame_2, pkt_eng_frame_10,\
			pkt_eng_frame_40, pkt_eng_frame_1200

*pkt_eng.composedOf:		pkt_eng1_rt, pkt_eng2_pb
*sub_aacs.composedOf:		sub_aacs1_rt, sub_aacs2_pb_rrcc
*pkt_aacs.composedOf:		aacs1_rt, aacs2_pb, aacs4_rrcc,\
				aacs3_pb_decomp
*pkt_aacs_all.composedOf:	aacs1_rt, aacs2_pb, aacs3_pb_comp,\
				aacs3_pb_decomp, aacs4_rrcc
*pkt_eng_frame.composedOf:	pkt_eng_frame_2, pkt_eng_frame_10,\
				pkt_eng_frame_40, pkt_eng_frame_1200

*pkt_eng_frame_rt.composedOf:	pkt_eng_frame_2, pkt_eng_frame_10,\
				pkt_eng_frame_40

*pkt_eng_frame_pb.composedOf:	pkt_eng_frame_1200

*peng*keys:			pkt_sclk_key, scet_key, ert_key, rct_key

*peng*sequencing:		true
*peng*sequencFieldName:		pkt_seq_count
#*peng*sequencFieldName:	pkt_sequencer
*peng*sequenceRolloverValue:	127
*peng*sequenceBufferCount:	100
*peng*recordSize:             	1500

*peng*sclk.secondaryOrderKey:	pkt_seq_count

*peng*bestingRuleList:		RejectAnomaly, GllPacketLessFilling, \
				SclkNotExtrapolated, ForwardExtrapolatedSclk, \
				SclkNotSuspect, LatestRct

#-----------------------------------------------------------------------------
# Channelized TDM Engineering Frames
#-----------------------------------------------------------------------------
#
*cteng.dataTypes:		ch_eh8, ch_ehr, ch_es8, ch_ess,\
				ch_ems, ch_el8, ch_els, ch_evs,\
				ch_e8n, ch_epn, ch_e8b, ch_epb,\
				ch_e8m, ch_e8j, ch_epj, ch_e8v,\
				cteng

*cteng.composedOf:		ch_eh8, ch_ehr, ch_es8, ch_ess,\
				ch_ems, ch_el8, ch_els, ch_evs,\
				ch_e8n, ch_epn, ch_e8b, ch_epb,\
				ch_e8m, ch_e8j, ch_epj, ch_e8v

*cteng*cdbDataObject:		chEng

*cteng*bestingRuleList:		RejectAnomaly, GllTdmLessFilling,\
				SclkInReference, UncorrectedSclk,\
				BestSsnrModComp

cteng.ch_eh8.cdbDataObject:		chEH8
cteng.ch_ehr.cdbDataObject:		chEHR
cteng.ch_es8.cdbDataObject:		chES8
cteng.ch_ess.cdbDataObject:		chESS
cteng.ch_ems.cdbDataObject:		chEMS
cteng.ch_el8.cdbDataObject:		chEL8
cteng.ch_els.cdbDataObject:		chELS
cteng.ch_evs.cdbDataObject:		chEVS
cteng.ch_e8n.cdbDataObject:		chE8N
cteng.ch_epn.cdbDataObject:		chEPN
cteng.ch_e8b.cdbDataObject:		chE8B
cteng.ch_epb.cdbDataObject:		chEPB
cteng.ch_e8m.cdbDataObject:		chE8M
cteng.ch_e8j.cdbDataObject:		chE8J
cteng.ch_epj.cdbDataObject:		chEPJ
cteng.ch_e8v.cdbDataObject:		chE8V

#-----------------------------------------------------------------------------
# Channelized Packet Engineering Frames
#-----------------------------------------------------------------------------
#
*cpeng.dataTypes:		ch_sub_aacs1_rt, ch_sub_aacs2_pb_rrcc,\
				ch_sub_aacs,\
				ch_pkt_eng_frame_2, ch_pkt_eng_frame_10,\
				ch_pkt_eng_frame_40, ch_pkt_eng_frame_1200,\
				ch_pkt_eng_frame_rt, ch_pkt_eng_frame_pb,\
				ch_pkt_eng_frame, cpeng

*cpeng.composedOf:		ch_sub_aacs1_rt, ch_sub_aacs2_pb_rrcc,\
				ch_pkt_eng_frame_2, ch_pkt_eng_frame_10,\
				ch_pkt_eng_frame_40, ch_pkt_eng_frame_1200

*ch_sub_aacs.composedOf:	ch_sub_aacs1_rt, ch_sub_aacs2_pb_rrcc
*ch_pkt_eng_frame.composedOf:	ch_pkt_eng_frame_2, ch_pkt_eng_frame_10,\
				ch_pkt_eng_frame_40, ch_pkt_eng_frame_1200
*ch_pkt_eng_frame_rt.composedOf:	ch_pkt_eng_frame_2,\
					ch_pkt_eng_frame_10,\
					ch_pkt_eng_frame_40
*ch_pkt_eng_frame_pb.composedOf:	ch_pkt_eng_frame_1200

*cpeng*keys:			pkt_sclk_key, scet_key, ert_key, rct_key

*cpeng*sequencing:		true
*cpeng*sequencFieldName:	pkt_seq_count
*cpeng*sequenceRolloverValue:	127
*cpeng*sequenceBufferCount:	100
*cpeng*recordSize:             	1500

*cpeng*sclk.secondaryOrderKey:	pkt_seq_count

*cpeng*bestingRuleList:		RejectAnomaly, GllPacketLessFilling, \
				SclkNotExtrapolated, ForwardExtrapolatedSclk, \
				SclkNotSuspect, LatestRct


#-----------------------------------------------------------------------------
# Virtual Channel Data Units
#-----------------------------------------------------------------------------
*vcdu.dataTypes:		vcdu0_priority, vcdu1_rt, vcdu2_pb,\
				vcdu3_rrcc, vcdu4_fill, vcdu5_bdtt_rt,\
				vcdu6_bdtt_pb, vcdu7_bdtt_rrcc,\
				vcdu_all_rt, vcdu_all_pb, vcdu_all_rrcc, vcdu

*vcdu.composedOf:		vcdu0_priority, vcdu1_rt, vcdu2_pb,\
				vcdu3_rrcc, vcdu4_fill, vcdu5_bdtt_rt,\
				vcdu6_bdtt_pb, vcdu7_bdtt_rrcc

*vcdu_all_rt.composedOf:	vcdu1_rt, vcdu5_bdtt_rt
*vcdu_all_pb.composedOf:	vcdu2_pb, vcdu6_bdtt_pb
*vcdu_all_rrcc.composedOf:	vcdu3_rrcc, vcdu7_bdtt_rrcc

*vcdu*keys:			vcdu_seq_key, ert_key, rct_key

*vcdu*bestingRuleList:		RejectAnomaly, LatestRct

*vcdu*TimeOrder:		vcdu_seq_num

#-----------------------------------------------------------------------------
# Transfer Frames
#-----------------------------------------------------------------------------
*fcd.dataTypes:			fcd_decoded_success, fcd_decoded_unsucc,\
				fcd_partial, fcd_not_rs, fcd

*fcd.composedOf:		fcd_decoded_success, fcd_decoded_unsucc,\
				fcd_partial, fcd_not_rs

#*fcd*keys:			ert_key, rct_key
*fcd*keys:			ert_key

#-----------------------------------------------------------------------------
# Low Rate Science Frames
#-----------------------------------------------------------------------------
*lrs.dataTypes:			lrs

*lrs*bestingRuleList: 		RejectAnomaly, GllTdmLessFilling, \
				SclkInReference, UncorrectedSclk, \
				BestSsnrModComp

#*lrs*cdbDataObject:		LRS


#-----------------------------------------------------------------------------
# Compressed Low Rate Science Frames
#-----------------------------------------------------------------------------
*clrs.dataTypes:		clrs

*clrs*bestingRuleList: 		RejectAnomaly, GllTdmLessFilling, \
				SclkInReference, UncorrectedSclk, \
				BestSsnrModComp

*clrs*cdbDataObject:		CLRS

#-----------------------------------------------------------------------------
# Low Rate Probe Frames
#-----------------------------------------------------------------------------
*lpr.dataTypes:			lpr

*lpr*bestingRuleList:		RejectAnomaly, GllPacketLessFilling, \
				SclkNotExtrapolated, ForwardExtrapolatedSclk,\
				SclkNotSuspect, LatestRct
*lpr*sequencing:		true
*lpr*sequencFieldName:		pkt_seq_count
*lpr*sequenceRolloverValue:	127
*lpr*sequenceBufferCount:	100
*lpr*recordSize:             	1500
*lpr*sclk.secondaryOrderKey:	pkt_seq_count

#*lpr*cdbDataObject:		LPR

#-----------------------------------------------------------------------------
# Compressed Probe Frames
#-----------------------------------------------------------------------------
*cprb.dataTypes:		cprb

*cprb*bestingRuleList:		RejectAnomaly, GllPacketLessFilling, \
				SclkNotExtrapolated, ForwardExtrapolatedSclk,\
				SclkNotSuspect, LatestRct

*cprb*sequencing:		true
*cprb*sequencFieldName:		pkt_seq_count
*cprb*sequenceRolloverValue:	127
*cprb*sequenceBufferCount:	100
*cprb*recordSize:             	1500
*cprb*sclk.secondaryOrderKey:	pkt_seq_count

*cprb*cdbDataObject:		CPRB


#-----------------------------------------------------------------------------
# Channelized LRS Frames
#-----------------------------------------------------------------------------
*chlrs.dataTypes:		chlrs

*chlrs*bestingRuleList:		RejectAnomaly, GllTdmLessFilling, \
				SclkInReference, UncorrectedSclk, \
				BestSsnrModComp

*chlrs*cdbDataObject:		chLRS


#-----------------------------------------------------------------------------
# Channelized DRSLRS Frames
#-----------------------------------------------------------------------------
*chdrs.dataTypes:		chdrs

*chdrs*bestingRuleList: 	RejectAnomaly, GllTdmLessFilling, \
				SclkInReference, UncorrectedSclk, \
				BestSsnrModComp

#*chdrs*cdbDataObject:		chDRSLRS


#-----------------------------------------------------------------------------
# TDM Science
#-----------------------------------------------------------------------------
#
*img.dataTypes:			mpw, hcm, im4, img

*img.composedOf:		mpw, hcm, im4

*img*bestingRuleList: 		RejectAnomaly, GllTdmLessFilling, \
				SclkInReference, UncorrectedSclk, \
				BestSsnrModComp

#-----------------------------------------------------------------------------
# Packet Science
#-----------------------------------------------------------------------------
#
*pksci.dataTypes:		dds1_rt, dds2_pb, dds3_rrcc, dds_pb, dds,\
				epd1_rt, epd2_pb, epd3_rrcc, epd_pb, epd,\
				euv1_rt, euv2_pb, euv,\
				hic1_rt, hic2_pb, hic3_rrcc, hic_pb, hic,\
				mag1_rt, mag2_pb, mag3_pb_comp,\
				mag3_pb_decomp, mag4_rrcc, mag_pb,\
				mag_all, mag,\
				nims1_rt, nims2_pb_11, nims3_pb_6, nims4_pb_2,\
				nims5_pb_11_comp, nims5_pb_11_decomp,\
				nims6_pb_6_comp, nims6_pb_6_decomp,\
				nims7_pb_2_comp, nims7_pb_2_decomp,\
				nims_comp, nims_pb, nims_all, nims,\
				opn1_limb_rt, opn2_star_rt, opn3_limb_pb,\
				opn4_star_pb, opn_pb, opn,\
				pls1_rt, pls2_pb,\
				pls3_pb_comp, pls3_pb_decomp,\
				pls4_rrcc, pls_pb, pls_all, pls,\
				ppr1_pb, ppr2_pb_comp, ppr2_pb_decomp,\
				ppr3_burst,\
				ppr4_burst_comp, ppr4_burst_decomp,\
				ppr_comp, ppr_all, ppr,\
				pwh1_fill, pwh2_pb_mpw, pwh3_pb_mpp,\
				pwh4_pb_hpw, pwh5_lpw_golay,\
				pwh_pb, pwh,\
				pwl1_rt_e_pkt, pwl2_rt_b_pkt, pwl3_pb,\
				pwl4_rrcc, pwl_pb, pwl,\
				ssi1_ict_comp, ssi2_barc_comp,\
				ssi3_hskp_comp, ch_ssi3_hskp_comp,\
				ssi,\
				uvs1_rt, uvs2_pb,\
				uvs3_pb_comp, uvs3_pb_decomp,\
				uvs4_rrcc, uvs_pb, uvs_all, uvs,\
				pksci

*pksci.composedOf:		dds1_rt, dds2_pb, dds3_rrcc,\
				epd1_rt, epd2_pb, epd3_rrcc,\
				euv1_rt, euv2_pb,\
				hic1_rt, hic2_pb, hic3_rrcc,\
				mag1_rt, mag2_pb, \
				mag3_pb_comp, mag3_pb_decomp,\
				mag4_rrcc,\
				nims1_rt, nims2_pb_11,\
				nims3_pb_6, nims4_pb_2,\
				nims5_pb_11_comp, nims5_pb_11_decomp,\
				nims6_pb_6_comp, nims6_pb_6_decomp,\
				nims7_pb_2_comp, nims7_pb_2_decomp,\
				opn1_limb_rt, opn2_star_rt,\
				opn3_limb_pb, opn4_star_pb,\
				pls1_rt, pls2_pb,\
				pls3_pb_comp, pls3_pb_decomp,\
				pls4_rrcc,\
				ppr1_pb, ppr2_pb_comp, ppr2_pb_decomp,\
				ppr3_burst,\
				ppr4_burst_comp, ppr4_burst_decomp,\
				pwh1_fill, pwh2_pb_mpw, pwh3_pb_mpp,\
				pwh4_pb_hpw, pwh5_lpw_golay,\
				pwl1_rt_e_pkt, pwl2_rt_b_pkt, pwl3_pb,\
				pwl4_rrcc,\
				ssi1_ict_comp, ssi2_barc_comp,\
				ssi3_hskp_comp, ch_ssi3_hskp_comp,\
				uvs1_rt, uvs2_pb,\
				uvs3_pb_comp, uvs3_pb_decomp,\
				uvs4_rrcc

*dds.composedOf:		dds1_rt, dds2_pb, dds3_rrcc
*epd.composedOf:		epd1_rt, epd2_pb, epd3_rrcc
*euv.composedOf:		euv1_rt, euv2_pb
*hic.composedOf:		hic1_rt, hic2_pb, hic3_rrcc

*mag_all.composedOf:		mag1_rt, mag2_pb, mag3_pb_comp, mag4_rrcc,\
				mag3_pb_decomp
*mag.composedOf:		mag1_rt, mag2_pb, mag4_rrcc, mag3_pb_decomp
*mag_pb.composedOf:		mag2_pb, mag3_pb_decomp

*nims_all.composedOf:		nims1_rt, nims2_pb_11, nims3_pb_6,\
				nims4_pb_2, nims5_pb_11_comp, nims6_pb_6_comp,\
				nims7_pb_2_comp, nims5_pb_11_decomp,\
				nims6_pb_6_decomp, nims7_pb_2_decomp
*nims.composedOf:		nims1_rt, nims2_pb_11, nims3_pb_6,\
				nims4_pb_2, nims5_pb_11_decomp,\
				nims6_pb_6_decomp, nims7_pb_2_decomp
*nims_pb.composedOf:		nims2_pb_11, nims3_pb_6,\
				nims4_pb_2, nims5_pb_11_decomp,\
				nims6_pb_6_decomp, nims7_pb_2_decomp
*nims_comp.composedOf:		nims5_pb_11_comp, nims6_pb_6_comp,\
				nims7_pb_2_comp

*opn.composedOf:		opn1_limb_rt, opn2_star_rt, opn3_limb_pb,\
				opn4_star_pb
*opn_pb.composedOf:		opn3_limb_pb, opn4_star_pb


*pls_all.composedOf:		pls1_rt, pls2_pb, pls3_pb_comp, pls4_rrcc,\
				pls3_pb_decomp
*pls.composedOf:		pls1_rt, pls2_pb, pls4_rrcc, pls3_pb_decomp
*pls_pb.composedOf:		pls2_pb, pls3_pb_decomp


*ppr_all.composedOf:		ppr1_pb, ppr2_pb_comp, ppr3_burst,\
				ppr4_burst_comp, ppr2_pb_decomp,\
				ppr4_burst_decomp
*ppr.composedOf:		ppr1_pb, ppr3_burst, ppr2_pb_decomp,\
				ppr4_burst_decomp
*ppr_comp.composedOf:		ppr2_pb_comp, ppr4_burst_comp


*pwh.composedOf:		pwh1_fill, pwh2_pb_mpw, pwh3_pb_mpp,\
				pwh4_pb_hpw, pwh5_lpw_golay
*pwh_pb.composedOf:		pwh2_pb_mpw, pwh3_pb_mpp, pwh4_pb_hpw,\
				pwh5_lpw_golay


*pwl.composedOf:		pwl1_rt_e_pkt, pwl2_rt_b_pkt, pwl3_pb,\
				pwl4_rrcc

*ssi.composedOf:		ssi1_ict_comp, ssi2_barc_comp,\
				ssi3_hskp_comp

*uvs_all.composedOf:		uvs1_rt, uvs2_pb, uvs3_pb_comp, uvs4_rrcc,\
				uvs3_pb_decomp
*uvs.composedOf:		uvs1_rt, uvs2_pb, uvs4_rrcc, uvs3_pb_decomp
*uvs_pb.composedOf:		uvs2_pb, uvs3_pb_decomp

#
#

*pksci*keys:			pkt_sclk_key, scet_key, ert_key, rct_key

*pksci*sequencing:		true
*pksci*sequencFieldName:	pkt_seq_count
*pksci*sequenceRolloverValue:	127
*pksci*sequenceBufferCount:	100
*pksci*recordSize:		1500
*pksci*sclk.secondaryOrderKey:	pkt_seq_count

*pksci*bestingRuleList:		RejectAnomaly, GllTdmLessFilling, \
				SclkInReference, UncorrectedSclk, \
				BestSsnrModComp

#
#  SSI uses pkt_sequencer.  There can be up to 800 of these per SCLK.
#  sequenceRolloverValue for ssi deliberatly left undefined to override the
#  rollover value for the class.
#

*pksci.ssi1_ict_comp.sequencFieldName:		pkt_sequencer
*pksci.ssi1_ict_comp.sequenceRolloverValue:
*pksci.ssi1_ict_comp.sequenceBufferCount:	800
*pksci.ssi1_ict_comp.recordSize:             	1500

*pksci.ssi2_barc_comp.sequencFieldName:		pkt_sequencer
*pksci.ssi2_barc_comp.sequenceRolloverValue:
*pksci.ssi2_barc_comp.sequenceBufferCount:	800
*pksci.ssi2_barc_comp.recordSize:             	1500

*pksci.ssi3_hskp_comp.sequencFieldName:		pkt_sequencer
*pksci.ssi3_hskp_comp.sequenceRolloverValue:
*pksci.ssi3_hskp_comp.sequenceBufferCount:	800
*pksci.ssi3_hskp_comp.recordSize:             	1500

				
#-----------------------------------------------------------------------------
# Monitor Blocks
#-----------------------------------------------------------------------------
*mon.dataTypes:             	gif_mon59_block1, gif_mon59_block2\
				gif_mon59_block3, gif_mon59_block4\
				gif_mon511, gif_mon515, mon

*mon.composedOf:             	gif_mon59_block1, gif_mon59_block2\
				gif_mon59_block3, gif_mon59_block4\
				gif_mon511, gif_mon515

*mon*keys:			mon_mst_key, mon_ert_key
*mon*TimeOrder:			mst

*mon*cdbDataObject:		mon

mon.gif_mon59_block1.cdbDataObject:	GIF59_1
mon.gif_mon59_block2.cdbDataObject:	GIF59_2
mon.gif_mon59_block3.cdbDataObject:	GIF59_3
mon.gif_mon59_block4.cdbDataObject:	GIF59_4
mon.gif_mon511.cdbDataObject:		GIF5_11
mon.gif_mon515.cdbDataObject:		GIF5_15


#-----------------------------------------------------------------------------
# Channelized Monitor Blocks
#-----------------------------------------------------------------------------
*chmon.dataTypes:             	ch_gif_mon59_block1, ch_gif_mon59_block2\
				ch_gif_mon59_block3, ch_gif_mon59_block4\
				ch_gif_mon511, ch_gif_mon515, chmon

*chmon.composedOf:      	ch_gif_mon59_block1, ch_gif_mon59_block2\
				ch_gif_mon59_block3, ch_gif_mon59_block4\
				ch_gif_mon511, ch_gif_mon515

*chmon*keys:			mon_mst_key, mon_ert_key
*chmon*TimeOrder:		mst

*chmon*cdbDataObject:		chMon

chmon.ch_gif_mon59_block1.cdbDataObject:	chGIF59_1
chmon.ch_gif_mon59_block2.cdbDataObject:	chGIF59_2
chmon.ch_gif_mon59_block3.cdbDataObject:	chGIF59_3
chmon.ch_gif_mon59_block4.cdbDataObject:	chGIF59_4
chmon.ch_gif_mon511.cdbDataObject:		chGIF5_11
chmon.ch_gif_mon515.cdbDataObject:		chGIF5_15


#-----------------------------------------------------------------------------
# QQC Blocks
#-----------------------------------------------------------------------------
*qqc.dataTypes:			qqc_hbeat_in_sync, qqc_hbeat_out_sync,\
				qqc_hbeat_no_data, qqc_tdm_fail_acq,\
				qqc_in_sync, qqc_out_sync, qqc_no_data,\
				qqc_sclk_change, qqc_fid_change, qqc_decom,\
				qqc_extr_begin, qqc_extr_end, qqc_summary,\
				qqc_data_summary, qqc_ph2_summary,\
				qqc_ph2_data_summary, qqc

*qqc.composedOf:		qqc_hbeat_in_sync, qqc_hbeat_out_sync,\
				qqc_hbeat_no_data, qqc_tdm_fail_acq,\
				qqc_in_sync, qqc_out_sync, qqc_no_data,\
				qqc_sclk_change, qqc_fid_change, qqc_decom,\
				qqc_extr_begin, qqc_extr_end, qqc_summary,\
				qqc_data_summary, qqc_ph2_summary,\
				qqc_ph2_data_summary

*qqc*keys:			qqc_rct_key, qqc_ert_key
*qqc*TimeOrder:			rct
*qqc*maxEnqueuedSfdus:          10

*qqc.cdbDataObject:			qqc

qqc.qqc_hbeat_in_sync.cdbDataObject:	HBInSync
qqc.qqc_hbeat_out_sync.cdbDataObject:	HBOutSync
qqc.qqc_hbeat_no_data.cdbDataObject:	HBNoData
qqc.qqc_tdm_fail_acq.cdbDataObject:	TDMFailAcq
qqc.qqc_in_sync.cdbDataObject:		InSync
qqc.qqc_out_sync.cdbDataObject:		OutSync
qqc.qqc_no_data.cdbDataObject:		NoData
qqc.qqc_sclk_change.cdbDataObject:	SCLKChange
qqc.qqc_fid_change.cdbDataObject:	FIDChange
qqc.qqc_decom.cdbDataObject:		Decom
qqc.qqc_extr_begin.cdbDataObject:	ExtractBegin
qqc.qqc_extr_end.cdbDataObject:		ExtractEnd
qqc.qqc_summary.cdbDataObject:		Summary
qqc.qqc_data_summary.cdbDataObject:	DataSummary


#-----------------------------------------------------------------------------
# CHAN QQC Blocks
#-----------------------------------------------------------------------------
*chqqc.dataTypes:		ch_qqc_hbeat_in_sync, ch_qqc_hbeat_out_sync,\
				ch_qqc_hbeat_no_data, ch_qqc_tdm_fail_acq,\
				ch_qqc_in_sync, ch_qqc_out_sync,\
				ch_qqc_no_data, ch_qqc_sclk_change,\
				ch_qqc_fid_change, ch_qqc_decom,\
				ch_qqc_extr_begin, ch_qqc_extr_end,\
				ch_qqc_summary, ch_qqc_data_summary, ch_qqc


*chqqc.ch_qqc.composedOf:	ch_qqc_hbeat_in_sync, ch_qqc_hbeat_out_sync,\
				ch_qqc_hbeat_no_data, ch_qqc_tdm_fail_acq,\
				ch_qqc_in_sync, ch_qqc_out_sync,\
				ch_qqc_no_data, ch_qqc_sclk_change,\
				ch_qqc_fid_change, ch_qqc_decom,\
				ch_qqc_extr_begin, ch_qqc_extr_end,\
				ch_qqc_summary, ch_qqc_data_summary


*chqqc*keys:			qqc_rct_key, qqc_ert_key
*chqqc*TimeOrder:		rct
*chqqc*maxEnqueuedSfdus:	10

*chqqc.cdbDataObject:				chQqc

chqqc.ch_qqc_hbeat_in_sync.cdbDataObject:	chHBInSync
chqqc.ch_qqc_hbeat_out_sync.cdbDataObject:	chHBOutSync
chqqc.ch_qqc_hbeat_no_data.cdbDataObject:	chHBNoData
chqqc.ch_qqc_tdm_fail_acq.cdbDataObject:	chTDMFailAcq
chqqc.ch_qqc_in_sync.cdbDataObject:		chInSync
chqqc.ch_qqc_out_sync.cdbDataObject:		chOutSync
chqqc.ch_qqc_no_data.cdbDataObject:		chNoData
chqqc.ch_qqc_sclk_change.cdbDataObject:		chSCLKChange
chqqc.ch_qqc_fid_change.cdbDataObject:		chFIDChange
chqqc.ch_qqc_decom.cdbDataObject:		chDecom
chqqc.ch_qqc_extr_begin.cdbDataObject:		chExtractBegin
chqqc.ch_qqc_extr_end.cdbDataObject:		chExtractEnd
chqqc.ch_qqc_summary.cdbDataObject:		chSummary
chqqc.ch_qqc_data_summary.cdbDataObject:	chDataSummary

#-----------------------------------------------------------------------------
# Miscellaneous Sfdus
#-----------------------------------------------------------------------------
#    Everything we don't handle by one of the above specs goes into
#    an unsequenced miscellaneous cache.
*misc.dataTypes:                any
*misc*keys:                     no_key
