LibItsDcc_TypesAndValues.ttcn 4.35 KB
Newer Older
schmitting's avatar
schmitting committed
/**
 *  @author     ETSI / STF421
 *  @version    $URL:$
 *              $Id:$
 *  @desc       DCC (TS 102 724) Types
 *  @see        ETSI TS 102 917-3
 */
module LibItsDcc_TypesAndValues {
    
    // LibCommon
    
    // LibIts
    
    group utRadioPrimitives {
        
        /**
         * @desc Trigger to initialize the IUT.
         */
        type record UtRadioInitialize {
        }
        
        /**
         * @desc Radio Event to bring the IUT to defined channel states.
         */
        type record UtRadioEvent {
            ChannelState cchChannelState optional,
            ChannelState sch1ChannelState optional,
            ChannelState sch2ChannelState optional,
            ChannelState sch3ChannelState optional,
            ChannelState sch4ChannelState optional
        }
        
    } // End of group utRadioPrimitives
    
    group rrxSapPrimitives {
        /**
         * @desc Receive an indication related to frames sent by the IUT at the radio interface.
         */
        type record RrxInd { 
            Channel channel,
schmitting's avatar
schmitting committed
            integer measuredPower
schmitting's avatar
schmitting committed
        }
        
    } // End of group rrxSapPrimitives

    group inSapPrimitives {
        
            /**
             * @desc IN Request Primitive 
             */
            type record InReq {
                integer     commandReference,
                octetstring referenceBurst,
                integer     requestedSendPower,
                integer     dCCProfileIdentifier
            } // End InReq
            
            /**
             * @desc IN Status Primitive 
             */
            type record InSta {
                integer commandReference,
                Channel channel,
                boolean transmissionSuccessStatus,
                integer achievedSendPower
            } // End InSta
            
    } // End of group inSapPrimitives

    group subFields {

        type enumerated Channel {
             cCH(0),
             sCH1(1),
             sCH2(2),
             sCH3(3),
             sCH4(4)
        }
            
        type enumerated ChannelState {
             relaxed(0),
             active(1),
             restrictive(2)
        }
            
    } // End of group subFields
    
tepelmann's avatar
tepelmann committed
    group moduleParTables {
        
        type integer ProfileType(0..infinity);
        
        type record ProfileTimeAspect {
            ProfileType profile,
            float messageInterval, //in Hz
            float tOff //in ms
        }
        
        type record of ProfileTimeAspect ProfileTimeAspects;
        
        type record ChannelTimeAspect {
            ChannelState cchState,
            float messageInterval, //in Hz
            float tOff, //in ms
tepelmann's avatar
tepelmann committed
            record of ChannelState sch1States
        }
        
        type record of ChannelTimeAspect ChannelTimeAspects;
        
        type record SingleChannelTimeAspect {
            ChannelState cchState,
            float messageInterval, //in Hz
            float tOff, //in ms
            ChannelState sch1State
tepelmann's avatar
tepelmann committed
        }
        
        type record ProfileChannelTimeAspect {
            ProfileType profile,
tepelmann's avatar
tepelmann committed
            ChannelTimeAspects aspects
        }
        
        type record ProfileSingleChannelTimeAspect {
            ProfileType profile,
            SingleChannelTimeAspect aspects
tepelmann's avatar
tepelmann committed
        }
        
        type record of ProfileChannelTimeAspect ProfileChannelTimeAspects;
        
        type record ProfileTimeChannelAspect {
            ProfileType profile,
            ChannelTimeAspect aspects
        }
        
        type record of ProfileTimeChannelAspect ProfileTimeChannelAspects;
        
        type record ProfileChannelAspect {
            ProfileType profile,
            record of record {
                ChannelState cchState,
                record of record {
                    ChannelState sch1State,
                    ChannelState sch2State
                } states
            } aspects
        }
        
        type record of ProfileChannelAspect ProfileChannelAspects;
        
    }
    
schmitting's avatar
schmitting committed
    group Constants {
        
        const integer c_maxCommandReference := 256;
     
     } // End of group Constants
}
with {
    encode "LibItsDcc_TypesAndValues"
} //End of module LibItsDcc_TypesAndValues