group InformationElements {

  // Type definitions.

  type enumerated AckRequest {
    e_noAckReq ( 0 ),
    e_AckReq ( 1 ),
    e_rsv2 ( 2 ),
    e_rsv3 ( 3 )
  } with {    
    encode "2 bit"
  }

  type UInt8 ApplicableCommonId ( 1 . . 254 );

  type Bit12 CalledIdUP;

  type Bit12 CalledIdLP;

  type union ChannelNumber {
    IsfChannelNr isfChannelNr,
    CsfChannelNr csfChannelNr
  }

  type record CiInfoNormalDataT1T2 {
    DataFormat format,
    Reserved4bit reserved4bit
  }

  type record CiInfoNormalDataT3 {
    PdS pdS,
    PdM pdM
  }

  type union CiInfoNormalOrPws {
    CiInformationNormal ciInformationNormal,
    CiInformationPws ciInformationPws
  }

  type union CallInformation {
    CiInformationNormalOrPws ciInformationNormalOrPws,
    CiInformationSysTrans ciInformationSysTrans,
    CiInformationAck ciInformationAck
  }

  type record CiInformationAck {
    CiTypeAck ciTypeAck,
    CiInfoAck ciInfoAck
  }

  type enumerated CiTypeAck {
    e_rsv0 ( 0 ),
    e_ack ( 1 ),
    e_nackReqResend ( 2 ),
    e_nackReqDenied ( 3 ),
    e_rsv4 ( 4 ),
    e_rsv5 ( 5 ),
    e_rsv6 ( 6 ),
    e_rsv7 ( 7 )
  } with {    
    encode "3 bit"
  }

  type Bit8 CiInfoAck;

  type union CiInformationNormal {
    CiInfoNormalDataT1T2 ciInfoNormalDataT1T2,
    CiInfoNormalDataT3 ciInfoNormalDataT3
  }

  type record CiInformationNormalOrPws {
    CiTypeNormalOrPws ciTypeNormalOrPws,
    CiInfoNormalOrPws ciInfoNormalOrPws
  }

  type record CiInformationSysTrans {
    CiTypeSysTrans ciTypeSysTrans,
    CiInfoSysTrans ciInfoSysTrans
  }

  type enumerated CiTypeSysTrans {
    e_rsv0 ( 0 ),
    e_dynGrpReqAnswDev ( 1 ),
    e_rsv2 ( 2 ),
    e_rsv3 ( 3 ),
    e_esnReqRpl ( 4 ),
    e_mfidReqRpl ( 5 ),
    e_contactStationAddr ( 6 ),
    e_rsv7 ( 7 )
  } with {    
    encode "3 bit"
  }

  type Bit8 CiInfoSysTrans;

  type enumerated CiInformationPws {
    e_normalHdrFrame ( 0 ),
    e_extHdrFrame1 ( 1 ),
    e_extHdrFrame2 ( 2 ),
    e_extHdrFrame3 ( 3 ),
    e_extHdrFrame4 ( 4 ),
    e_extHdrFrame5 ( 5 ),
    e_extHdrFrame6 ( 6 ),
    e_extHdrFrame7 ( 7 ),
    e_extHdrFrame8 ( 8 ),
    e_extHdrFrame9 ( 9 ),
    e_extHdrFrame10 ( 10 ),
    e_extHdrFrame11 ( 11 ),
    e_extHdrFrame12 ( 12 ),
    e_extHdrFrame13 ( 13 ),
    e_extHdrFrame14 ( 14 ),
    e_extHdrFrame15 ( 15 ),
    e_reserved ( 16 )
  } with {    
    encode "8 bit"
  }

  type enumerated CiTypeNormalOrPws {
    e_reserved0 ( 0 ),
    e_dataT1T2 ( 1 ),
    e_reserved2 ( 2 ),
    e_dataT3 ( 3 ),
    e_reserved4 ( 4 ),
    e_reserved5 ( 5 ),
    e_reserved6 ( 6 ),
    e_extendWakeupHdr ( 7 )
  } with {    
    encode "3 bit"
  }

  type Bit8 Common_ID;

  type bitstring IsfColourCode;

  type bitstring CsfColourCode;

  type union ColourCode {
    IsfColourCode isfColourCode,
    CsfColourCode csfColourCode
  }

  type enumerated CommunicationsMode {
    e_voice ( 0 ),
    e_voiceSlowData ( 1 ),
    e_dataT1 ( 2 ),
    e_dataT2 ( 3 ),
    e_dataT3 ( 4 ),
    e_voiceDataT2 ( 5 ),
    e_rsv6 ( 6 ),
    e_rsv7 ( 7 )
  } with {    
    encode "2 bits"
  }

  type enumerated CommsFormat {
    e_callAll ( 0 ),
    e_p2p ( 1 ),
    e_rsv2 ( 2 ),
    e_rsv3 ( 3 ),
    e_other ( 4 )
  } with {    
    encode "4 bits"
  }

  type enumerated ContFlag {
    e_continueAfterFrame ( 0 ),
    e_finishAfterFrame ( 1 )
  } with {    
    encode "1 bit"
  }

  type enumerated Continue {
    e_continue ( 0 ),
    e_terminate ( 1 )
  }

  type Bit16 CrcD;

  type Bit24 CSFAddress;

  type enumerated CsfChannelNr {
    e_csfChannelNr_1 ( 1 ),
    e_csfChannelNr_2 ( 2 ),
    e_csfChannelNr_3 ( 3 ),
    e_csfChannelNr_4 ( 4 ),
    e_csfChannelNr_5 ( 5 ),
    e_csfChannelNr_6 ( 6 ),
    e_csfChannelNr_7 ( 7 ),
    e_csfChannelNr_8 ( 8 ),
    e_csfChannelNr_9 ( 9 ),
    e_csfChannelNr_10 ( 10 ),
    e_csfChannelNr_11 ( 11 ),
    e_csfChannelNr_12 ( 12 ),
    e_csfChannelNr_13 ( 13 ),
    e_csfChannelNr_14 ( 14 ),
    e_csfChannelNr_15 ( 15 ),
    e_csfChannelNr_16 ( 16 )
  }

  type union Data {
    UserDataPds0 userDataPds0,
    UserDataPds1 userDataPds1,
    UserDataPds2 userDataPds2,
    UserDataPds3 userDataPds3
  }

  type enumerated DataFormat {
    e_statusMessage ( 0 ),
    e_precodedMessage ( 1 ),
    e_freeTextMessage ( 2 ),
    e_shortFileTransfer ( 3 ),
    e_userDefData1 ( 4 ),
    e_userDefData2 ( 5 ),
    e_userDefData3 ( 6 ),
    e_userDefData4 ( 7 ),
    e_other ( 8 )
  } with {    
    encode "4 bits"
  }

  type Bit6 DataLength;

  type enumerated DataPosition {
    e_NoDataInFrame ( 0 ),
    e_rsv1 ( 1 ),
    e_rsv2 ( 2 ),
    e_DataInFrame ( 3 )
  } with {    
    encode "2 bits"
  }

  type enumerated EndType {
    e_endFrame ( 0 ),
    e_endFrameWithStatusMsg ( 1 ),
    e_rsv2 ( 2 ),
    e_rsv3 ( 3 )
  } with {    
    encode "2 bit"
  }

  type Bit16 FixedPart;

  type enumerated FrameNumber {
    e_frame1 ( 0 ),
    e_frame2 ( 1 ),
    e_frame3 ( 3 ),
    e_frame4 ( 4 )
  } with {    
    encode "2 bits"
  }

  type Bit48 FrameSync1;

  type Bit24 FrameSync2;

  type Bit24 FrameSync3;

  type Bit48 FrameSync4;

  type Bit24 FrameSync24;

  type Bit48 FrameSync48;

  type enumerated HeaderType {
    e_commStartHeader ( 0 ),
    e_connReqHeader ( 1 ),
    e_unconnReqHeader ( 2 ),
    e_ackHeader ( 3 ),
    e_sysReqHeader ( 4 ),
    e_ackHdrReply ( 5 ),
    e_sysDelivHdr ( 6 ),
    e_statusRspHdr ( 7 ),
    e_statusReqHdr ( 8 ),
    e_rsv9 ( 9 )
  } with {    
    encode "4 bit"
  }

  type record ISFAddress {
    Common_ID common_ID,
    FixedPart fixedPart
  }

  type enumerated IsfChannelNr {
    e_isfChannelNr_1 ( 1 ),
    e_isfChannelNr_2 ( 2 ),
    e_isfChannelNr_3 ( 3 ),
    e_isfChannelNr_4 ( 4 ),
    e_isfChannelNr_5 ( 5 ),
    e_isfChannelNr_6 ( 6 ),
    e_isfChannelNr_7 ( 7 ),
    e_isfChannelNr_8 ( 8 ),
    e_isfChannelNr_9 ( 9 ),
    e_isfChannelNr_10 ( 10 ),
    e_isfChannelNr_11 ( 11 ),
    e_isfChannelNr_12 ( 12 ),
    e_isfChannelNr_13 ( 13 ),
    e_isfChannelNr_14 ( 14 ),
    e_isfChannelNr_15 ( 15 ),
    e_isfChannelNr_16 ( 16 )
  }

  type union MsAddress {
    ISFAddress isfAddress,
    CSFAddress csfAddress
  }

  type octetstring Oct36 length ( 36 ) with {    
    encode "36 bytes"
  };

  type octetstring Oct84 length ( 84 ) with {    
    encode "84 bytes"
  };

  type octetstring Oct132 length ( 132 ) with {    
    encode "132 bytes"
  };

  type octetstring Oct180 length ( 180 ) with {    
    encode "180 bytes"
  };

  type Bit12 OwnIdLP;

  type Bit12 OwnIdUP;

  type UInt3 PacketDataFrameNumber;

  type record PacketFrame {
    ColourCode colourCode,
    PacketDataFrameNumber packetDataFrameNumber,
    ValidDataLen validDataLength,
    Reserved14Bit reserved14bit,
    CrcD crcForData,
    Data data
  }

  type record Payload {
    Oct9 payLoad1,
    Oct9 payLoad2,
    Oct9 payLoad3,
    Oct9 payLoad4
  }

  type enumerated PdM {
    e_pdM0 ( 0 ),
    e_pdM1 ( 1 ),
    e_pdM2 ( 2 ),
    e_pdM3 ( 3 ),
    e_pdM4 ( 4 ),
    e_pdM5 ( 5 ),
    e_pdM6 ( 6 ),
    e_pdM7 ( 7 ),
    e_rsv8 ( 8 )
  } with {    
    encode "4 bit"
  }

  type enumerated PdS {
    e_frmTm80ms ( 0 ),
    e_frmTm160ms ( 1 ),
    e_frmTm240ms ( 2 ),
    e_frmTm320ms ( 3 ),
    e_rsv4 ( 4 )
  } with {    
    encode "4 bit"
  }

  type Bit72 Preamble;

  type Bit2 Reserved2bit;

  type Bit4 Reserved4bit;

  type Bit5 Reserved5bit;

  type Bit14 Reserved14Bit;

  type union SlowData {
    SlowDataInVoice slowDataInVoice,
    SlowDataInDataT1OrT2 slowDataInDataT1OrT2
  }

  type record SlowDataInDataT1OrT2 {
    Reserved5bit reserved5bit,
    DataPosition dataPosition,
    DataFormat format,
    ContFlag contFlag,
    DataLength dataLength
  }

  type record SlowDataInVoice {
    Continue cont1,
    UserData userData1,
    Continue cont2,
    UserData userData2
  }

  type Bit5 StatusMessage;

  type enumerated TxWait {
    e_noSpecTime ( 0 ),
    e_halfFrame40ms ( 1 ),
    e_oneFrame80ms ( 2 ),
    e_twoFrames160ms ( 3 ),
    e_fourFrames320ms ( 4 ),
    e_rsv5 ( 5 )
  } with {    
    encode "4 bit"
  }

  type Bit8 UserData;

  type Oct36 UserDataPds0;

  type Oct84 UserDataPds1;

  type Oct132 UserDataPds2;

  type Oct180 UserDataPds3;

  type UInt8 ValidDataLen;
}
Generated with T3Doc 2.0 on Fri Feb 22 17:24:45 CET 2008.