以下ASN.1语法结构里,extensionContainer怎么解释,如果翻译成C语言结构体,应该怎么定义出来?
lcs-QoS [2] IMPLICIT SEQUENCE {
horizontal-accuracy [0] IMPLICIT OCTET STRING ( SIZE( 1 ) ) OPTIONAL,
verticalCoordinateRequest [1] IMPLICIT NULL OPTIONAL,
vertical-accuracy [2] IMPLICIT OCTET STRING ( SIZE( 1 ) ) OPTIONAL,
responseTime [3] IMPLICIT SEQUENCE {
responseTimeCategory ENUMERATED {
lowdelay ( 0 ),
delaytolerant ( 1 ),
... },
... } OPTIONAL,
extensionContainer [4] IMPLICIT SEQUENCE {
privateExtensionList [0] IMPLICIT SEQUENCE ( SIZE( 1 .. 10 ) ) OF
SEQUENCE {
extId MAP-EXTENSION .&extensionId ( {
,
...} ) ,
extType MAP-EXTENSION .&ExtensionType ( {
,
...} { @extId } ) OPTIONAL} OPTIONAL,
pcs-Extensions [1] IMPLICIT SEQUENCE {
... } OPTIONAL,
... } OPTIONAL,
... ,
velocityRequest [5] IMPLICIT NULL OPTIONAL} OPTIONAL,
完整结构如下:
lcs-MOLR OPERATION ::= {
ARGUMENT SEQUENCE {
molr-Type [0] IMPLICIT ENUMERATED {
locationEstimate ( 0 ),
assistanceData ( 1 ),
deCipheringKeys ( 2 ),
... ,
deferredMo-lrTTTPInitiation ( 3 ),
deferredMo-lrSelfLocationInitiation ( 4 ),
deferredMt-lrOrmo-lrTTTPLocationEstimate ( 5 ),
deferredMt-lrOrmo-lrCancellation ( 6 ) },
locationMethod [1] IMPLICIT ENUMERATED {
msBasedEOTD ( 0 ),
msAssistedEOTD ( 1 ),
assistedGPS ( 2 ),
... ,
msBasedOTDOA ( 3 ),
assistedGANSS ( 4 ),
assistedGPSandGANSS ( 5 ) } OPTIONAL,
lcs-QoS [2] IMPLICIT SEQUENCE {
horizontal-accuracy [0] IMPLICIT OCTET STRING ( SIZE( 1 ) ) OPTIONAL,
verticalCoordinateRequest [1] IMPLICIT NULL OPTIONAL,
vertical-accuracy [2] IMPLICIT OCTET STRING ( SIZE( 1 ) ) OPTIONAL,
responseTime [3] IMPLICIT SEQUENCE {
responseTimeCategory ENUMERATED {
lowdelay ( 0 ),
delaytolerant ( 1 ),
... },
... } OPTIONAL,
extensionContainer [4] IMPLICIT SEQUENCE {
privateExtensionList [0] IMPLICIT SEQUENCE ( SIZE( 1 .. 10 ) ) OF
SEQUENCE {
extId MAP-EXTENSION .&extensionId ( {
,
...} ) ,
extType MAP-EXTENSION .&ExtensionType ( {
,
...} { @extId } ) OPTIONAL} OPTIONAL,
pcs-Extensions [1] IMPLICIT SEQUENCE {
... } OPTIONAL,
... } OPTIONAL,
... ,
velocityRequest [5] IMPLICIT NULL OPTIONAL} OPTIONAL,
lcsClientExternalID [3] IMPLICIT SEQUENCE {
externalAddress [0] IMPLICIT OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) OPTIONAL,
extensionContainer [1] IMPLICIT SEQUENCE {
privateExtensionList [0] IMPLICIT SEQUENCE ( SIZE( 1 .. 10 ) ) OF
SEQUENCE {
extId MAP-EXTENSION .&extensionId ( {
,
...} ) ,
extType MAP-EXTENSION .&ExtensionType ( {
,
...} { @extId } ) OPTIONAL} OPTIONAL,
pcs-Extensions [1] IMPLICIT SEQUENCE {
... } OPTIONAL,
... } OPTIONAL,
... } OPTIONAL,
mlc-Number [4] IMPLICIT OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) OPTIONAL,
gpsAssistanceData [5] IMPLICIT OCTET STRING ( SIZE( 1 .. 38 ) ) OPTIONAL,
... ,
supportedGADShapes [6] IMPLICIT BIT STRING {
ellipsoidPoint (0 ),
ellipsoidPointWithUncertaintyCircle (1 ),
ellipsoidPointWithUncertaintyEllipse (2 ),
polygon (3 ),
ellipsoidPointWithAltitude (4 ),
ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5 ),
ellipsoidArc (6 )} ( SIZE( 7 .. 16 ) ) OPTIONAL,
lcsServiceTypeID [7] IMPLICIT INTEGER ( 0 .. 127 ) OPTIONAL,
ageOfLocationInfo [8] IMPLICIT INTEGER ( 0 .. 32767 ) OPTIONAL,
locationType [9] IMPLICIT SEQUENCE {
locationEstimateType [0] IMPLICIT ENUMERATED {
currentLocation ( 0 ),
currentOrLastKnownLocation ( 1 ),
initialLocation ( 2 ),
... ,
activateDeferredLocation ( 3 ),
cancelDeferredLocation ( 4 ),
notificationVerificationOnly ( 5 ) },
... ,
deferredLocationEventType [1] IMPLICIT BIT STRING {
msAvailable (0 ),
enteringIntoArea (1 ),
leavingFromArea (2 ),
beingInsideArea (3 ),
periodicLDR (4 )} ( SIZE( 1 .. 16 ) ) OPTIONAL} OPTIONAL,
pseudonymIndicator [10] IMPLICIT NULL OPTIONAL,
h-gmlc-address [11] IMPLICIT OCTET STRING ( SIZE( 5 .. 17 ) ) OPTIONAL,
locationEstimate [12] IMPLICIT OCTET STRING ( SIZE( 1 .. 20 ) ) OPTIONAL,
velocityEstimate [13] IMPLICIT OCTET STRING ( SIZE( 4 .. 7 ) ) OPTIONAL,
referenceNumber [14] IMPLICIT OCTET STRING ( SIZE( 1 ) ) OPTIONAL,
periodicLDRInfo [15] IMPLICIT SEQUENCE {
reportingAmount INTEGER ( 1 .. 8639999 ),
reportingInterval INTEGER ( 1 .. 8639999 ),
... } OPTIONAL,
locationUpdateRequest [16] IMPLICIT NULL OPTIONAL,
sequenceNumber [17] IMPLICIT INTEGER ( 1 .. 8639999 ) OPTIONAL,
terminationCause [18] IMPLICIT ENUMERATED {
subscriberTermination ( 0 ),
uETermination ( 1 ),
... } OPTIONAL,
mo-lrShortCircuit [19] IMPLICIT NULL OPTIONAL,
ganssAssistanceData [20] IMPLICIT OCTET STRING ( SIZE( 1 .. 40 ) ) OPTIONAL,
multiplePositioningProtocolPDUs [21] IMPLICIT SEQUENCE ( SIZE( 1 .. 3 ) ) OF
OCTET STRING OPTIONAL}
RESULT SEQUENCE {
locationEstimate [0] IMPLICIT OCTET STRING ( SIZE( 1 .. 20 ) ) OPTIONAL,
decipheringKeys [1] IMPLICIT OCTET STRING ( SIZE( 15 ) ) OPTIONAL,
... ,
add-LocationEstimate [2] IMPLICIT OCTET STRING ( SIZE( 1 .. 91 ) ) OPTIONAL,
velocityEstimate [3] IMPLICIT OCTET STRING ( SIZE( 4 .. 7 ) ) OPTIONAL,
referenceNumber [4] IMPLICIT OCTET STRING ( SIZE( 1 ) ) OPTIONAL,
h-gmlc-address [5] IMPLICIT OCTET STRING ( SIZE( 5 .. 17 ) ) OPTIONAL,
mo-lrShortCircuit [6] IMPLICIT NULL OPTIONAL,
reportingPLMNList [7] IMPLICIT SEQUENCE {
plmn-ListPrioritized [0] IMPLICIT NULL OPTIONAL,
plmn-List [1] IMPLICIT SEQUENCE ( SIZE( 1 .. 20 ) ) OF
SEQUENCE {
plmn-Id [0] IMPLICIT OCTET STRING ( SIZE( 3 ) ),
ran-Technology [1] IMPLICIT ENUMERATED {
gsm ( 0 ),
umts ( 1 ),
... } OPTIONAL,
ran-PeriodicLocationSupport [2] IMPLICIT NULL OPTIONAL,
... },
... } OPTIONAL}
ERRORS {
systemFailure |
unexpectedDataValue |
dataMissing |
facilityNotSupported |
ss-SubscriptionViolation |
positionMethodFailure }
CODE local : 115
}