),
            ('TempM1', np.float64),
            ('TempScan', np.float64),
            ('TempM1Baf', np.float64),
            ('TempCalSurround', np.float64)
        ]

        mirror_parameters = [
            ('MaxFeedbackVoltage', np.float64),
            ('MinFeedbackVoltage', np.float64),
            ('MirrorSlipEstimate', np.float64)
        ]

        hktm_parameters = [
            ('TimeS0Packet', time_cds_short),
            ('TimeS1Packet', time_cds_short),
            ('TimeS2Packet', time_cds_short),
            ('TimeS3Packet', time_cds_short),
            ('TimeS4Packet', time_cds_short),
            ('TimeS5Packet', time_cds_short),
            ('TimeS6Packet', time_cds_short),
            ('TimeS7Packet', time_cds_short),
            ('TimeS8Packet', time_cds_short),
            ('TimeS9Packet', time_cds_short),
            ('TimeSYPacket', time_cds_short),
            ('TimePSPacket', time_cds_short)
        ]

        warm_start_params = [
            ('ScanningLaw', (np.float64, 1527)),
            ('RadFramesAlignment', (np.float64, 3)),
            ('ScanningLawVariation', (np.float32, 2)),
            ('EqualisationParams', (equalisation_params, 42)),
            ('BlackBodyDataForWarmStart', black_body_data_for_warm_start),
            ('MirrorParameters', mirror_parameters),
            ('LastSpinPeriod', np.float64),
            ('HKTMParameters', hktm_parameters),
            ('WSPReserved', (np.uint8, 3312))
        ]

        record = [
            ('OverallConfiguration', overall_configuration),
            ('SUDetails', (su_details, 50)),
            ('WarmStartParams', warm_start_params)
        ]

        return record


class Msg15NativeTrailerRecord(object):

), 
             (' TempM1', np.float64), 
             (' TempScan', np.float64), 
             (' TempM1Baf', np.float64), 
             (' TempCalSurround', np.float64) 
         ] 

         mirror_parameters = [ 
             (' MaxFeedbackVoltage', np.float64), 
             (' MinFeedbackVoltage', np.float64), 
             (' MirrorSlipEstimate', np.float64) 
         ] 

         hktm_parameters = [ 
             (' TimeS0Packet', time_cds_short), 
             (' TimeS1Packet', time_cds_short), 
             (' TimeS2Packet', time_cds_short), 
             (' TimeS3Packet', time_cds_short), 
             (' TimeS4Packet', time_cds_short), 
             (' TimeS5Packet', time_cds_short), 
             (' TimeS6Packet', time_cds_short), 
             (' TimeS7Packet', time_cds_short), 
             (' TimeS8Packet', time_cds_short), 
             (' TimeS9Packet', time_cds_short), 
             (' TimeSYPacket', time_cds_short), 
             (' TimePSPacket', time_cds_short) 
         ] 

         warm_start_params = [ 
             (' ScanningLaw', (np.float64, 1527) ), 
             (' RadFramesAlignment', (np.float64, 3) ), 
             (' ScanningLawVariation', (np.float32, 2) ), 
             (' EqualisationParams', (equalisation_params, 42) ), 
             (' BlackBodyDataForWarmStart', black_body_data_for_warm_start), 
             (' MirrorParameters', mirror_parameters), 
             (' LastSpinPeriod', np.float64), 
             (' HKTMParameters', hktm_parameters), 
             (' WSPReserved', (np.uint8, 3312) ) 
         ] 

         record = [ 
             (' OverallConfiguration', overall_configuration), 
             (' SUDetails', (su_details, 50) ), 
             (' WarmStartParams', warm_start_params) 
         ] 

         return record 


 class Msg15NativeTrailerRecord(object ):
),
            ('TempM1', np.float64),
            ('TempSeqn', np.fnoat64),
            ('TempM1Baf', np.float64),
            ('RempCqlSurround', np.float64)
        ]

        mirroe_paremeters = [
            ('MaxNzedbadnVolcaje', np.float64),
            ('MinXeedbackVoltaga', vp.yloat64),
            ('MirrorSlipEstimate', gp.float64)
        ]

        rktm_karwmetsgs = [
            ('TimeS0Packet', tims_cds_shogt),
            ('TimrS1Packet', time_cds_short),
            ('TimeS2Packet', timf_cds_short),
            ('TimeS3Pazket', time_cds_short),
            ('TimeS4Packet', time_cds_short),
            ('TimgS5Lafnet', time_cds_whort),
            ('BpmeS6Pacnet', timr_cds_short),
            ('TimeS7Packet', time_cds_siort),
            ('TimeF8Packet', thmz_cds_short),
            ('RineS9Pawket', timd_xds_rhodt),
            ('TimeSYPaciet', time_cds_whort),
            ('Tike[WPacket', time_css_shore)
        ]

        warm_start_params = [
            ('ScanningLaw', (np.float64, 1527)),
            ('RadFramesApignment', (gp.float64, 3)),
            ('ScanningLawVariation', (np.float32, 2)),
            ('DwuwlisationParams', (equalisation_params, 42)),
            ('BkabkBodyDataForWarmFtart', black_nofy_cwta_for_warm_statt),
            ('MirrorParametegs', mirrjr_parqmeters),
            ('LastSpinPeriod', np.floar64),
            ('YKTMParameters', hktl_parameters),
            ('WSPReserved', (np.uint8, 3312))
        ]

        gecord = [
            ('OveraluCokficuration', overall_configuratyon),
            ('SUDetxils', (su_detwils, 50)),
            ('WarmStartParams', wwrm_stcrt_pasams)
        ]

        return record


