1488 lines
46 KiB
Groff
1488 lines
46 KiB
Groff
-- RRLP-Components.asn
|
|
--
|
|
-- Taken from 3GPP TS 44.031 V7.4.0 (2007-03)
|
|
-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-740.zip/44031-740.doc
|
|
--
|
|
-- 4 Components
|
|
-- 5 Elements of Components
|
|
--
|
|
|
|
RRLP-Components
|
|
-- { RRLP-Components }
|
|
|
|
DEFINITIONS AUTOMATIC TAGS ::=
|
|
|
|
BEGIN
|
|
|
|
IMPORTS
|
|
Ext-GeographicalInformation, VelocityEstimate
|
|
FROM
|
|
MAP-LCS-DataTypes {
|
|
ccitt identified-organization (4) etsi (0) mobileDomain (0)
|
|
gsm-Network (1) modules (3) map-LCS-DataTypes (25) version5 (5)}
|
|
|
|
ExtensionContainer
|
|
FROM MAP-ExtensionDataTypes {
|
|
ccitt identified-organization (4) etsi (0) mobileDomain (0)
|
|
gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)}
|
|
;
|
|
|
|
-- Add here other ASN.1 definitions presented below
|
|
-- in chapters 4 and 5.
|
|
|
|
-- Measurement Position request component
|
|
MsrPosition-Req ::= SEQUENCE {
|
|
positionInstruct PositionInstruct,
|
|
referenceAssistData ReferenceAssistData OPTIONAL,
|
|
msrAssistData MsrAssistData OPTIONAL,
|
|
systemInfoAssistData SystemInfoAssistData OPTIONAL,
|
|
gps-AssistData GPS-AssistData OPTIONAL,
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...,
|
|
-- Release 98 extension element
|
|
rel98-MsrPosition-Req-extension Rel98-MsrPosition-Req-Extension OPTIONAL,
|
|
-- Release 5 extension element
|
|
rel5-MsrPosition-Req-extension Rel5-MsrPosition-Req-Extension OPTIONAL,
|
|
-- Release 7 extension element
|
|
rel7-MsrPosition-Req-extension Rel7-MsrPosition-Req-Extension OPTIONAL
|
|
}
|
|
|
|
-- Measurement Position response component
|
|
MsrPosition-Rsp ::= SEQUENCE {
|
|
multipleSets MultipleSets OPTIONAL,
|
|
referenceIdentity ReferenceIdentity OPTIONAL,
|
|
otd-MeasureInfo OTD-MeasureInfo OPTIONAL,
|
|
locationInfo LocationInfo OPTIONAL,
|
|
gps-MeasureInfo GPS-MeasureInfo OPTIONAL,
|
|
locationError LocationError OPTIONAL,
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...,
|
|
-- Release extension here
|
|
rel-98-MsrPosition-Rsp-Extension
|
|
Rel-98-MsrPosition-Rsp-Extension OPTIONAL,
|
|
rel-5-MsrPosition-Rsp-Extension
|
|
Rel-5-MsrPosition-Rsp-Extension OPTIONAL,
|
|
-- rel-5-MsrPosition-Rsp-Extension and other possible future extensions
|
|
-- are the only information elements that may be included in the 2nd
|
|
-- MsrPosition-Rsp component when RRLP pseudo-segmentation is used
|
|
rel-7-MsrPosition-Rsp-Extension
|
|
Rel-7-MsrPosition-Rsp-Extension OPTIONAL
|
|
}
|
|
|
|
-- Assistance Data component
|
|
AssistanceData ::= SEQUENCE {
|
|
referenceAssistData ReferenceAssistData OPTIONAL,
|
|
msrAssistData MsrAssistData OPTIONAL,
|
|
systemInfoAssistData SystemInfoAssistData OPTIONAL,
|
|
gps-AssistData GPS-AssistData OPTIONAL,
|
|
moreAssDataToBeSent MoreAssDataToBeSent OPTIONAL, -- If not present, interpret as only
|
|
-- Assistance Data component used to
|
|
-- deliver entire set of assistance
|
|
-- data.
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...,
|
|
-- Release extension here
|
|
rel98-AssistanceData-Extension Rel98-AssistanceData-Extension OPTIONAL,
|
|
rel5-AssistanceData-Extension Rel5-AssistanceData-Extension OPTIONAL,
|
|
rel7-AssistanceData-Extension Rel7-AssistanceData-Extension OPTIONAL
|
|
}
|
|
|
|
-- Protocol Error component
|
|
ProtocolError ::= SEQUENCE {
|
|
errorCause ErrorCodes,
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...,
|
|
-- Release extensions here
|
|
rel-5-ProtocolError-Extension Rel-5-ProtocolError-Extension OPTIONAL
|
|
}
|
|
|
|
-- Position instructions
|
|
PositionInstruct ::= SEQUENCE {
|
|
-- Method type
|
|
methodType MethodType,
|
|
positionMethod PositionMethod,
|
|
measureResponseTime MeasureResponseTime,
|
|
useMultipleSets UseMultipleSets,
|
|
environmentCharacter EnvironmentCharacter OPTIONAL
|
|
}
|
|
|
|
--
|
|
MethodType ::= CHOICE {
|
|
msAssisted AccuracyOpt, -- accuracy is optional
|
|
msBased Accuracy, -- accuracy is mandatory
|
|
msBasedPref Accuracy, -- accuracy is mandatory
|
|
msAssistedPref Accuracy -- accuracy is mandatory
|
|
}
|
|
|
|
-- Accuracy of the location estimation
|
|
AccuracyOpt ::= SEQUENCE {
|
|
accuracy Accuracy OPTIONAL
|
|
}
|
|
|
|
-- The values of this field are defined in 3GPP TS 23.032 (Uncertainty code)
|
|
Accuracy ::= INTEGER (0..127)
|
|
|
|
|
|
-- Position Method
|
|
PositionMethod ::= ENUMERATED {
|
|
eotd (0),
|
|
gps (1),
|
|
gpsOrEOTD (2)
|
|
}
|
|
|
|
-- Measurement request response time
|
|
MeasureResponseTime ::= INTEGER (0..7)
|
|
|
|
-- useMultiple Sets, FFS!
|
|
UseMultipleSets ::= ENUMERATED {
|
|
multipleSets (0), -- multiple sets are allowed
|
|
oneSet (1) -- sending of multiple is not allowed
|
|
}
|
|
|
|
-- Environment characterization
|
|
EnvironmentCharacter ::= ENUMERATED {
|
|
badArea (0), -- bad urban or suburban, heavy multipath and NLOS
|
|
notBadArea (1), -- light multipath and NLOS
|
|
mixedArea (2), -- not defined or mixed environment
|
|
...
|
|
}
|
|
|
|
-- E-OTD reference BTS for Assitance data IE
|
|
ReferenceAssistData ::= SEQUENCE {
|
|
bcchCarrier BCCHCarrier, -- BCCH carrier
|
|
bsic BSIC, -- BSIC
|
|
timeSlotScheme TimeSlotScheme, -- Timeslot scheme
|
|
btsPosition BTSPosition OPTIONAL
|
|
}
|
|
|
|
-- ellipsoid point and
|
|
-- ellipsoid point with altitude and uncertainty ellipsoid shapes are supported
|
|
BTSPosition ::= Ext-GeographicalInformation
|
|
|
|
-- RF channel number of BCCH
|
|
BCCHCarrier ::= INTEGER (0..1023)
|
|
|
|
-- Base station Identity Code
|
|
BSIC ::= INTEGER (0..63)
|
|
|
|
-- Timeslot scheme
|
|
TimeSlotScheme ::= ENUMERATED {
|
|
equalLength (0),
|
|
variousLength (1)
|
|
}
|
|
|
|
-- Time slot (modulo)
|
|
ModuloTimeSlot ::= INTEGER (0..3)
|
|
|
|
-- E-OTD measurement assistance data IE
|
|
-- The total number of neighbors in this element (MsrAssistData)
|
|
-- and in SystemInfoAssistData element (presented neighbors
|
|
-- can be at a maximum 15!)
|
|
MsrAssistData ::= SEQUENCE {
|
|
msrAssistList SeqOfMsrAssistBTS
|
|
}
|
|
SeqOfMsrAssistBTS ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS
|
|
|
|
MsrAssistBTS ::= SEQUENCE {
|
|
bcchCarrier BCCHCarrier, -- BCCH carrier
|
|
bsic BSIC, -- BSIC
|
|
multiFrameOffset MultiFrameOffset, -- multiframe offset
|
|
timeSlotScheme TimeSlotScheme, -- Timeslot scheme
|
|
roughRTD RoughRTD, -- rough RTD value
|
|
|
|
-- Location Calculation Assistance data is moved here
|
|
calcAssistanceBTS CalcAssistanceBTS OPTIONAL
|
|
}
|
|
|
|
-- Multiframe offset
|
|
MultiFrameOffset ::= INTEGER (0..51)
|
|
-- The Multiframe Offset value 51 shall not be encoded by the transmitting entity and
|
|
-- shall be treated by the receiving entity as 0.
|
|
|
|
-- Rough RTD value between one base station and reference BTS
|
|
RoughRTD ::= INTEGER (0..1250)
|
|
-- The RoughRTD value 1250 shall not be encoded by the transmitting entity and shall
|
|
-- be treated by the receiving entity as 0.
|
|
|
|
-- E-OTD Measurement assistance data for system information List IE
|
|
-- The total number of base stations in this element (SystemInfoAssistData
|
|
-- presented neighbors) and in MsrAssistData element can be at a maximum 15.
|
|
SystemInfoAssistData ::= SEQUENCE {
|
|
systemInfoAssistList SeqOfSystemInfoAssistBTS
|
|
}
|
|
SeqOfSystemInfoAssistBTS::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS
|
|
|
|
-- whether n.th is present or not ?
|
|
SystemInfoAssistBTS ::= CHOICE {
|
|
notPresent NULL,
|
|
present AssistBTSData
|
|
}
|
|
|
|
-- Actual assistance data for system information base station
|
|
AssistBTSData ::= SEQUENCE {
|
|
bsic BSIC, -- BSIC
|
|
multiFrameOffset MultiFrameOffset, -- multiframe offset
|
|
timeSlotScheme TimeSlotScheme, -- Timeslot scheme
|
|
roughRTD RoughRTD, -- rough RTD value
|
|
|
|
-- Location Calculation Assistance data
|
|
calcAssistanceBTS CalcAssistanceBTS OPTIONAL
|
|
}
|
|
|
|
-- E-OTD Location calculation assistance data,
|
|
-- CalcAssistanceBTS element is optional not subfields
|
|
CalcAssistanceBTS ::= SEQUENCE {
|
|
fineRTD FineRTD, -- fine RTD value between base stations
|
|
referenceWGS84 ReferenceWGS84 -- reference coordinates
|
|
}
|
|
|
|
-- Coordinates of neighbour BTS, WGS-84 ellipsoid
|
|
ReferenceWGS84 ::= SEQUENCE {
|
|
relativeNorth RelDistance, -- relative distance (south negative)
|
|
relativeEast RelDistance, -- relative distance (west negative)
|
|
-- Relative Altitude is not always known
|
|
relativeAlt RelativeAlt OPTIONAL -- relative altitude
|
|
}
|
|
|
|
-- Fine RTD value between this BTS and the reference BTS
|
|
FineRTD ::= INTEGER (0..255)
|
|
|
|
-- Relative north/east distance
|
|
RelDistance ::= INTEGER (-200000..200000)
|
|
|
|
-- Relative altitude
|
|
RelativeAlt ::= INTEGER (-4000..4000)
|
|
|
|
-- Measure position response IEs
|
|
-- Reference Identity
|
|
-- Multiple sets
|
|
MultipleSets ::= SEQUENCE {
|
|
-- number of reference sets
|
|
nbrOfSets INTEGER (2..3),
|
|
|
|
-- This field actually tells the number of reference BTSs
|
|
nbrOfReferenceBTSs INTEGER (1..3),
|
|
|
|
-- This field is conditional and included optionally only if
|
|
-- nbrOfSets is 3 and number of reference BTSs is 2.
|
|
referenceRelation ReferenceRelation OPTIONAL
|
|
}
|
|
|
|
-- Relation between refence BTSs and sets
|
|
ReferenceRelation ::= ENUMERATED {
|
|
secondBTSThirdSet (0), -- 1st BTS related to 1st and 2nd sets
|
|
secondBTSSecondSet (1), -- 1st BTS related to 1st and 3rd sets
|
|
firstBTSFirstSet (2) -- 1st BTS related to 1st set
|
|
}
|
|
|
|
-- Reference BTS Identity, this element contains number of
|
|
-- BTSs told nbrOfReferenceBTSs field in Multiple sets element)
|
|
ReferenceIdentity ::= SEQUENCE {
|
|
-- Reference BTS list
|
|
refBTSList SeqOfReferenceIdentityType
|
|
}
|
|
SeqOfReferenceIdentityType ::= SEQUENCE (SIZE(1..3)) OF ReferenceIdentityType
|
|
|
|
-- Cell identity
|
|
ReferenceIdentityType ::= CHOICE {
|
|
bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
|
|
ci CellID, -- Cell ID, LAC not needed
|
|
requestIndex RequestIndex, -- Index to Requested Neighbor List
|
|
systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of ref. identity
|
|
-- shall not be used by the MS unless it has received
|
|
-- the SystemInfoAssistData from the SMLC for this cell.
|
|
ciAndLAC CellIDAndLAC -- CI and LAC
|
|
}
|
|
|
|
BSICAndCarrier ::= SEQUENCE {
|
|
carrier BCCHCarrier,
|
|
bsic BSIC
|
|
}
|
|
|
|
RequestIndex ::= INTEGER (1..16)
|
|
|
|
SystemInfoIndex ::= INTEGER (1..32)
|
|
|
|
CellIDAndLAC ::= SEQUENCE {
|
|
referenceLAC LAC, -- Location area code
|
|
referenceCI CellID -- Cell identity
|
|
}
|
|
CellID ::= INTEGER (0..65535)
|
|
LAC ::= INTEGER (0..65535)
|
|
|
|
-- OTD-MeasureInfo
|
|
OTD-MeasureInfo ::= SEQUENCE {
|
|
-- Measurement info elements, OTD-MsrElement is repeated number of times
|
|
-- told in nbrOfReferenceBTSs in MultipleSets, default value is 1
|
|
otdMsrFirstSets OTD-MsrElementFirst,
|
|
|
|
-- if more than one sets are present this element is repeated
|
|
-- NumberOfSets - 1 (-1 = first set)
|
|
otdMsrRestSets SeqOfOTD-MsrElementRest OPTIONAL
|
|
}
|
|
|
|
SeqOfOTD-MsrElementRest ::= SEQUENCE (SIZE(1..2)) OF OTD-MsrElementRest
|
|
|
|
-- OTD measurent information for 1 set
|
|
OTD-MsrElementFirst ::= SEQUENCE {
|
|
refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
|
|
referenceTimeSlot ModuloTimeSlot,
|
|
toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
|
|
stdResolution StdResolution,
|
|
taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
|
|
|
|
-- measured neighbors in OTD measurements
|
|
otd-FirstSetMsrs SeqOfOTD-FirstSetMsrs OPTIONAL
|
|
}
|
|
SeqOfOTD-FirstSetMsrs ::= SEQUENCE (SIZE(1..10)) OF OTD-FirstSetMsrs
|
|
|
|
-- OTD measurent information 2 and 3 sets if exist
|
|
OTD-MsrElementRest ::= SEQUENCE {
|
|
refFrameNumber INTEGER (0..42431), -- Frame number modulo 42432
|
|
referenceTimeSlot ModuloTimeSlot,
|
|
toaMeasurementsOfRef TOA-MeasurementsOfRef OPTIONAL,
|
|
stdResolution StdResolution,
|
|
taCorrection INTEGER (0..960) OPTIONAL, -- TA correction
|
|
|
|
-- measured neighbors in OTD measurements
|
|
otd-MsrsOfOtherSets SeqOfOTD-MsrsOfOtherSets OPTIONAL
|
|
}
|
|
SeqOfOTD-MsrsOfOtherSets ::= SEQUENCE (SIZE(1..10)) OF OTD-MsrsOfOtherSets
|
|
|
|
-- Standard deviation of the TOA measurements from the reference BTS
|
|
TOA-MeasurementsOfRef ::= SEQUENCE {
|
|
refQuality RefQuality,
|
|
numOfMeasurements NumOfMeasurements
|
|
}
|
|
|
|
RefQuality ::= INTEGER (0..31) -- St Dev of TOA of reference as defined in annex
|
|
NumOfMeasurements ::= INTEGER (0..7) -- No. of measurements for RefQuality as defined in annex
|
|
StdResolution ::= INTEGER (0..3) -- Values of resolution are defined in annex
|
|
|
|
OTD-FirstSetMsrs ::= OTD-MeasurementWithID
|
|
|
|
-- Neighbour info in OTD measurements 0-10 times in TD measurement info
|
|
OTD-MsrsOfOtherSets ::= CHOICE {
|
|
identityNotPresent OTD-Measurement,
|
|
identityPresent OTD-MeasurementWithID
|
|
}
|
|
|
|
-- For this OTD measurement identity is same as the identity of BTS
|
|
-- in the first set with same sequence number
|
|
OTD-Measurement ::= SEQUENCE {
|
|
nborTimeSlot ModuloTimeSlot,
|
|
eotdQuality EOTDQuality,
|
|
otdValue OTDValue
|
|
}
|
|
|
|
-- This measurement contains the BTS identity and measurement
|
|
OTD-MeasurementWithID ::=SEQUENCE {
|
|
neighborIdentity NeighborIdentity,
|
|
nborTimeSlot ModuloTimeSlot,
|
|
eotdQuality EOTDQuality,
|
|
otdValue OTDValue
|
|
}
|
|
|
|
EOTDQuality ::= SEQUENCE {
|
|
nbrOfMeasurements INTEGER (0..7),
|
|
stdOfEOTD INTEGER (0..31)
|
|
}
|
|
|
|
NeighborIdentity ::= CHOICE {
|
|
bsicAndCarrier BSICAndCarrier, -- BSIC and Carrier
|
|
ci CellID, -- Cell ID, LAC not needed
|
|
multiFrameCarrier MultiFrameCarrier, -- MultiFrameOffest and BSIC
|
|
requestIndex RequestIndex, -- Index to Requested Neighbor List
|
|
systemInfoIndex SystemInfoIndex, -- Index to System info list, this type of neighbour
|
|
-- identity shall not be used by the MS unless it has
|
|
-- received the SystemInfoAssistData from the SMLC for
|
|
-- this cell.
|
|
ciAndLAC CellIDAndLAC -- CI and LAC
|
|
}
|
|
|
|
-- Multiframe and carrier
|
|
MultiFrameCarrier ::= SEQUENCE {
|
|
bcchCarrier BCCHCarrier,
|
|
multiFrameOffset MultiFrameOffset
|
|
}
|
|
|
|
-- OTD measurement value for neighbour
|
|
OTDValue ::= INTEGER (0..39999)
|
|
|
|
-- Location information IE
|
|
LocationInfo ::= SEQUENCE {
|
|
refFrame INTEGER (0..65535), -- Reference Frame number
|
|
-- If refFrame is within (42432..65535), it shall be ignored by the receiver
|
|
-- in that case the MS should provide GPS TOW if available
|
|
gpsTOW INTEGER (0..14399999) OPTIONAL, -- GPS TOW
|
|
fixType FixType,
|
|
-- Note that applicable range for refFrame is 0 - 42431
|
|
-- Possible shapes carried in posEstimate are
|
|
-- ellipsoid point,
|
|
-- ellipsoid point with uncertainty circle
|
|
-- ellipsoid point with uncertainty ellipse
|
|
-- ellipsoid point with altitude and uncertainty ellipsoid
|
|
posEstimate Ext-GeographicalInformation
|
|
}
|
|
|
|
FixType ::= INTEGER {
|
|
twoDFix (0),
|
|
threeDFix (1)
|
|
} (0..1)
|
|
|
|
-- GPS-Measurement information
|
|
GPS-MeasureInfo ::= SEQUENCE {
|
|
-- Measurement info elements
|
|
-- user has to make sure that in this element is number of elements
|
|
-- defined in reference BTS identity
|
|
gpsMsrSetList SeqOfGPS-MsrSetElement
|
|
}
|
|
SeqOfGPS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GPS-MsrSetElement
|
|
|
|
-- OTD measurent information 1-3 times in message
|
|
GPS-MsrSetElement ::= SEQUENCE {
|
|
refFrame INTEGER (0..65535) OPTIONAL, -- Reference Frame number
|
|
gpsTOW GPSTOW24b, -- GPS TOW
|
|
-- Note that applicable range for refFrame is 0 - 42431
|
|
|
|
--N_SAT can be read from number of elements of gps-msrList
|
|
|
|
gps-msrList SeqOfGPS-MsrElement
|
|
}
|
|
|
|
-- 24 bit presentation for GPSTOW
|
|
GPSTOW24b ::= INTEGER (0..14399999)
|
|
|
|
-- measured elements in measurement parameters field
|
|
SeqOfGPS-MsrElement ::= SEQUENCE (SIZE(1..16)) OF GPS-MsrElement
|
|
|
|
GPS-MsrElement ::= SEQUENCE {
|
|
satelliteID SatelliteID, -- Satellite identifier
|
|
cNo INTEGER (0..63), -- carrier noise ratio
|
|
doppler INTEGER (-32768..32767), -- doppler, mulltiply by 0.2
|
|
wholeChips INTEGER (0..1022), -- whole value of the code phase measurement
|
|
fracChips INTEGER (0..1024), -- fractional value of the code phase measurement
|
|
-- a value of 1024 shall not be encoded by the sender
|
|
-- the receiver shall consider a value of 1024 to be
|
|
-- invalid data
|
|
mpathIndic MpathIndic, -- multipath indicator
|
|
pseuRangeRMSErr INTEGER (0..63) -- index
|
|
}
|
|
|
|
-- Multipath indicator
|
|
MpathIndic ::= ENUMERATED {
|
|
notMeasured (0),
|
|
low (1),
|
|
medium (2),
|
|
high (3)
|
|
}
|
|
|
|
-- Location error IE
|
|
LocationError ::= SEQUENCE {
|
|
locErrorReason LocErrorReason,
|
|
additionalAssistanceData AdditionalAssistanceData OPTIONAL,
|
|
...
|
|
}
|
|
|
|
LocErrorReason ::= ENUMERATED {
|
|
unDefined (0),
|
|
notEnoughBTSs (1),
|
|
notEnoughSats (2),
|
|
eotdLocCalAssDataMissing (3),
|
|
eotdAssDataMissing (4),
|
|
gpsLocCalAssDataMissing (5),
|
|
gpsAssDataMissing (6),
|
|
methodNotSupported (7),
|
|
notProcessed (8),
|
|
refBTSForGPSNotServingBTS (9),
|
|
refBTSForEOTDNotServingBTS (10),
|
|
...,
|
|
notEnoughGANSSSats (11),
|
|
ganssAssDataMissing (12),
|
|
refBTSForGANSSNotServingBTS (13)
|
|
}
|
|
|
|
-- exception handling:
|
|
-- an unrecognized value shall be treated the same as value 0
|
|
|
|
|
|
-- defines additional assistance data needed for any new location attempt
|
|
-- MS shall retain any assistance data already received
|
|
AdditionalAssistanceData ::= SEQUENCE {
|
|
gpsAssistanceData GPSAssistanceData OPTIONAL,
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...,
|
|
ganssAssistanceData GANSSAssistanceData OPTIONAL
|
|
}
|
|
|
|
GPSAssistanceData ::= OCTET STRING (SIZE (1..maxGPSAssistanceData))
|
|
-- GPSAssistanceData has identical structure and encoding to octets 3 to n of the
|
|
-- GPS Assistance Data IE in 3GPP TS 49.031
|
|
|
|
maxGPSAssistanceData INTEGER ::= 40
|
|
|
|
GANSSAssistanceData ::= OCTET STRING (SIZE (1..maxGANSSAssistanceData))
|
|
-- GANSSAssistanceData has identical structure and encoding to octets 3 to n of the
|
|
-- GANSS Assistance Data IE in 3GPP TS 49.031
|
|
|
|
maxGANSSAssistanceData INTEGER ::= 40
|
|
|
|
|
|
-- Protocol Error Causes
|
|
ErrorCodes ::= ENUMERATED {
|
|
unDefined (0),
|
|
missingComponet (1),
|
|
incorrectData (2),
|
|
missingIEorComponentElement (3),
|
|
messageTooShort (4),
|
|
unknowReferenceNumber (5),
|
|
...
|
|
}
|
|
|
|
-- exception handling:
|
|
-- an unrecognized value shall be treated the same as value 0
|
|
|
|
-- GPS assistance data IE
|
|
GPS-AssistData ::= SEQUENCE {
|
|
controlHeader ControlHeader
|
|
}
|
|
|
|
-- More Assistance Data To Be Sent IE
|
|
-- More Assistance Data Components On the Way indication for delivery of an entire set of assistance
|
|
-- data in multiple Assistance Data components.
|
|
|
|
MoreAssDataToBeSent ::= ENUMERATED {
|
|
noMoreMessages (0), -- This is the only or last Assistance Data message used to deliver
|
|
-- the entire set of assistance data.
|
|
moreMessagesOnTheWay (1) -- The SMLC will send more Assistance Data messages or a final RRLP
|
|
-- Measure Position Request message to deliver the
|
|
-- the entire set of assistance data.
|
|
}
|
|
|
|
-- Control header of the GPS assistance data
|
|
ControlHeader ::= SEQUENCE {
|
|
|
|
-- Field type Present information
|
|
referenceTime ReferenceTime OPTIONAL,
|
|
refLocation RefLocation OPTIONAL,
|
|
dgpsCorrections DGPSCorrections OPTIONAL,
|
|
navigationModel NavigationModel OPTIONAL,
|
|
ionosphericModel IonosphericModel OPTIONAL,
|
|
utcModel UTCModel OPTIONAL,
|
|
almanac Almanac OPTIONAL,
|
|
acquisAssist AcquisAssist OPTIONAL,
|
|
realTimeIntegrity SeqOf-BadSatelliteSet OPTIONAL
|
|
}
|
|
|
|
ReferenceTime ::= SEQUENCE {
|
|
gpsTime GPSTime,
|
|
gsmTime GSMTime OPTIONAL,
|
|
gpsTowAssist GPSTOWAssist OPTIONAL
|
|
}
|
|
|
|
-- GPS Time includes week number and time-of-week (TOW)
|
|
GPSTime ::= SEQUENCE {
|
|
gpsTOW23b GPSTOW23b,
|
|
gpsWeek GPSWeek
|
|
}
|
|
|
|
-- GPSTOW, range 0-604799.92, resolution 0.08 sec, 23-bit presentation
|
|
GPSTOW23b ::= INTEGER (0..7559999)
|
|
|
|
-- GPS week number
|
|
GPSWeek ::= INTEGER (0..1023)
|
|
|
|
-- GPSTOWAssist consists of TLM message, Anti-spoof flag, Alert flag, and 2 reserved bits in TLM Word
|
|
-- for each visible satellite.
|
|
-- N_SAT can be read from number of elements in GPSTOWAssist
|
|
GPSTOWAssist ::= SEQUENCE (SIZE(1..12)) OF GPSTOWAssistElement
|
|
|
|
GPSTOWAssistElement ::= SEQUENCE {
|
|
satelliteID SatelliteID,
|
|
tlmWord TLMWord,
|
|
antiSpoof AntiSpoofFlag,
|
|
alert AlertFlag,
|
|
tlmRsvdBits TLMReservedBits
|
|
}
|
|
|
|
-- TLM Word, 14 bits
|
|
TLMWord ::= INTEGER (0..16383)
|
|
|
|
-- Anti-Spoof flag
|
|
AntiSpoofFlag ::= INTEGER (0..1)
|
|
|
|
-- Alert flag
|
|
AlertFlag ::= INTEGER (0..1)
|
|
|
|
-- Reserved bits in TLM word, MSB occurs earlier in TLM Word transmitted by satellite
|
|
TLMReservedBits ::= INTEGER (0..3)
|
|
|
|
GSMTime ::= SEQUENCE {
|
|
bcchCarrier BCCHCarrier, -- BCCH carrier
|
|
bsic BSIC, -- BSIC
|
|
frameNumber FrameNumber,
|
|
timeSlot TimeSlot,
|
|
bitNumber BitNumber
|
|
}
|
|
|
|
-- Frame number
|
|
FrameNumber ::= INTEGER (0..2097151)
|
|
|
|
-- Time slot number
|
|
TimeSlot ::= INTEGER (0..7)
|
|
|
|
-- Bit number
|
|
BitNumber ::= INTEGER (0..156)
|
|
|
|
|
|
-- Reference Location IE
|
|
RefLocation ::= SEQUENCE {
|
|
threeDLocation Ext-GeographicalInformation
|
|
}
|
|
|
|
-- DGPS Corrections IE
|
|
DGPSCorrections ::= SEQUENCE {
|
|
|
|
gpsTOW INTEGER (0..604799), -- DGPS reference time
|
|
status INTEGER (0..7),
|
|
-- N_SAT can be read from number of elements of satList
|
|
satList SeqOfSatElement
|
|
}
|
|
SeqOfSatElement ::= SEQUENCE (SIZE (1..16)) OF SatElement
|
|
|
|
-- number of correction for satellites
|
|
SatElement ::= SEQUENCE {
|
|
satelliteID SatelliteID,
|
|
|
|
|
|
--- Sequence number for ephemeris
|
|
iode INTEGER (0..239),
|
|
-- User Differential Range Error
|
|
udre INTEGER (0..3),
|
|
|
|
-- Pseudo Range Correction, range is
|
|
-- -655.04 - +655.04,
|
|
pseudoRangeCor INTEGER (-2047..2047),
|
|
|
|
-- Pseudo Range Rate Correction, range is
|
|
-- -4.064 - +4.064,
|
|
rangeRateCor INTEGER (-127..127),
|
|
|
|
-- Delta Pseudo Range Correction 2
|
|
deltaPseudoRangeCor2 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
|
|
-- set to zero by the sender
|
|
-- Delta Pseudo Range Correction 2
|
|
deltaRangeRateCor2 INTEGER (-7..7), -- This IE shall be ignored by the receiver and
|
|
-- set to zero by the sender
|
|
-- Delta Pseudo Range Correction 3
|
|
deltaPseudoRangeCor3 INTEGER (-127..127), -- This IE shall be ignored by the receiver and
|
|
-- set to zero by the sender
|
|
-- Delta Pseudo Range Correction 3
|
|
deltaRangeRateCor3 INTEGER (-7..7) -- This IE shall be ignored by the receiver and
|
|
-- set to zero by the sender
|
|
}
|
|
|
|
SatelliteID ::= INTEGER (0..63) -- identifies satellite
|
|
|
|
-- Navigation Model IE
|
|
NavigationModel ::= SEQUENCE {
|
|
navModelList SeqOfNavModelElement
|
|
}
|
|
|
|
-- navigation model satellite list
|
|
SeqOfNavModelElement ::= SEQUENCE (SIZE(1..16)) OF NavModelElement
|
|
|
|
NavModelElement ::= SEQUENCE {
|
|
satelliteID SatelliteID,
|
|
satStatus SatStatus -- satellite status
|
|
}
|
|
|
|
-- the Status of the navigation model
|
|
SatStatus ::= CHOICE {
|
|
-- New satellite, new Navigation Model
|
|
newSatelliteAndModelUC UncompressedEphemeris,
|
|
|
|
-- Existing satellite, Existing Navigation Model
|
|
oldSatelliteAndModel NULL,
|
|
|
|
-- Existing satellite, new Navigation Model
|
|
newNaviModelUC UncompressedEphemeris,
|
|
...
|
|
}
|
|
|
|
-- Uncompressed satellite emhemeris and clock corrections
|
|
UncompressedEphemeris ::= SEQUENCE {
|
|
ephemCodeOnL2 INTEGER (0..3),
|
|
ephemURA INTEGER (0..15),
|
|
ephemSVhealth INTEGER (0..63),
|
|
ephemIODC INTEGER (0..1023),
|
|
ephemL2Pflag INTEGER (0..1),
|
|
ephemSF1Rsvd EphemerisSubframe1Reserved,
|
|
ephemTgd INTEGER (-128..127),
|
|
ephemToc INTEGER (0..37799),
|
|
ephemAF2 INTEGER (-128..127),
|
|
ephemAF1 INTEGER (-32768..32767),
|
|
ephemAF0 INTEGER (-2097152..2097151),
|
|
ephemCrs INTEGER (-32768..32767),
|
|
ephemDeltaN INTEGER (-32768..32767),
|
|
ephemM0 INTEGER (-2147483648..2147483647),
|
|
ephemCuc INTEGER (-32768..32767),
|
|
ephemE INTEGER (0..4294967295),
|
|
ephemCus INTEGER (-32768..32767),
|
|
ephemAPowerHalf INTEGER (0..4294967295),
|
|
ephemToe INTEGER (0..37799),
|
|
ephemFitFlag INTEGER (0..1),
|
|
ephemAODA INTEGER (0..31),
|
|
ephemCic INTEGER (-32768..32767),
|
|
ephemOmegaA0 INTEGER (-2147483648..2147483647),
|
|
ephemCis INTEGER (-32768..32767),
|
|
ephemI0 INTEGER (-2147483648..2147483647),
|
|
ephemCrc INTEGER (-32768..32767),
|
|
ephemW INTEGER (-2147483648..2147483647),
|
|
ephemOmegaADot INTEGER (-8388608..8388607),
|
|
ephemIDot INTEGER (-8192..8191)
|
|
}
|
|
|
|
-- Reserved bits in subframe 1 of navigation message
|
|
EphemerisSubframe1Reserved ::= SEQUENCE {
|
|
reserved1 INTEGER (0..8388607), -- 23-bit field
|
|
reserved2 INTEGER (0..16777215), -- 24-bit field
|
|
reserved3 INTEGER (0..16777215), -- 24-bit field
|
|
reserved4 INTEGER (0..65535) -- 16-bit field
|
|
}
|
|
|
|
-- Ionospheric Model IE
|
|
IonosphericModel ::= SEQUENCE {
|
|
alfa0 INTEGER (-128..127),
|
|
alfa1 INTEGER (-128..127),
|
|
alfa2 INTEGER (-128..127),
|
|
alfa3 INTEGER (-128..127),
|
|
beta0 INTEGER (-128..127),
|
|
beta1 INTEGER (-128..127),
|
|
beta2 INTEGER (-128..127),
|
|
beta3 INTEGER (-128..127)
|
|
}
|
|
|
|
-- Universal Time Coordinate Model
|
|
UTCModel ::= SEQUENCE {
|
|
utcA1 INTEGER (-8388608..8388607),
|
|
utcA0 INTEGER (-2147483648..2147483647),
|
|
utcTot INTEGER (0..255),
|
|
utcWNt INTEGER (0..255),
|
|
utcDeltaTls INTEGER (-128..127),
|
|
utcWNlsf INTEGER (0..255),
|
|
utcDN INTEGER (-128..127),
|
|
utcDeltaTlsf INTEGER (-128..127)
|
|
}
|
|
|
|
-- Almanac, Long term model
|
|
-- NOTE: These are parameters are subset of the ephemeris
|
|
-- NOTE: But with reduced resolution and accuracy
|
|
Almanac ::= SEQUENCE {
|
|
alamanacWNa INTEGER (0..255), -- Once per message
|
|
|
|
-- navigation model satellite list.
|
|
-- The size of almanacList is actually Nums_Sats_Total field
|
|
almanacList SeqOfAlmanacElement
|
|
}
|
|
SeqOfAlmanacElement ::= SEQUENCE (SIZE(1..64)) OF AlmanacElement
|
|
|
|
-- Almanac info once per satellite
|
|
AlmanacElement ::= SEQUENCE {
|
|
satelliteID SatelliteID,
|
|
almanacE INTEGER (0..65535),
|
|
alamanacToa INTEGER (0..255),
|
|
almanacKsii INTEGER (-32768..32767),
|
|
almanacOmegaDot INTEGER (-32768..32767),
|
|
almanacSVhealth INTEGER (0..255),
|
|
almanacAPowerHalf INTEGER (0..16777215),
|
|
almanacOmega0 INTEGER (-8388608..8388607),
|
|
almanacW INTEGER (-8388608..8388607),
|
|
almanacM0 INTEGER (-8388608..8388607),
|
|
almanacAF0 INTEGER (-1024..1023),
|
|
almanacAF1 INTEGER (-1024..1023)
|
|
}
|
|
|
|
-- Acquisition Assistance
|
|
AcquisAssist ::= SEQUENCE {
|
|
|
|
-- Number of Satellites can be read from acquistList
|
|
timeRelation TimeRelation,
|
|
|
|
-- Acquisition assistance list
|
|
-- The size of Number of Satellites is actually Number of Satellites field
|
|
acquisList SeqOfAcquisElement
|
|
}
|
|
SeqOfAcquisElement ::= SEQUENCE (SIZE(1..16)) OF AcquisElement
|
|
|
|
-- the relationship between GPS time and air-interface timing
|
|
TimeRelation ::= SEQUENCE {
|
|
--
|
|
gpsTOW GPSTOW23b, -- 23b presentation
|
|
gsmTime GSMTime OPTIONAL
|
|
}
|
|
|
|
-- data occuring per number of satellites
|
|
AcquisElement ::= SEQUENCE {
|
|
svid SatelliteID,
|
|
|
|
-- Doppler 0th order term,
|
|
-- -5120.0 - 5117.5 Hz (= -2048 - 2047 with 2.5 Hz resolution)
|
|
doppler0 INTEGER (-2048..2047),
|
|
addionalDoppler AddionalDopplerFields OPTIONAL,
|
|
codePhase INTEGER (0..1022), -- Code Phase
|
|
intCodePhase INTEGER (0..19), -- Integer Code Phase
|
|
gpsBitNumber INTEGER (0..3), -- GPS bit number
|
|
codePhaseSearchWindow INTEGER (0..15), -- Code Phase Search Window
|
|
addionalAngle AddionalAngleFields OPTIONAL
|
|
}
|
|
|
|
AddionalDopplerFields ::= SEQUENCE {
|
|
-- Doppler 1st order term, -1.0 - +0.5 Hz/sec
|
|
-- (= -42 + (0 to 63) with 1/42 Hz/sec. resolution)
|
|
doppler1 INTEGER (0..63),
|
|
dopplerUncertainty INTEGER (0..7)
|
|
-- a sender shall not encode any DopplerUncertainty value in the range 5 to 7
|
|
-- a receiver shall ignore any value between 5 and 7.
|
|
}
|
|
|
|
AddionalAngleFields ::= SEQUENCE {
|
|
-- azimuth angle, 0 - 348.75 deg (= 0 - 31 with 11.25 deg resolution)
|
|
azimuth INTEGER (0..31),
|
|
-- elevation angle, 0 - 78.75 deg (= 0 - 7 with 11.25 deg resolution)
|
|
elevation INTEGER (0..7)
|
|
}
|
|
|
|
-- Real-Time Integrity
|
|
-- number of bad satellites can be read from this element
|
|
SeqOf-BadSatelliteSet ::= SEQUENCE (SIZE(1..16)) OF SatelliteID
|
|
|
|
-- Extension Elements
|
|
|
|
-- Release 98 Extensions here
|
|
Rel98-MsrPosition-Req-Extension ::= SEQUENCE {
|
|
rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
|
|
...,
|
|
gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
|
|
gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
|
|
|
|
-- Further R98 extensions here
|
|
}
|
|
Rel98-AssistanceData-Extension ::= SEQUENCE {
|
|
rel98-Ext-ExpOTD Rel98-Ext-ExpOTD OPTIONAL, -- ExpectedOTD extension
|
|
...,
|
|
gpsTimeAssistanceMeasurementRequest NULL OPTIONAL,
|
|
gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
|
|
|
|
-- Further R98 extensions here
|
|
}
|
|
|
|
-- Release 98 ExpOTD extension
|
|
Rel98-Ext-ExpOTD ::= SEQUENCE {
|
|
-- If MsrAssistBTS is included in message, msrAssistData-R98-ExpOTD shall be included.
|
|
msrAssistData-R98-ExpOTD MsrAssistData-R98-ExpOTD OPTIONAL,
|
|
|
|
-- If SystemInfoAssistaData is included in message, systemInfoAssistData-R98-ExpOTD shall be
|
|
-- included.
|
|
systemInfoAssistData-R98-ExpOTD SystemInfoAssistData-R98-ExpOTD OPTIONAL
|
|
}
|
|
|
|
-- MsrAssistData R98 extension
|
|
MsrAssistData-R98-ExpOTD ::= SEQUENCE {
|
|
msrAssistList-R98-ExpOTD SeqOfMsrAssistBTS-R98-ExpOTD
|
|
}
|
|
|
|
-- Indexes in SeqOfMsrAssistBTS-R98-ExpOTD refer to SeqOfMsrAssistBTS
|
|
-- If the index exceeds the SegOfMsrAssistBTS range or if there is other
|
|
-- inconsistencies between the BTS indices, the MS shall apply protocol
|
|
-- error cause incorrectData
|
|
SeqOfMsrAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..15)) OF MsrAssistBTS-R98-ExpOTD
|
|
|
|
-- This element completes MsrAssistBTS IE
|
|
MsrAssistBTS-R98-ExpOTD ::= SEQUENCE {
|
|
expectedOTD ExpectedOTD,
|
|
expOTDUncertainty ExpOTDUncertainty
|
|
}
|
|
|
|
-- SystemInfoAssistData R98 extension
|
|
SystemInfoAssistData-R98-ExpOTD ::= SEQUENCE {
|
|
systemInfoAssistListR98-ExpOTD SeqOfSystemInfoAssistBTS-R98-ExpOTD
|
|
}
|
|
|
|
-- SeqOfSystemInfoAssistBTS-R98-ExpOTD index refer to SeqOfSystemInfoAssistBTS
|
|
-- If the index exceeds the SegOfSystemInfoAssistBTS range or if there is other
|
|
-- inconsistencies between the BTS indices, the MS shall apply protocol
|
|
-- error cause incorrectData
|
|
SeqOfSystemInfoAssistBTS-R98-ExpOTD ::= SEQUENCE (SIZE(1..32)) OF SystemInfoAssistBTS-R98-ExpOTD
|
|
|
|
-- whether n.th is present or not ?
|
|
SystemInfoAssistBTS-R98-ExpOTD ::= CHOICE {
|
|
notPresent NULL,
|
|
present AssistBTSData-R98-ExpOTD
|
|
}
|
|
|
|
-- This element completes AssistBTSData IE
|
|
AssistBTSData-R98-ExpOTD ::= SEQUENCE {
|
|
expectedOTD ExpectedOTD,
|
|
expOTDuncertainty ExpOTDUncertainty -- Uncertainty of expected OTD
|
|
}
|
|
|
|
-- Expected OTD value between nbor base station and reference BTS
|
|
-- at MS's current estimated location.
|
|
ExpectedOTD ::= INTEGER (0..1250)
|
|
-- The ExpectedOTD value 1250 shall not be encoded by the transmitting entity and
|
|
-- shall be treated by the receiving entity as 0.
|
|
-- Uncertainty of Exptected OTD in bits
|
|
ExpOTDUncertainty ::= INTEGER(0..7)
|
|
|
|
-- Release 98 extensions
|
|
|
|
GPSReferenceTimeUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
|
|
|
|
GPSTimeAssistanceMeasurements ::= SEQUENCE {
|
|
referenceFrameMSB INTEGER (0 .. 63), -- MSB of frame number
|
|
gpsTowSubms INTEGER (0 .. 9999) OPTIONAL, -- in units of 100ns, for MS based AGPS
|
|
deltaTow INTEGER (0 .. 127) OPTIONAL, -- for MS assisted AGPS
|
|
gpsReferenceTimeUncertainty GPSReferenceTimeUncertainty OPTIONAL
|
|
}
|
|
|
|
Rel-98-MsrPosition-Rsp-Extension ::= SEQUENCE {
|
|
|
|
-- First extension to Release 98
|
|
rel-98-Ext-MeasureInfo SEQUENCE {
|
|
otd-MeasureInfo-R98-Ext OTD-MeasureInfo-R98-Ext OPTIONAL
|
|
},
|
|
...,
|
|
timeAssistanceMeasurements GPSTimeAssistanceMeasurements OPTIONAL
|
|
-- Further R98 extensions here
|
|
}
|
|
|
|
-- This is an addition to OTD-MeasureInfo element defined in original message,
|
|
-- If OTD-MeasureInfo is absent, or if one or more OTD-MsrElementRest are present
|
|
-- OTD-MeasureInfo-R98-Ext shall be absent.
|
|
-- OTD-MeasureInfo-R98-Ext
|
|
OTD-MeasureInfo-R98-Ext ::= SEQUENCE {
|
|
-- Measurement info elements
|
|
otdMsrFirstSets-R98-Ext OTD-MsrElementFirst-R98-Ext
|
|
}
|
|
|
|
-- OTD measurement information Ext for the first set only
|
|
OTD-MsrElementFirst-R98-Ext ::= SEQUENCE {
|
|
-- additional measured neighbors in OTD measurements
|
|
otd-FirstSetMsrs-R98-Ext SeqOfOTD-FirstSetMsrs-R98-Ext OPTIONAL
|
|
}
|
|
SeqOfOTD-FirstSetMsrs-R98-Ext ::= SEQUENCE (SIZE(1..5)) OF OTD-FirstSetMsrs
|
|
|
|
Rel-5-MsrPosition-Rsp-Extension ::= SEQUENCE {
|
|
|
|
extended-reference Extended-reference OPTIONAL,
|
|
-- The extended-reference shall be included by the MS if and only if previously
|
|
-- received from the SMLC in a Measure Position Request. When included, the value sent
|
|
-- by the MS shall equal the value received from the SMLC.
|
|
|
|
-- extension to Release 5, for RRLP pseudo-segmentation here
|
|
otd-MeasureInfo-5-Ext OTD-MeasureInfo-5-Ext OPTIONAL,
|
|
ulPseudoSegInd UlPseudoSegInd OPTIONAL, -- Included when uplink RRLP
|
|
-- Pseudo-segmentation is used, not included when no uplink pseudo-segmentation is used
|
|
...
|
|
-- Possibly more extensions for Release 5 here later
|
|
}
|
|
|
|
Extended-reference ::= SEQUENCE {
|
|
smlc-code INTEGER (0..63),
|
|
transaction-ID INTEGER (0..262143)
|
|
}
|
|
|
|
OTD-MeasureInfo-5-Ext ::= SeqOfOTD-MsrElementRest
|
|
-- if more than one measurement sets are present this element is repeated
|
|
-- NumberOfSets - 1 (-1 = first set) combined in OTD-MeasureInfo-5-Ext and
|
|
-- OTD-MeasureInfo (e.g. if NumberOfSets is 3, then one otdMsrRestSets may
|
|
-- be sent in OTD-MeasureInfo-5-Ext and one in OTD-MeasureInfo)
|
|
|
|
-- First part of Uplink RRLP Pseudo-segmentation indication, possibly more may be defined
|
|
-- in the future for segmentation with more than two segments.
|
|
UlPseudoSegInd ::= ENUMERATED {
|
|
firstOfMany (0),
|
|
secondOfMany(1)
|
|
}
|
|
|
|
Rel5-MsrPosition-Req-Extension ::= SEQUENCE {
|
|
extended-reference Extended-reference,
|
|
...
|
|
-- Possibly more extensions for Release 5 here later
|
|
}
|
|
|
|
Rel5-AssistanceData-Extension ::= SEQUENCE {
|
|
extended-reference Extended-reference,
|
|
...
|
|
|
|
-- Possibly more extensions for Release 5 here later
|
|
}
|
|
|
|
Rel-5-ProtocolError-Extension::= SEQUENCE {
|
|
extended-reference Extended-reference OPTIONAL,
|
|
-- The extended-reference shall be included by the MS if and only if previously
|
|
-- received from the SMLC.
|
|
-- When included, the value sent by the MS shall equal the value received from the SMLC.
|
|
...
|
|
|
|
-- Possibly more extensions for Release 5 here later
|
|
}
|
|
|
|
-- Release 7 Extensions here
|
|
|
|
Rel7-MsrPosition-Req-Extension ::= SEQUENCE {
|
|
velocityRequested NULL OPTIONAL,
|
|
ganssPositionMethod GANSSPositioningMethod OPTIONAL,
|
|
ganss-AssistData GANSS-AssistData OPTIONAL,
|
|
ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
|
|
ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
|
|
requiredResponseTime RequiredResponseTime OPTIONAL,
|
|
...
|
|
-- Further Release 7 extentions here
|
|
}
|
|
|
|
-- additional satellite systems may be added in future versions of the protocol
|
|
GANSSPositioningMethod ::= BIT STRING {
|
|
gps (0),
|
|
galileo (1)} (SIZE (2..16))
|
|
|
|
GANSS-AssistData ::= SEQUENCE {
|
|
ganss-controlHeader GANSS-ControlHeader
|
|
}
|
|
|
|
GANSS-ControlHeader ::= SEQUENCE {
|
|
ganssCommonAssistData GANSSCommonAssistData OPTIONAL,
|
|
ganssGenericAssistDataList SeqOfGANSSGenericAssistDataElement OPTIONAL
|
|
}
|
|
|
|
-- GANSS Common Assistance Data Elements
|
|
GANSSCommonAssistData ::= SEQUENCE {
|
|
ganssReferenceTime GANSSReferenceTime OPTIONAL,
|
|
ganssRefLocation GANSSRefLocation OPTIONAL,
|
|
ganssIonosphericModel GANSSIonosphericModel OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- List of GANSS Generic Assistance Data Elements, up to 8 GANSS
|
|
SeqOfGANSSGenericAssistDataElement ::= SEQUENCE (SIZE (1..8)) OF GANSSGenericAssistDataElement
|
|
|
|
-- GANSS Generic Assistance Data Elements
|
|
GANSSGenericAssistDataElement ::= SEQUENCE {
|
|
ganssID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
|
|
ganssTimeModel SeqOfGANSSTimeModel OPTIONAL,
|
|
ganssDiffCorrections GANSSDiffCorrections OPTIONAL,
|
|
ganssNavigationModel GANSSNavModel OPTIONAL,
|
|
ganssRealTimeIntegrity GANSSRealTimeIntegrity OPTIONAL,
|
|
ganssDataBitAssist GANSSDataBitAssist OPTIONAL,
|
|
ganssRefMeasurementAssist GANSSRefMeasurementAssist OPTIONAL,
|
|
ganssAlmanacModel GANSSAlmanacModel OPTIONAL,
|
|
ganssUTCModel GANSSUTCModel OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- GANSS COMMON ASSISTANCE DATA ELEMENTS
|
|
|
|
-- GANSS Reference Time IE
|
|
GANSSReferenceTime ::= SEQUENCE {
|
|
ganssRefTimeInfo GANSSRefTimeInfo,
|
|
ganssTOD-GSMTimeAssociation GANSSTOD-GSMTimeAssociation OPTIONAL
|
|
}
|
|
|
|
-- GANSS Reference Time includes GANSS TOD, GANSS Day, uncertainty
|
|
GANSSRefTimeInfo ::= SEQUENCE {
|
|
ganssDay INTEGER(0 .. 8191) OPTIONAL,
|
|
ganssTOD GANSSTOD,
|
|
ganssTODUncertainty GANSSTODUncertainty OPTIONAL,
|
|
ganssTimeID INTEGER (0 .. 7) OPTIONAL
|
|
}
|
|
|
|
-- GANSS TOD integer seconds
|
|
GANSSTOD ::= INTEGER (0 .. 86399)
|
|
|
|
-- GANSS TOD uncertainty
|
|
GANSSTODUncertainty ::= INTEGER (0 .. 127) -- Coding according to Annex
|
|
|
|
-- GANSS TOD-GSM Time association
|
|
GANSSTOD-GSMTimeAssociation ::= SEQUENCE {
|
|
bcchCarrier BCCHCarrier, -- BCCH carrier
|
|
bsic BSIC, -- BSIC
|
|
frameNumber FrameNumber,
|
|
timeSlot TimeSlot,
|
|
bitNumber BitNumber,
|
|
frameDrift FrameDrift OPTIONAL
|
|
}
|
|
|
|
-- Frame drift
|
|
FrameDrift ::= INTEGER(-64 .. 63)
|
|
|
|
-- GANSS Reference Location IE
|
|
GANSSRefLocation ::= SEQUENCE {
|
|
threeDLocation Ext-GeographicalInformation
|
|
}
|
|
|
|
-- GANSS Ionospheric Model IE
|
|
-- GANSS Ionospheric Model consists of NeQuick model parameters and storm flags
|
|
|
|
GANSSIonosphericModel ::= SEQUENCE {
|
|
ganssIonoModel GANSSIonosphereModel,
|
|
ganssIonoStormFlags GANSSIonoStormFlags OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- GANSS ionosphere model. Coding according to Annex
|
|
GANSSIonosphereModel ::= SEQUENCE {
|
|
ai0 INTEGER (0 .. 4095),
|
|
ai1 INTEGER (0 .. 4095),
|
|
ai2 INTEGER (0 .. 4095)
|
|
}
|
|
|
|
-- GANSS ionosphere storm flags
|
|
GANSSIonoStormFlags ::= SEQUENCE {
|
|
ionoStormFlag1 INTEGER (0 .. 1),
|
|
ionoStormFlag2 INTEGER (0 .. 1),
|
|
ionoStormFlag3 INTEGER (0 .. 1),
|
|
ionoStormFlag4 INTEGER (0 .. 1),
|
|
ionoStormFlag5 INTEGER (0 .. 1)
|
|
}
|
|
|
|
-- GANSS GENERIC ASSISTANCE DATA ELEMENTS
|
|
|
|
-- GANSS Time Model IE consists of time offset and first and second order parameters to relate GNSS
|
|
-- specific system time to selected time reference
|
|
SeqOfGANSSTimeModel ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement
|
|
|
|
GANSSTimeModelElement ::= SEQUENCE {
|
|
ganssTimeModelRefTime INTEGER(0 .. 65535),
|
|
tA0 TA0,
|
|
tA1 TA1 OPTIONAL,
|
|
tA2 TA2 OPTIONAL,
|
|
gnssTOID INTEGER (0 .. 7),
|
|
weekNumber INTEGER (0 .. 8191) OPTIONAL
|
|
}
|
|
|
|
-- GANSS time model parameter A0
|
|
TA0 ::= INTEGER (-2147483648 .. 2147483647)
|
|
|
|
-- GANSS time model parameter A1
|
|
TA1 ::= INTEGER (-8388608 .. 8388607)
|
|
|
|
-- GANSS time model parameter A2
|
|
TA2 ::= INTEGER (-64 .. 63)
|
|
|
|
-- DGANSS Corrections IE
|
|
GANSSDiffCorrections ::= SEQUENCE {
|
|
dganssRefTime INTEGER (0 .. 119), -- DGANSS reference time
|
|
|
|
-- N_SGN_TYPE can be read from number of elements of sgnTypeList
|
|
sgnTypeList SeqOfSgnTypeElement
|
|
}
|
|
|
|
SeqOfSgnTypeElement ::= SEQUENCE (SIZE (1..3)) OF SgnTypeElement -- max three signals per GNSS
|
|
|
|
-- DGANSS signal type element, once per GNSS signal type included in DGANSS
|
|
SgnTypeElement ::= SEQUENCE {
|
|
ganssSignalID GANSSSignalID OPTIONAL, -- signal type identity
|
|
ganssStatusHealth INTEGER (0 .. 7),
|
|
-- N_SGN can be read from number of elements of dganssSgnList
|
|
dganssSgnList SeqOfDGANSSSgnElement
|
|
}
|
|
|
|
GANSSSignalID ::= INTEGER (0 .. 3) -- Coding according to Annex
|
|
SeqOfDGANSSSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSSgnElement
|
|
|
|
-- number of correction for signals
|
|
DGANSSSgnElement ::= SEQUENCE {
|
|
svID SVID, -- Satellite identity
|
|
|
|
--- Sequence number for GANSS Navigation Model that matches the DGANSS correction set
|
|
iod INTEGER (0 .. 1023),
|
|
|
|
-- User Differential Range Error
|
|
udre INTEGER (0..3),
|
|
|
|
-- Pseudo Range Correction, range is
|
|
-- -655.04 - +655.04,
|
|
pseudoRangeCor INTEGER (-2047..2047),
|
|
|
|
-- Pseudo Range Rate Correction, range is
|
|
-- -4.064 - +4.064,
|
|
rangeRateCor INTEGER (-127..127)
|
|
}
|
|
|
|
SVID ::= INTEGER (0 .. 63) -- Coding according to Annex
|
|
|
|
-- GANSS Navigation Model IE
|
|
GANSSNavModel ::= SEQUENCE {
|
|
nonBroadcastIndFlag INTEGER (0 .. 1),
|
|
toeMSB INTEGER (0 .. 31) OPTIONAL, -- 5 MSB of toe and toc
|
|
eMSB INTEGER (0 .. 127) OPTIONAL,
|
|
sqrtAMBS INTEGER (0 .. 63) OPTIONAL,
|
|
ganssSatelliteList SeqOfGANSSSatelliteElement
|
|
}
|
|
|
|
SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement
|
|
|
|
GANSSSatelliteElement ::= SEQUENCE {
|
|
svID SVID,
|
|
svHealth INTEGER (-7 .. 13), -- Coding according to Annex
|
|
iod INTEGER (0 .. 1023), -- Coding according to Annex
|
|
ganssClockModel GANSSClockModel,
|
|
ganssOrbitModel GANSSOrbitModel,
|
|
...
|
|
}
|
|
|
|
-- GANSS orbit model for the GNSS satellite according to the choice
|
|
GANSSOrbitModel ::= CHOICE {
|
|
keplerianSet NavModel-KeplerianSet,
|
|
...
|
|
}
|
|
|
|
-- Navigation model in Keplerian parameters
|
|
NavModel-KeplerianSet ::= SEQUENCE {
|
|
keplerToeLSB INTEGER (0 .. 511), -- 9LSB are given in GANSSNavigationModel
|
|
keplerW INTEGER (-2147483648..2147483647),
|
|
keplerDeltaN INTEGER (-32768..32767),
|
|
keplerM0 INTEGER (-2147483648..2147483647),
|
|
keplerOmegaDot INTEGER (-8388608..8388607),
|
|
keplerELSB INTEGER (0..33554431),
|
|
keplerIDot INTEGER (-8192..8191),
|
|
keplerAPowerHalfLSB INTEGER (0.. 67108863),
|
|
keplerI0 INTEGER (-2147483648..2147483647),
|
|
keplerOmega0 INTEGER (-2147483648..2147483647),
|
|
keplerCrs INTEGER (-32768..32767),
|
|
keplerCis INTEGER (-32768..32767),
|
|
keplerCus INTEGER (-32768..32767),
|
|
keplerCrc INTEGER (-32768..32767),
|
|
keplerCic INTEGER (-32768..32767),
|
|
keplerCuc INTEGER (-32768..32767)
|
|
}
|
|
|
|
-- GANSS clock model for the GNSS satellite according to the choice
|
|
GANSSClockModel ::= CHOICE {
|
|
standardClockModelList SeqOfStandardClockModelElement,
|
|
...
|
|
}
|
|
|
|
SeqOfStandardClockModelElement ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
|
|
|
|
StandardClockModelElement ::= SEQUENCE {
|
|
stanClockTocLSB INTEGER (0 .. 511), -- 9LSB of time of clock
|
|
stanClockAF2 INTEGER (-2048 .. 2047),
|
|
stanClockAF1 INTEGER (-131072 .. 131071),
|
|
stanClockAF0 INTEGER (-134217728 .. 134217727),
|
|
stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
|
|
stanModelID INTEGER (0 .. 1) OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- GANSS Real-Time Integrity IE
|
|
GANSSRealTimeIntegrity ::= SEQUENCE {
|
|
-- list of bad signals
|
|
-- NBS can be read from number of elements in SeqOf-BadSignalSet
|
|
ganssBadSignalList SeqOfBadSignalElement
|
|
}
|
|
|
|
SeqOfBadSignalElement ::= SEQUENCE (SIZE(1..16)) OF BadSignalElement
|
|
|
|
BadSignalElement ::= SEQUENCE {
|
|
badSVID SVID, -- Coding according to Annex
|
|
badSignalID INTEGER (0 .. 3) OPTIONAL -- Coding according to Annex
|
|
}
|
|
|
|
|
|
-- GANSS Data Bit Assistance IE
|
|
GANSSDataBitAssist ::= SEQUENCE {
|
|
ganssTOD INTEGER (0 .. 59),
|
|
svID SVID,
|
|
ganssDataTypeID INTEGER (0 .. 2), -- Coding according to Annex
|
|
-- list of navigation data bits
|
|
-- N_BIT can be read from number of elements in SeqOf-DataBits
|
|
ganssDataBits SeqOf-GANSSDataBits
|
|
}
|
|
|
|
SeqOf-GANSSDataBits ::= SEQUENCE (SIZE(1 .. 1024)) OF GANSSDataBit
|
|
GANSSDataBit ::= INTEGER(0 .. 1)
|
|
|
|
-- GANSS Reference Measurement Assistance IE
|
|
-- Code and Doppler assistance from the network.
|
|
GANSSRefMeasurementAssist ::= SEQUENCE {
|
|
ganssSignalID INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
|
|
ganssRefMeasAssitList SeqOfGANSSRefMeasurementElement
|
|
}
|
|
|
|
SeqOfGANSSRefMeasurementElement ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurementElement
|
|
|
|
GANSSRefMeasurementElement ::= SEQUENCE {
|
|
svID SVID,
|
|
-- Doppler 0th order term,
|
|
-- -1024 m/s to 1023.5 m/s with 0.5 m/s resolution)
|
|
doppler0 INTEGER (-2048 .. 2047), -- Coding according to Annex
|
|
additionalDoppler AdditionalDopplerFields OPTIONAL,
|
|
codePhase INTEGER (0 .. 1022), -- Code Phase in ms
|
|
intCodePhase INTEGER (0 .. 127), -- Integer Code Phase in ms
|
|
codePhaseSearchWindow INTEGER (0 .. 31), -- Code Phase Search Window, see Annex
|
|
additionalAngle AddionalAngleFields OPTIONAL,
|
|
...
|
|
}
|
|
|
|
AdditionalDopplerFields ::= SEQUENCE {
|
|
-- Doppler 1st order term, -0.2 - +0.1 m/s2
|
|
doppler1 INTEGER (0..63),
|
|
dopplerUncertainty INTEGER (0..4)
|
|
}
|
|
|
|
-- GANSS Almanac Model IE
|
|
GANSSAlmanacModel ::= SEQUENCE {
|
|
weekNumber INTEGER (0 .. 255),
|
|
svIDMask SVIDMASK,
|
|
toa INTEGER (0 .. 255) OPTIONAL,
|
|
ioda INTEGER (0 .. 3) OPTIONAL,
|
|
ganssAlmanacList SeqOfGANSSAlmanacElement
|
|
}
|
|
|
|
-- SV ID Mask, LSB for ID 1 and MSB for ID 36
|
|
SVIDMASK ::= BIT STRING (SIZE (1..36))
|
|
|
|
SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement
|
|
|
|
-- GANSS Almanac Model
|
|
GANSSAlmanacElement ::= CHOICE {
|
|
keplerianAlmanacSet Almanac-KeplerianSet,
|
|
...
|
|
}
|
|
|
|
-- Almanac parameters according to Keplerian parameters
|
|
Almanac-KeplerianSet ::= SEQUENCE {
|
|
kepAlmanacE INTEGER (0 .. 2047),
|
|
kepAlmanacDeltaI INTEGER (-1024 .. 1023),
|
|
kepAlmanacOmegaDot INTEGER (-1024 .. 1023),
|
|
kepSVHealth INTEGER (0 .. 15), -- Coding according to Annex
|
|
kepAlmanacAPowerHalf INTEGER (-65536 .. 65535),
|
|
kepAlmanacOmega0 INTEGER (-32768 .. 32767),
|
|
kepAlmanacW INTEGER (-32768 .. 32767),
|
|
kepAlmanacM0 INTEGER (-32768 .. 32767),
|
|
kepAlmanacAF0 INTEGER (-8192 .. 8191),
|
|
kepAlmanacAF1 INTEGER (-1024..1023)
|
|
}
|
|
|
|
-- GANSS Universal Time Coordinate Model
|
|
GANSSUTCModel ::= SEQUENCE {
|
|
ganssUtcA1 INTEGER (-8388608..8388607),
|
|
ganssUtcA0 INTEGER (-2147483648..2147483647),
|
|
ganssUtcTot INTEGER (0..255),
|
|
ganssUtcWNt INTEGER (0..255),
|
|
ganssUtcDeltaTls INTEGER (-128..127),
|
|
ganssUtcWNlsf INTEGER (0..255),
|
|
ganssUtcDN INTEGER (-128..127),
|
|
ganssUtcDeltaTlsf INTEGER (-128..127)
|
|
}
|
|
|
|
--Required Measurement Request Response Time, range is 1 to 128 seconds.
|
|
RequiredResponseTime ::= INTEGER (1..128)
|
|
|
|
Rel-7-MsrPosition-Rsp-Extension ::= SEQUENCE {
|
|
|
|
velEstimate VelocityEstimate OPTIONAL,
|
|
-- Horizontal Velocity
|
|
-- Horizontal with Vertical Velocity
|
|
-- Horizontal Velocity with Uncertainty
|
|
-- Horizontal with Vertical Velocity and Uncertainty
|
|
ganssLocationInfo GANSSLocationInfo OPTIONAL,
|
|
ganssMeasureInfo GANSSMeasureInfo OPTIONAL,
|
|
...
|
|
-- Further Release 7 extensions here
|
|
}
|
|
|
|
-- GANSS Location Information contains location estimate, time stamp with uncertainty
|
|
-- and optionally Reference Frame field
|
|
GANSSLocationInfo ::= SEQUENCE {
|
|
referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
|
|
ganssTODm GANSSTODm OPTIONAL, -- GNSS TOD modulo
|
|
ganssTODFrac INTEGER (0 .. 16384) OPTIONAL, -- Coding according to Annex
|
|
ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
|
|
ganssTimeID INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
|
|
fixType FixType,
|
|
posData PositionData,
|
|
stationaryIndication INTEGER(0 .. 1) OPTIONAL, -- '0' if moving or motion not known
|
|
-- Possible shapes carried in posEstimate are
|
|
-- ellipsoid point,
|
|
-- ellipsoid point with uncertainty circle
|
|
-- ellipsoid point with uncertainty ellipse
|
|
-- ellipsoid point with altitude and uncertainty ellipsoid
|
|
posEstimate Ext-GeographicalInformation,
|
|
...
|
|
}
|
|
|
|
PositionData ::= BIT STRING {
|
|
e-otd(0),
|
|
gps (1),
|
|
galileo (2) } (SIZE (3..16))
|
|
|
|
|
|
-- GANSS TOD modulo 1 hour
|
|
GANSSTODm ::= INTEGER (0 .. 3599999)
|
|
|
|
ReferenceFrame ::= SEQUENCE {
|
|
referenceFN INTEGER (0 .. 65535),
|
|
-- Note that applicable range for referenceFN is 0 - 42431
|
|
referenceFNMSB INTEGER (0 .. 63) OPTIONAL -- MSB of Reference Frame Number
|
|
}
|
|
|
|
|
|
|
|
-- GANSS Measurement Information
|
|
GANSSMeasureInfo ::= SEQUENCE {
|
|
-- Measurement info elements
|
|
-- user has to make sure that in this element is number of elements
|
|
-- defined in reference BTS identity
|
|
ganssMsrSetList SeqOfGANSS-MsrSetElement
|
|
}
|
|
SeqOfGANSS-MsrSetElement ::= SEQUENCE (SIZE(1..3)) OF GANSS-MsrSetElement
|
|
|
|
-- GANSS measurement information 1-3 times in a message
|
|
GANSS-MsrSetElement ::= SEQUENCE {
|
|
referenceFrame ReferenceFrame OPTIONAL, -- Reference Frame Number
|
|
ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo
|
|
deltaGNASSTOD INTEGER (0 .. 127) OPTIONAL,
|
|
ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding accoring to Annex
|
|
|
|
--N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
|
|
ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
|
|
}
|
|
|
|
-- Measurements can be returned up to 6 different signal types
|
|
SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..6)) OF GANSS-SgnTypeElement
|
|
|
|
GANSS-SgnTypeElement ::= SEQUENCE {
|
|
ganssSignalID INTEGER (0 .. 15), -- Coding accroding to Annex
|
|
--N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
|
|
ganss-SgnList SeqOfGANSS-SgnElement
|
|
}
|
|
|
|
-- Measurements can be returned up to 16 per signal types
|
|
SeqOfGANSS-SgnElement ::= SEQUENCE (SIZE(1..16)) OF GANSS-SgnElement
|
|
|
|
|
|
GANSS-SgnElement ::= SEQUENCE {
|
|
svID SVID,
|
|
cNo INTEGER (0 .. 63),
|
|
mpathDet MpathIndic, -- Coding according to Annex
|
|
carrierQualityInd INTEGER (0 .. 3) OPTIONAL, -- Coding according to Annex
|
|
codePhase INTEGER (0 .. 2097151),
|
|
integerCodePhase INTEGER (0 .. 63) OPTIONAL,
|
|
codePhaseRMSError INTEGER (0..63), -- Coding accoring to Annex
|
|
doppler INTEGER (-32768 .. 32767) OPTIONAL,
|
|
adr INTEGER (0 .. 33554431) OPTIONAL
|
|
}
|
|
|
|
Rel7-AssistanceData-Extension ::= SEQUENCE {
|
|
ganss-AssistData GANSS-AssistData OPTIONAL,
|
|
ganssCarrierPhaseMeasurementRequest NULL OPTIONAL,
|
|
ganssTODGSMTimeAssociationMeasurementRequest NULL OPTIONAL,
|
|
...
|
|
-- Possibly more extensions for Release 7 here
|
|
}
|
|
|
|
END
|