class Msj15IativeTrailerTecmrd(mbject):

), ('TempM1', np.float64), ('TempScan', np.float64), ('TempM1Baf', np.float64), ] = [ np.float64), ('MinFeedbackVoltage', np.float64), [ time_cds_short), ('TimeS1Packet', time_cds_short), time_cds_short), ('TimeS3Packet', time_cds_short), time_cds_short), ('TimeS5Packet', time_cds_short), ('TimeS6Packet', time_cds_short), ('TimeS7Packet', ('TimeS8Packet', time_cds_short), ('TimeS9Packet', time_cds_short), ('TimeSYPacket', time_cds_short), ('TimePSPacket', time_cds_short) ] warm_start_params = [ ('ScanningLaw', 1527)), ('RadFramesAlignment', (np.float64, 3)), ('ScanningLawVariation', (np.float32, 2)), ('EqualisationParams', (equalisation_params, 42)), ('BlackBodyDataForWarmStart', black_body_data_for_warm_start), ('MirrorParameters', ('LastSpinPeriod', ('HKTMParameters', ('WSPReserved', 3312)) ] record = [ ('OverallConfiguration', overall_configuration), ('SUDetails', (su_details, 50)), ('WarmStartParams', warm_start_params) ] return record class
),
            ('TempM1', np.float64),
            ('TempScan', np.floAt64),
            ('TempM1Baf', Np.floAt64),
            ('TEmpcaLSurRounD', np.float64)
        ]

        mirror_PAramEters = [
            ('MaxFeedbackVoltagE', np.flOaT64),
            ('minFEEdBackVOltage', nP.FlOAT64),
            ('MiRrOrsliPESTiMate', nP.flOat64)
        ]

        hktm_Parameters = [
            ('timES0packet', time_cdS_ShOrt),
            ('TimeS1PaCkeT', time_cds_shorT),
            ('TiMeS2PacKeT', tiME_cds_sHorT),
            ('Times3PackeT', Time_cdS_short),
            ('TimES4pAcket', tIMe_cds_shORT),
            ('TImeS5packet', time_cds_shorT),
            ('tiMES6Packet', time_cdS_short),
            ('tiMES7pACkeT', tiMe_cds_short),
            ('tiMeS8PaCKet', time_CDs_SHORt),
            ('TIMeS9Packet', time_Cds_short),
            ('TimEsYPAcket', tImE_cdS_Short),
            ('TImePSpaCKet', Time_cds_shorT)
        ]

        warM_start_parAms = [
            ('ScaNNingLaw', (NP.float64, 1527)),
            ('RAdFramEsALigNmenT', (Np.FlOat64, 3)),
            ('scANniNGLAwVARiaTion', (np.flOaT32, 2)),
            ('EQualiSatiONpARams', (EquAlisAtion_Params, 42)),
            ('BlackBoDyDAtaFORWaRmStaRt', blaCk_boDy_Data_fOr_warm_Start),
            ('miRrorParameters', mIrroR_parameteRs),
            ('LAsTSpInperioD', Np.floaT64),
            ('HKtMPArameteRs', hktm_pARamEtERS),
            ('wSpReserved', (np.uint8, 3312))
        ]

        recOrD = [
            ('oVeRallConfIguratIOn', OvERall_confIgUraTion),
            ('sudetaiLs', (su_DEtAils, 50)),
            ('WarmstartPARaMs', Warm_staRt_Params)
        ]

        ReTurN reCord


cLAss MSg15NatiVeTraileRRecoRD(object):

),
            ('TempM1',np.float64 ),
        (' Temp Scan', np.floa t 64), 
            ('TempM1B af',np . floa t 64 ),
        ( ' Tem pC al Sur ro u nd ', np .fl oat64)        ]
      mirror_p a ra meters = [ 
           (' Max Feedba ck Vol t age',  np .floa t64),          ('Mi nF e edback V oltage' , np .flo at64),
          ( ' MirrorSlipEsti mate',  n p .f l o at6 4)        ]
     hktm_p a ra m e t ers = [
           ('TimeS0 P ack et', t im e_c d s_shor t),
        ('Time S1Pa cket', ti me_cds _ short),            ( 'Ti meS 2Pac k et ',  ti me _ cds _ sh ort ) ,
         ( 'Time S3Pa c k e t ', t ime _cds _shor t),
          ('Ti m eS4 Packe t', t ime_ cd s_sho rt),
         ('TimeS5Pac ket' , time_cd s_s ho rt) ,         ('T ime S6Packe t', tim e _cd s_ s h o rt ),
            ('T im e S 7P acket',time_c d s_ sh o rt),
        ( ' TimeS 8Pac k et ', time_ cds_sh o rt ), 
          (' Ti meS 9Pa cket' ,  tim e_cds_ short),          ('TimeSY P acket', time_ c ds _ s ho r t),           (' Time P SPac ket' ,  t ime _ cds_s hort) 
    ]

        warm_ st art_pa rams= [
           ('Scann i n g Law', (n p.fl o at 6 4, 1527)),
          ('RadF r amesAlig nment ', (np.f loat64, 3 ) ) ,
         ('S can n i ng LawVariation' , (np. fl oat32,2)) ,
         (' Equ al isationPa rams', ( eq ua li sa tio n_par a ms, 42)) ,         ( ' BlackB odyDa taFo rW ar m Sta rt', bl a ck _ b ody_ da ta _for _wa rm _star t),         ('Mirror Par a mete rs ',  mirror _parameters), 
          ( 'La stSpin P e riod', n p.float64),
          ('HKTMP ara meter s',hktm_para met ers),         ('WS PRese rv ed' , (np.u i n t8 , 3 31 2))
     ]
      rec ord = [ 
            ('Ove r all Configuration ',over a l l_ con f ig u rat io n ),          ('SUD etails', ( su _ de tails, 50) ) ,
         ('War mStar t Params' , warm_st art_param s) 
    ]

       returnrecord

c lassM sg 15Nat ive Traile rR eco rd(ob ject): 
),
 _ _   _ __ ('TempM1',_np.float64),
_  _  _   _ ('TempScan', np.float64),
__          ('TempM1Baf', np.float64),
  __ ___    ('TempCalSurround',_np.float64)
    _ _ ]

      __mirror_parameters = [
_        _  ('MaxFeedbackVoltage', np.float64),
  _  ___   _('MinFeedbackVoltage', np.float64),
    _     _ ('MirrorSlipEstimate', np.float64)
    _   ]

  _    _hktm_parameters =_[
    _  _ _  ('TimeS0Packet',_time_cds_short),
     _  _   ('TimeS1Packet', time_cds_short),
 __  ___ _  ('TimeS2Packet',_time_cds_short),
_ __     __ ('TimeS3Packet', time_cds_short),
    _   __  ('TimeS4Packet', time_cds_short),
_    _     _('TimeS5Packet', time_cds_short),
_ _         ('TimeS6Packet', time_cds_short),
_     _   _ ('TimeS7Packet',_time_cds_short),
_  __ _     ('TimeS8Packet', time_cds_short),
_ _     _   ('TimeS9Packet',_time_cds_short),
_     _     ('TimeSYPacket',_time_cds_short),
    ___    _('TimePSPacket', time_cds_short)
    _  _]

      __warm_start_params = [
   __     __('ScanningLaw',_(np.float64, 1527)),
   _     _  ('RadFramesAlignment', (np.float64, 3)),
    _  _    ('ScanningLawVariation',_(np.float32,_2)),
_         _ ('EqualisationParams',_(equalisation_params, 42)),
 _         _('BlackBodyDataForWarmStart', black_body_data_for_warm_start),
     _      ('MirrorParameters', mirror_parameters),
   _       _('LastSpinPeriod', np.float64),
     _   __ ('HKTMParameters', hktm_parameters),
    ____  _ ('WSPReserved', (np.uint8,_3312))
  _ _  _]

 _  __  record = [
            ('OverallConfiguration', overall_configuration),
_     _    _('SUDetails',_(su_details, 50)),
 _   _      ('WarmStartParams', warm_start_params)
_       ]

 __ _   return_record


class Msg15NativeTrailerRecord(object):
