2360 lines
77 KiB
Groff
2360 lines
77 KiB
Groff
-- RRLP-Components.asn
|
|
-- $Id$
|
|
-- Taken from 3GPP TS 44.031 V9.2.0 (2010-03)
|
|
-- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-920.zip/44031-920.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,
|
|
-- When RRLP pseudo-segmentation is used, rel-5-MsrPosition-Rsp-Extension
|
|
-- and other possible future extensions should be the ones included in
|
|
-- the 2nd MsrPosition-Rsp component.
|
|
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
|
|
}
|
|
|
|
|
|
-- Positioning Capability request component
|
|
PosCapability-Req ::= SEQUENCE {
|
|
extended-reference Extended-reference,
|
|
gANSSPositionMethods GANSSPositionMethods OPTIONAL,
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...
|
|
}
|
|
|
|
|
|
-- Positioning Capability response component
|
|
PosCapability-Rsp ::= SEQUENCE {
|
|
extended-reference Extended-reference,
|
|
posCapabilities PosCapabilities,
|
|
|
|
-- assistanceSupported shall be included if and only if any of the assistance data is supported
|
|
assistanceSupported AssistanceSupported OPTIONAL,
|
|
assistanceNeeded AssistanceNeeded OPTIONAL,
|
|
extensionContainer ExtensionContainer OPTIONAL,
|
|
...
|
|
}
|
|
|
|
|
|
-- add these defintions to RRLP-Components module
|
|
-- 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) OPTIONAL, -- 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,
|
|
add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
|
|
ganssMultiFreqMeasurementRequest NULL OPTIONAL,
|
|
...
|
|
-- Further Release 7 extentions here
|
|
}
|
|
|
|
-- additional satellite systems may be added in future versions of the protocol
|
|
-- Bit 0 of GANSSPositioningMethod bit map shall not be the only one set to TRUE ('1')
|
|
GANSSPositioningMethod ::= BIT STRING {
|
|
gps (0),
|
|
galileo (1),
|
|
sbas (2),
|
|
modernizedGPS (3),
|
|
qzss (4),
|
|
glonass (5) } (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,
|
|
... ,
|
|
ganssAddIonosphericModel GANSSAddIonosphericModel OPTIONAL,
|
|
ganssEarthOrientParam GANSSEarthOrientParam 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,
|
|
ganssEphemerisExtension GANSSEphemerisExtension OPTIONAL,
|
|
ganssEphemerisExtCheck GANSSEphemerisExtensionCheck OPTIONAL,
|
|
... ,
|
|
sbasID INTEGER (0..7) OPTIONAL, -- Coding according to Annex
|
|
ganssAddUTCModel GANSSAddUTCModel OPTIONAL,
|
|
ganssAuxiliaryInfo GANSSAuxiliaryInformation OPTIONAL,
|
|
ganssDiffCorrectionsValidityPeriod GANSSDiffCorrectionsValidityPeriod 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 Additional Ionospheric Model IE
|
|
-- GANSS Additional Ionospheric Model consists of Klobuchar model parameters
|
|
GANSSAddIonosphericModel ::= SEQUENCE {
|
|
dataID BIT STRING (SIZE (2)), -- Coding according to Annex
|
|
ionoModel IonosphericModel
|
|
}
|
|
|
|
-- GANSS Earth Orientation Paramaters IE
|
|
GANSSEarthOrientParam ::= SEQUENCE {
|
|
teop INTEGER (0..65535),
|
|
pmX INTEGER (-1048576..1048575),
|
|
pmXdot INTEGER (-16384..16383),
|
|
pmY INTEGER (-1048576..1048575),
|
|
pmYdot INTEGER (-16384..16383),
|
|
deltaUT1 INTEGER (-1073741824..1073741823),
|
|
deltaUT1dot INTEGER (-262144..262143)
|
|
}
|
|
|
|
-- 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), -- coding according to annex
|
|
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, -- signal type identity
|
|
ganssStatusHealth INTEGER (0 .. 7),
|
|
-- N_SAT can be read from number of elements of dganssSgnList
|
|
dganssSgnList SeqOfDGANSSSgnElement
|
|
}
|
|
|
|
GANSSSignalID ::= INTEGER (0 .. 7) -- 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),
|
|
ganssSatelliteList SeqOfGANSSSatelliteElement
|
|
}
|
|
|
|
SeqOfGANSSSatelliteElement ::= SEQUENCE (SIZE(1..32)) OF GANSSSatelliteElement
|
|
|
|
GANSSSatelliteElement ::= SEQUENCE {
|
|
svID SVID,
|
|
svHealth BIT STRING (SIZE(5)), -- Coding according to Annex
|
|
iod INTEGER (0 .. 1023), -- Coding according to Annex
|
|
ganssClockModel GANSSClockModel,
|
|
ganssOrbitModel GANSSOrbitModel,
|
|
...,
|
|
svHealthMSB BIT STRING (SIZE(1)) OPTIONAL, -- Coding according to Annex
|
|
iodMSB INTEGER (0 .. 1) OPTIONAL -- Coding according to Annex
|
|
}
|
|
|
|
-- GANSS orbit model for the GNSS satellite according to the choice
|
|
GANSSOrbitModel ::= CHOICE {
|
|
keplerianSet NavModel-KeplerianSet, -- Model-1
|
|
... ,
|
|
navKeplerianSet NavModel-NAVKeplerianSet, -- Model-2
|
|
cnavKeplerianSet NavModel-CNAVKeplerianSet, -- Model-3
|
|
glonassECEF NavModel-GLONASSecef, -- Model-4
|
|
sbasECEF NavModel-SBASecef -- Model-5
|
|
}
|
|
|
|
-- Navigation model in Keplerian parameters
|
|
NavModel-KeplerianSet ::= SEQUENCE {
|
|
keplerToe INTEGER (0 .. 16383),
|
|
keplerW INTEGER (-2147483648..2147483647),
|
|
keplerDeltaN INTEGER (-32768..32767),
|
|
keplerM0 INTEGER (-2147483648..2147483647),
|
|
keplerOmegaDot INTEGER (-8388608..8388607),
|
|
keplerE INTEGER (0..4294967295),
|
|
keplerIDot INTEGER (-8192..8191),
|
|
keplerAPowerHalf INTEGER (0.. 4294967295),
|
|
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)
|
|
}
|
|
|
|
NavModel-NAVKeplerianSet ::= SEQUENCE {
|
|
navURA INTEGER (0..15),
|
|
navFitFlag INTEGER (0..1),
|
|
navToe INTEGER (0..37799),
|
|
navOmega INTEGER (-2147483648..2147483647),
|
|
navDeltaN INTEGER (-32768..32767),
|
|
navM0 INTEGER (-2147483648..2147483647),
|
|
navOmegaADot INTEGER (-8388608..8388607),
|
|
navE INTEGER (0..4294967295),
|
|
navIDot INTEGER (-8192..8191),
|
|
navAPowerHalf INTEGER (0..4294967295),
|
|
navI0 INTEGER (-2147483648..2147483647),
|
|
navOmegaA0 INTEGER (-2147483648..2147483647),
|
|
navCrs INTEGER (-32768..32767),
|
|
navCis INTEGER (-32768..32767),
|
|
navCus INTEGER (-32768..32767),
|
|
navCrc INTEGER (-32768..32767),
|
|
navCic INTEGER (-32768..32767),
|
|
navCuc INTEGER (-32768..32767)
|
|
}
|
|
|
|
NavModel-CNAVKeplerianSet ::= SEQUENCE {
|
|
cnavTop INTEGER (0..2015),
|
|
cnavURAindex INTEGER (-16..15),
|
|
cnavDeltaA INTEGER (-33554432..33554431),
|
|
cnavAdot INTEGER (-16777216..16777215),
|
|
cnavDeltaNo INTEGER (-65536..65535),
|
|
cnavDeltaNoDot INTEGER (-4194304..4194303),
|
|
cnavMo INTEGER (-4294967296..4294967295),
|
|
cnavE INTEGER (0..8589934591),
|
|
cnavOmega INTEGER (-4294967296..4294967295),
|
|
cnavOMEGA0 INTEGER (-4294967296..4294967295),
|
|
cnavDeltaOmegaDot INTEGER (-65536..65535),
|
|
cnavIo INTEGER (-4294967296..4294967295),
|
|
cnavIoDot INTEGER (-16384..16383),
|
|
cnavCis INTEGER (-32768..32767),
|
|
cnavCic INTEGER (-32768..32767),
|
|
cnavCrs INTEGER (-8388608..8388607),
|
|
cnavCrc INTEGER (-8388608..8388607),
|
|
cnavCus INTEGER (-1048576..1048575),
|
|
cnavCuc INTEGER (-1048576..1048575)
|
|
}
|
|
|
|
NavModel-GLONASSecef ::= SEQUENCE {
|
|
gloEn INTEGER (0..31),
|
|
gloP1 BIT STRING (SIZE(2)),
|
|
gloP2 BOOLEAN,
|
|
gloM INTEGER (0..3),
|
|
gloX INTEGER (-67108864..67108863),
|
|
gloXdot INTEGER (-8388608..8388607),
|
|
gloXdotdot INTEGER (-16..15),
|
|
gloY INTEGER (-67108864..67108863),
|
|
gloYdot INTEGER (-8388608..8388607),
|
|
gloYdotdot INTEGER (-16..15),
|
|
gloZ INTEGER (-67108864..67108863),
|
|
gloZdot INTEGER (-8388608..8388607),
|
|
gloZdotdot INTEGER (-16..15)
|
|
}
|
|
|
|
|
|
NavModel-SBASecef ::= SEQUENCE {
|
|
sbasTo INTEGER (0..5399) OPTIONAL,
|
|
sbasAccuracy BIT STRING (SIZE(4)),
|
|
sbasXg INTEGER (-536870912..536870911),
|
|
sbasYg INTEGER (-536870912..536870911),
|
|
sbasZg INTEGER (-16777216..16777215),
|
|
sbasXgDot INTEGER (-65536..65535),
|
|
sbasYgDot INTEGER (-65536..65535),
|
|
sbasZgDot INTEGER (-131072..131071),
|
|
sbasXgDotDot INTEGER (-512..511),
|
|
sbagYgDotDot INTEGER (-512..511),
|
|
sbasZgDotDot INTEGER (-512..511)
|
|
}
|
|
|
|
-- GANSS clock model for the GNSS satellite according to the choice
|
|
GANSSClockModel ::= CHOICE {
|
|
standardClockModelList SeqOfStandardClockModelElement, -- Model-1
|
|
... ,
|
|
navClockModel NAVclockModel, -- Model-2
|
|
cnavClockModel CNAVclockModel, -- Model-3
|
|
glonassClockModel GLONASSclockModel, -- Model-4
|
|
sbasClockModel SBASclockModel -- Model-5
|
|
}
|
|
|
|
SeqOfStandardClockModelElement ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement
|
|
|
|
StandardClockModelElement ::= SEQUENCE {
|
|
stanClockToc INTEGER (0 .. 16383),
|
|
stanClockAF2 INTEGER (-2048 .. 2047),
|
|
stanClockAF1 INTEGER (-131072 .. 131071),
|
|
stanClockAF0 INTEGER (-134217728 .. 134217727),
|
|
stanClockTgd INTEGER (-512 .. 511) OPTIONAL,
|
|
stanModelID INTEGER (0 .. 1) OPTIONAL,
|
|
...
|
|
}
|
|
|
|
NAVclockModel ::= SEQUENCE {
|
|
navToc INTEGER (0.. 37799),
|
|
navaf2 INTEGER (-128..127),
|
|
navaf1 INTEGER (-32768..32767),
|
|
navaf0 INTEGER (-2097152..2097151),
|
|
navTgd INTEGER (-128..127)
|
|
}
|
|
|
|
CNAVclockModel ::= SEQUENCE {
|
|
cnavToc INTEGER (0..2015),
|
|
cnavTop INTEGER (0..2015),
|
|
cnavURA0 INTEGER (-16..15),
|
|
cnavURA1 INTEGER (0..7),
|
|
cnavURA2 INTEGER (0..7),
|
|
cnavAf2 INTEGER (-512..511),
|
|
cnavAf1 INTEGER (-524288..524287),
|
|
cnavAf0 INTEGER (-33554432..33554431),
|
|
cnavTgd INTEGER (-4096..4095),
|
|
cnavISCl1cp INTEGER (-4096..4095) OPTIONAL,
|
|
cnavISCl1cd INTEGER (-4096..4095) OPTIONAL,
|
|
cnavISCl1ca INTEGER (-4096..4095) OPTIONAL,
|
|
cnavISCl2c INTEGER (-4096..4095) OPTIONAL,
|
|
cnavISCl5i5 INTEGER (-4096..4095) OPTIONAL,
|
|
cnavISCl5q5 INTEGER (-4096..4095) OPTIONAL
|
|
}
|
|
|
|
GLONASSclockModel ::= SEQUENCE {
|
|
gloTau INTEGER (-2097152..2097151),
|
|
gloGamma INTEGER (-1024..1023),
|
|
gloDeltaTau INTEGER (-16..15) OPTIONAL
|
|
}
|
|
|
|
SBASclockModel ::= SEQUENCE {
|
|
sbasTo INTEGER (0..5399),
|
|
sbasAgfo INTEGER (-2048..2047),
|
|
sbasAgf1 INTEGER (-128..127)
|
|
}
|
|
|
|
-- GANSS Real-Time Integrity IE
|
|
GANSSRealTimeIntegrity ::= SEQUENCE {
|
|
-- list of satellites with 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 GANSSSignals OPTIONAL -- Coding according to Annex
|
|
}
|
|
|
|
-- GANSS Data Bit Assistance IE
|
|
GANSSDataBitAssist ::= SEQUENCE {
|
|
ganssTOD INTEGER (0 .. 59),
|
|
-- N_SAT can be read from number of elements in SeqOfGanssDataBitsElement
|
|
ganssDataBitsSatList SeqOfGanssDataBitsElement,
|
|
...
|
|
}
|
|
|
|
SeqOfGanssDataBitsElement ::= SEQUENCE (SIZE(1 .. 32))OF GanssDataBitsElement
|
|
|
|
GanssDataBitsElement ::= SEQUENCE {
|
|
svID SVID,
|
|
-- N_SGN can be read from number of elements in Seq-OfGANSSDataBitsSgn
|
|
ganssDataBitsSgnList Seq-OfGANSSDataBitsSgn,
|
|
...
|
|
}
|
|
|
|
Seq-OfGANSSDataBitsSgn ::= SEQUENCE (SIZE(1..8)) OF GANSSDataBitsSgnElement
|
|
|
|
GANSSDataBitsSgnElement ::= SEQUENCE {
|
|
ganssSignalType GANSSSignalID,
|
|
-- 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 GANSSSignalID, -- Coding according to Annex
|
|
ganssRefMeasAssistList 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
|
|
-- ( = -42 + (0 to 63) with 1/210 m/s2 resolution)
|
|
doppler1 INTEGER (0..63),
|
|
dopplerUncertainty INTEGER (0..4)
|
|
}
|
|
|
|
-- GANSS Almanac Model IE
|
|
GANSSAlmanacModel ::= SEQUENCE {
|
|
weekNumber INTEGER (0 .. 255),
|
|
toa INTEGER (0 .. 255) OPTIONAL,
|
|
ioda INTEGER (0 .. 3) OPTIONAL,
|
|
ganssAlmanacList SeqOfGANSSAlmanacElement
|
|
}
|
|
|
|
|
|
SeqOfGANSSAlmanacElement ::= SEQUENCE (SIZE(1 .. 36)) OF GANSSAlmanacElement
|
|
|
|
-- GANSS Almanac Model
|
|
GANSSAlmanacElement ::= CHOICE {
|
|
keplerianAlmanacSet Almanac-KeplerianSet, -- Model-1
|
|
...,
|
|
keplerianNAVAlmanac Almanac-NAVKeplerianSet, -- Model-2
|
|
keplerianReducedAlmanac Almanac-ReducedKeplerianSet, -- Model-3
|
|
keplerianMidiAlmanac Almanac-MidiAlmanacSet, -- Model-4
|
|
keplerianGLONASS Almanac-GlonassAlmanacSet, -- Model-5
|
|
ecefSBASAlmanac Almanac-ECEFsbasAlmanacSet -- Model-6
|
|
}
|
|
|
|
-- Almanac parameters according to Keplerian parameters
|
|
Almanac-KeplerianSet ::= SEQUENCE {
|
|
svID SVID,
|
|
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)
|
|
}
|
|
|
|
Almanac-NAVKeplerianSet ::= SEQUENCE {
|
|
svID SVID,
|
|
navAlmE INTEGER (0..65535),
|
|
navAlmDeltaI INTEGER (-32768..32767),
|
|
navAlmOMEGADOT INTEGER (-32768..32767),
|
|
navAlmSVHealth INTEGER (0..255),
|
|
navAlmSqrtA INTEGER (0..16777215),
|
|
navAlmOMEGAo INTEGER (-8388608..8388607),
|
|
navAlmOmega INTEGER (-8388608..8388607),
|
|
navAlmMo INTEGER (-8388608..8388607),
|
|
navAlmaf0 INTEGER (-1024..1023),
|
|
navAlmaf1 INTEGER (-1024..1023)
|
|
}
|
|
|
|
Almanac-ReducedKeplerianSet ::= SEQUENCE {
|
|
svID SVID,
|
|
redAlmDeltaA INTEGER (-128..127),
|
|
redAlmOmega0 INTEGER (-64..63),
|
|
redAlmPhi0 INTEGER (-64..63),
|
|
redAlmL1Health BOOLEAN,
|
|
redAlmL2Health BOOLEAN,
|
|
redAlmL5Health BOOLEAN
|
|
}
|
|
|
|
Almanac-MidiAlmanacSet ::= SEQUENCE {
|
|
svID SVID,
|
|
midiAlmE INTEGER (0..2047),
|
|
midiAlmDeltaI INTEGER (-1024..1023),
|
|
midiAlmOmegaDot INTEGER (-1024..1023),
|
|
midiAlmSqrtA INTEGER (0..131071),
|
|
midiAlmOmega0 INTEGER (-32768..32767),
|
|
midiAlmOmega INTEGER (-32768..32767),
|
|
midiAlmMo INTEGER (-32768..32767),
|
|
midiAlmaf0 INTEGER (-1024..1023),
|
|
midiAlmaf1 INTEGER (-512..511),
|
|
midiAlmL1Health BOOLEAN,
|
|
midiAlmL2Health BOOLEAN,
|
|
midiAlmL5Health BOOLEAN
|
|
}
|
|
|
|
Almanac-GlonassAlmanacSet ::= SEQUENCE {
|
|
gloAlmNA INTEGER (1..1461),
|
|
gloAlmnA INTEGER (1..24),
|
|
gloAlmHA INTEGER (0..31),
|
|
gloAlmLambdaA INTEGER (-1048576..1048575),
|
|
gloAlmtlambdaA INTEGER (0..2097151),
|
|
gloAlmDeltaIa INTEGER (-131072..131071),
|
|
gloAlmDeltaTA INTEGER (-2097152..2097151),
|
|
gloAlmDeltaTdotA INTEGER (-64..63),
|
|
gloAlmEpsilonA INTEGER (0..32767),
|
|
gloAlmOmegaA INTEGER (-32768..32767),
|
|
gloAlmTauA INTEGER (-512..511),
|
|
gloAlmCA INTEGER (0..1),
|
|
gloAlmMA BIT STRING (SIZE(2)) OPTIONAL
|
|
}
|
|
|
|
Almanac-ECEFsbasAlmanacSet ::= SEQUENCE {
|
|
sbasAlmDataID INTEGER (0..3),
|
|
svID SVID,
|
|
sbasAlmHealth BIT STRING (SIZE(8)),
|
|
sbasAlmXg INTEGER (-16384..16383),
|
|
sbasAlmYg INTEGER (-16384..16383),
|
|
sbasAlmZg INTEGER (-256..255),
|
|
sbasAlmXgdot INTEGER (-4..3),
|
|
sbasAlmYgDot INTEGER (-4..3),
|
|
sbasAlmZgDot INTEGER (-8..7),
|
|
sbasAlmTo INTEGER (0..2047)
|
|
}
|
|
|
|
-- GANSS Universal Time Coordinate Model (Model-1)
|
|
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)
|
|
}
|
|
|
|
--GANSS Ephemeris Extension
|
|
GANSSEphemerisExtension ::= SEQUENCE {
|
|
ganssEphemerisHeader GANSSEphemerisExtensionHeader OPTIONAL,
|
|
ganssReferenceSet SeqOfGANSSRefOrbit OPTIONAL,
|
|
ganssephemerisDeltasMatrix GANSSEphemerisDeltaMatrix OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- The ganssEphemerisHeader and the ganssReferenceSet are mandatory only once in the delivery of the
|
|
-- GANSS Ephemeris Extension. The ganssReferenceSet shall include all healthy satellite vehicles
|
|
-- at the time of message construction.
|
|
|
|
GANSSEphemerisExtensionHeader ::= SEQUENCE {
|
|
timeAtEstimation GANSSEphemerisExtensionTime,
|
|
validityPeriod INTEGER(1..8),
|
|
-- The validity period, represented in hours, is the validity period of each individual ephemeris
|
|
-- delta payload
|
|
ephemerisExtensionDuration INTEGER(1..512),
|
|
-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
|
|
-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
|
|
-- extension capability at this time.
|
|
...
|
|
}
|
|
|
|
GANSSEphemerisExtensionTime ::= SEQUENCE {
|
|
ganssEphExtDay INTEGER(0..8191),
|
|
ganssEphExtTOD GANSSTOD,
|
|
...
|
|
}
|
|
|
|
-- Reference Nav Model for Ephepmeris Extension
|
|
ReferenceNavModel ::= SEQUENCE {
|
|
keplerToe INTEGER (0..37799),
|
|
keplerW INTEGER (-2147483648..2147483647),
|
|
keplerDeltaN INTEGER (-32768..32767),
|
|
keplerM0 INTEGER (-2147483648..2147483647),
|
|
keplerOmegaDot INTEGER (-8388608..8388607),
|
|
keplerE INTEGER (0..4294967295),
|
|
keplerIDot INTEGER (-8192..8191),
|
|
keplerAPowerHalf INTEGER (0.. 4294967295),
|
|
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)
|
|
}
|
|
|
|
SeqOfGANSSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GANSSReferenceOrbit
|
|
--The number of reference orbits can be read from number of elements in this sequence
|
|
|
|
GANSSReferenceOrbit ::= SEQUENCE {
|
|
svID SVID,
|
|
ganssOrbitModel ReferenceNavModel,
|
|
ganssClockModel GANSSClockModel,
|
|
...
|
|
}
|
|
|
|
GANSSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GANSSEphemerisDeltaEpoch
|
|
|
|
GANSSEphemerisDeltaEpoch ::= SEQUENCE {
|
|
ganssDeltaEpochHeader GANSSDeltaEpochHeader OPTIONAL,
|
|
ganssDeltaElementList GANSSDeltaElementList,
|
|
...
|
|
}
|
|
-- Each GANSSDeltaEpoch element contains a header and the delta values for a particular time window
|
|
-- for all PRN's.
|
|
|
|
GANSSDeltaEpochHeader ::= SEQUENCE {
|
|
validityPeriod INTEGER(1..8) OPTIONAL,
|
|
ephemerisDeltaSizes GANSSEphemerisDeltaBitSizes OPTIONAL,
|
|
ephemerisDeltaScales GANSSEphemerisDeltaScales OPTIONAL,
|
|
...
|
|
}
|
|
-- In each of the GANSSDeltaEpochs, if the optional element, validityPeriod is not included, the
|
|
-- value in GANSSEphemerisExtensionHeader shall be used. If the optional elements
|
|
-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
|
|
-- sizes and scales shall be used. The default sizes and scales are found in the annex in the
|
|
-- table 55.11.
|
|
|
|
GANSSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..49))
|
|
-- Each octet string element in GANSSDeltaElementList corresponds to one PRN within one epoch
|
|
|
|
-- Table 55.11 of the annex shows the organization of the delta ephemeris octet string.
|
|
-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
|
|
-- table to learn the length and order of each of the parameters in the ephemerisDelta payload.
|
|
|
|
-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the
|
|
-- scale factors to apply to the terms in the delta ephemeris.
|
|
|
|
-- Ephemeris Delta Bit Sizes.
|
|
|
|
GANSSEphemerisDeltaBitSizes ::= SEQUENCE {
|
|
|
|
-- This structure defines the order and sizes of the fields in the GANSSDeltaEpoch octet string
|
|
-- seqNum and svID are the first two elements of each GANSS Ephemeris Delta Element Structure
|
|
-- seqNum is always 7 bits, and svID is always 6 bits long and are thus not included in
|
|
-- the GANSSEphemerisDeltaBitSizes table. The value of seqNum indicates the GANSSDeltaEpoch number
|
|
|
|
-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
|
|
-- seqNum as the first two elements (in that order),in each block.
|
|
|
|
bitsize-delta-omega INTEGER(1..32),
|
|
bitsize-delta-deltaN INTEGER(1..16),
|
|
bitsize-delta-m0 INTEGER(1..32),
|
|
bitsize-delta-omegadot INTEGER(1..24),
|
|
bitsize-delta-e INTEGER(1..32),
|
|
bitsize-delta-idot INTEGER(1..14),
|
|
bitsize-delta-sqrtA INTEGER(1..32),
|
|
bitsize-delta-i0 INTEGER(1..32),
|
|
bitsize-delta-omega0 INTEGER(1..32),
|
|
bitsize-delta-crs INTEGER(1..16),
|
|
bitsize-delta-cis INTEGER(1..16),
|
|
bitsize-delta-cus INTEGER(1..16),
|
|
bitsize-delta-crc INTEGER(1..16),
|
|
bitsize-delta-cic INTEGER(1..16),
|
|
bitsize-delta-cuc INTEGER(1..16),
|
|
bitsize-delta-tgd1 INTEGER(1..10),
|
|
bitsize-delta-tgd2 INTEGER(1..10),
|
|
...
|
|
}
|
|
|
|
GANSSEphemerisDeltaScales ::= SEQUENCE {
|
|
|
|
scale-delta-omega INTEGER(-16..15),
|
|
scale-delta-deltaN INTEGER(-16..15),
|
|
scale-delta-m0 INTEGER(-16..15),
|
|
scale-delta-omegadot INTEGER(-16..15),
|
|
scale-delta-e INTEGER(-16..15),
|
|
scale-delta-idot INTEGER(-16..15),
|
|
scale-delta-sqrtA INTEGER(-16..15),
|
|
scale-delta-i0 INTEGER(-16..15),
|
|
scale-delta-omega0 INTEGER(-16..15),
|
|
scale-delta-crs INTEGER(-16..15),
|
|
scale-delta-cis INTEGER(-16..15),
|
|
scale-delta-cus INTEGER(-16..15),
|
|
scale-delta-crc INTEGER(-16..15),
|
|
scale-delta-cic INTEGER(-16..15),
|
|
scale-delta-cuc INTEGER(-16..15),
|
|
scale-delta-tgd1 INTEGER(-16..15),
|
|
scale-delta-tgd2 INTEGER(-16..15),
|
|
...
|
|
}
|
|
|
|
-- GANSS Ephemeris Extension Check
|
|
GANSSEphemerisExtensionCheck ::= SEQUENCE {
|
|
ganssBeginTime GANSSEphemerisExtensionTime,
|
|
ganssEndTime GANSSEphemerisExtensionTime,
|
|
ganssSatEventsInfo GANSSSatEventsInfo,
|
|
...
|
|
}
|
|
|
|
GANSSSatEventsInfo ::= SEQUENCE {
|
|
eventOccured BIT STRING (SIZE (64)),
|
|
futureEventNoted BIT STRING (SIZE (64)),
|
|
...
|
|
}
|
|
-- If a bit is clear in the eventOccured field it indicates that no known errors have occured
|
|
-- between the current time and the ganssBeginTime nor is a maneuver planned for the next sixty
|
|
-- minutes.
|
|
-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
|
|
-- time period between current time plus sixty minutes and the ganssEndTime
|
|
-- GANSS Additional Universal Time Coordinate Model
|
|
GANSSAddUTCModel ::= CHOICE {
|
|
utcModel2 UTCmodelSet2,
|
|
utcModel3 UTCmodelSet3,
|
|
utcModel4 UTCmodelSet4,
|
|
...
|
|
}
|
|
|
|
UTCmodelSet2 ::= SEQUENCE {
|
|
utcA0 INTEGER (-32768..32767),
|
|
utcA1 INTEGER (-4096.. 4095),
|
|
utcA2 INTEGER (-64..63),
|
|
utcDeltaTls INTEGER (-128.. 127),
|
|
utcTot INTEGER (0..65535),
|
|
utcWNot INTEGER (0..8191),
|
|
utcWNlsf INTEGER (0..255),
|
|
utcDN BIT STRING (SIZE(4)),
|
|
utcDeltaTlsf INTEGER (-128..127)
|
|
}
|
|
|
|
UTCmodelSet3 ::= SEQUENCE {
|
|
nA INTEGER (1..1461),
|
|
tauC INTEGER (-2147483648..2147483647),
|
|
b1 INTEGER (-1024..1023) OPTIONAL,
|
|
b2 INTEGER (-512..511) OPTIONAL,
|
|
kp BIT STRING (SIZE(2)) OPTIONAL
|
|
}
|
|
|
|
UTCmodelSet4 ::= SEQUENCE {
|
|
utcA1wnt INTEGER (-8388608..8388607),
|
|
utcA0wnt 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),
|
|
utcStandardID INTEGER (0..7) -- coding according to annex
|
|
}
|
|
|
|
-- GANSS Auxiliary Information
|
|
GANSSAuxiliaryInformation ::= CHOICE{
|
|
ganssID1 GANSS-ID1, -- This choice may only be present if GANSS ID indicates Modernized GPS
|
|
ganssID3 GANSS-ID3, -- This choice may only be present if GANSS ID indicates GLONASS
|
|
...
|
|
}
|
|
|
|
GANSS-ID1 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID1-element
|
|
|
|
GANSS-ID1-element ::= SEQUENCE {
|
|
svID SVID,
|
|
signalsAvailable GANSSSignals,
|
|
...
|
|
}
|
|
|
|
GANSS-ID3 ::= SEQUENCE (SIZE(1..64)) OF GANSS-ID3-element
|
|
|
|
GANSS-ID3-element ::= SEQUENCE {
|
|
svID SVID,
|
|
signalsAvailable GANSSSignals,
|
|
channelNumber INTEGER (-7..13),
|
|
...
|
|
}
|
|
|
|
-- DGANSS Corrections Validity Period:
|
|
-- This element may only be included if GANSSDiffCorrections IE is included in
|
|
-- GANSSGenericAssistDataElement element.
|
|
-- GANSSDiffCorrectionsValidityPeriod shall contain the same number of elements as the
|
|
-- SeqOfSgnTypeElement included in GANSSDiffCorrections IE
|
|
GANSSDiffCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..3)) OF DGANSSExtensionSgnTypeElement
|
|
|
|
DGANSSExtensionSgnTypeElement ::= SEQUENCE {
|
|
ganssSignalID GANSSSignalID, -- signal type identity
|
|
dganssExtensionSgnList SeqOfDGANSSExtensionSgnElement
|
|
}
|
|
|
|
-- SeqOfDGANSSExtensionSgnElement shall contain the same number of elements as the
|
|
-- SeqOfDGANSSSgnElement included in GANSSDiffCorrections IE
|
|
SeqOfDGANSSExtensionSgnElement ::= SEQUENCE (SIZE (1..16)) OF DGANSSExtensionSgnElement
|
|
|
|
DGANSSExtensionSgnElement ::= SEQUENCE {
|
|
svID SVID, -- Satellite identity
|
|
udreGrowthRate INTEGER(0..7), -- coding according to annex
|
|
udreValidityTime INTEGER(0..7), -- coding according to annex
|
|
...
|
|
}
|
|
|
|
--Required Measurement Request Response Time, range is 1 to 128 seconds.
|
|
RequiredResponseTime ::= INTEGER (1..128)
|
|
|
|
-- Control header for additional GPS assistance data
|
|
Add-GPS-AssistData ::= SEQUENCE {
|
|
add-GPS-controlHeader Add-GPS-ControlHeader
|
|
}
|
|
|
|
Add-GPS-ControlHeader ::= SEQUENCE {
|
|
gpsEphemerisExtension GPSEphemerisExtension OPTIONAL,
|
|
gpsEphemerisExtensionCheck GPSEphemerisExtensionCheck OPTIONAL,
|
|
... ,
|
|
dgpsCorrectionsValidityPeriod DGPSCorrectionsValidityPeriod OPTIONAL
|
|
}
|
|
|
|
GPSClockModel ::= SEQUENCE {
|
|
af2 INTEGER (-128..127),
|
|
af1 INTEGER (-32768..32767),
|
|
af0 INTEGER (-2097152..2097151),
|
|
tgd INTEGER (-128..127)
|
|
}
|
|
|
|
--GPS Ephemeris Extension
|
|
GPSEphemerisExtension ::= SEQUENCE {
|
|
gpsEphemerisHeader GPSEphemerisExtensionHeader OPTIONAL,
|
|
gpsReferenceSet SeqOfGPSRefOrbit OPTIONAL,
|
|
gpsephemerisDeltaMatrix GPSEphemerisDeltaMatrix OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- The gpsEphemerisHeader and the gpsReferenceSet are mandatory only once in the delivery of the
|
|
-- GPS Ephemeris Extension. The gpsReferenceSet shall include all healthy satellite vehicles at the
|
|
-- time of message construction
|
|
|
|
-- The SMLC is required to deliver the gpsReferenceSet for all healthy satellite vehicles
|
|
-- at the time of message construction.
|
|
|
|
GPSEphemerisExtensionHeader ::= SEQUENCE {
|
|
timeofEstimation GPSEphemerisExtensionTime,
|
|
validityPeriod INTEGER(1..8),
|
|
-- The validity period, represented in hours is the validity period of each individual ephemeris
|
|
-- delta payload
|
|
ephemerisExtensionDuration INTEGER(1..512),
|
|
-- If the ephemerisExtensionDuration does not match the request duration made by the MS, the MS
|
|
-- should regard the provided ephemerisExtensionDuration as the limit of the SMLC ephemeris
|
|
-- extension capability at this time.
|
|
...
|
|
}
|
|
|
|
GPSEphemerisExtensionTime ::= SEQUENCE {
|
|
gpsWeek GPSWeek,
|
|
gpsTOW INTEGER (0..604799),
|
|
...
|
|
}
|
|
|
|
SeqOfGPSRefOrbit ::= SEQUENCE (SIZE(1..32)) OF GPSReferenceOrbit
|
|
--The number of reference orbits can be read from number of elements in this sequence
|
|
|
|
GPSReferenceOrbit ::= SEQUENCE {
|
|
svID SVID,
|
|
gpsOrbitModel ReferenceNavModel,
|
|
gpsClockModel GPSClockModel,
|
|
...
|
|
}
|
|
|
|
GPSEphemerisDeltaMatrix ::= SEQUENCE (SIZE(1 .. 128)) OF GPSEphemerisDeltaEpoch
|
|
|
|
GPSEphemerisDeltaEpoch ::= SEQUENCE {
|
|
gpsDeltaEpochHeader GPSDeltaEpochHeader OPTIONAL,
|
|
gpsDeltaElementList GPSDeltaElementList,
|
|
...
|
|
}
|
|
|
|
-- Each GPSDeltaEpoch element contains a header and the delta values for a particular time window
|
|
-- for all PRN's.
|
|
GPSDeltaEpochHeader ::= SEQUENCE {
|
|
validityPeriod INTEGER(1..8) OPTIONAL,
|
|
ephemerisDeltaSizes GPSEphemerisDeltaBitSizes OPTIONAL,
|
|
ephemerisDeltaScales GPSEphemerisDeltaScales OPTIONAL,
|
|
...
|
|
}
|
|
|
|
-- In each of the GPSDeltaEpochs, if the optional element validityPeriod is not included,
|
|
-- the value in GPSEphemerisExtensionHeader shall be used. if the optional elements
|
|
-- ephemerisDeltaSizes or ephemerisDeltaScales are not included, then the default ephemeris delta
|
|
-- sizes and scales shall be used. The default sizes and scales are found in the annex in section
|
|
-- A.29.m
|
|
|
|
GPSDeltaElementList ::= SEQUENCE (SIZE(1 .. 32)) OF OCTET STRING(SIZE (1..47))
|
|
|
|
-- Each octet string element in GPSDeltaElementList corresponds to one PRN within one epoch
|
|
|
|
-- Table A.29.m of the annex shows the organization of the delta ephemeris octet string.
|
|
-- Decoding of each of the octet strings is accomplished by consulting the ephemerisDeltaSizes
|
|
-- table to learn the length and order of each of the parameters in the ephemerisDelta payload
|
|
|
|
-- Post decode scaling is accomplished by consulting the ephemerisDeltaScales table to learn the.
|
|
-- scale factors to apply to the terms in the delta ephemeris
|
|
|
|
-- Ephemeris Delta Bit Sizes.
|
|
|
|
GPSEphemerisDeltaBitSizes ::= SEQUENCE {
|
|
|
|
-- This structure defines the order and sizes of the fields in the GPSsDeltaEpoch octet string
|
|
-- seqNum and svID are the first two elements of each GPS Ephemeris Delta Element Structure
|
|
-- seqNum is always 7 bits, and svID is always 5 bits long and are thus not included in
|
|
-- the GPSEphemerisDeltaBitSizes table. seqNum indicates the GPSDeltaEpoch number.
|
|
|
|
-- The Ephemeris delta element payload mimics the bitsize table, but also includes the svID and
|
|
-- seqNum as the first two elements (in that order),in each block.
|
|
|
|
bitsize-delta-omega INTEGER(1..32),
|
|
bitsize-delta-deltaN INTEGER(1..16),
|
|
bitsize-delta-m0 INTEGER(1..32),
|
|
bitsize-delta-omegadot INTEGER(1..24),
|
|
bitsize-delta-e INTEGER(1..32),
|
|
bitsize-delta-idot INTEGER(1..14),
|
|
bitsize-delta-sqrtA INTEGER(1..32),
|
|
bitsize-delta-i0 INTEGER(1..32),
|
|
bitsize-delta-omega0 INTEGER(1..32),
|
|
bitsize-delta-crs INTEGER(1..16),
|
|
bitsize-delta-cis INTEGER(1..16),
|
|
bitsize-delta-cus INTEGER(1..16),
|
|
bitsize-delta-crc INTEGER(1..16),
|
|
bitsize-delta-cic INTEGER(1..16),
|
|
bitsize-delta-cuc INTEGER(1..16),
|
|
bitsize-delta-tgd INTEGER(1..10),
|
|
...
|
|
}
|
|
|
|
GPSEphemerisDeltaScales ::= SEQUENCE {
|
|
scale-delta-omega INTEGER(-16..15),
|
|
scale-delta-deltaN INTEGER(-16..15),
|
|
scale-delta-m0 INTEGER(-16..15),
|
|
scale-delta-omegadot INTEGER(-16..15),
|
|
scale-delta-e INTEGER(-16..15),
|
|
scale-delta-idot INTEGER(-16..15),
|
|
scale-delta-sqrtA INTEGER(-16..15),
|
|
scale-delta-i0 INTEGER(-16..15),
|
|
scale-delta-omega0 INTEGER(-16..15),
|
|
scale-delta-crs INTEGER(-16..15),
|
|
scale-delta-cis INTEGER(-16..15),
|
|
scale-delta-cus INTEGER(-16..15),
|
|
scale-delta-crc INTEGER(-16..15),
|
|
scale-delta-cic INTEGER(-16..15),
|
|
scale-delta-cuc INTEGER(-16..15),
|
|
scale-delta-tgd INTEGER(-16..15),
|
|
...
|
|
}
|
|
|
|
GPSEphemerisExtensionCheck ::= SEQUENCE {
|
|
gpsBeginTime GPSEphemerisExtensionTime,
|
|
gpsEndTime GPSEphemerisExtensionTime,
|
|
gpsSatEventsInfo GPSSatEventsInfo,
|
|
...
|
|
}
|
|
|
|
GPSSatEventsInfo ::= SEQUENCE {
|
|
eventOccured BIT STRING (SIZE (32)),
|
|
futureEventNoted BIT STRING (SIZE (32)),
|
|
...
|
|
}
|
|
-- If a bit is clear in the eventOccured field it indicates that no known errors have occured since
|
|
-- the gpsBeginTime nor is a maneuver planned for the next sixty minutes.
|
|
-- If a bit is set in the futureEventNoted field it indicates that a maneuver is planned during the
|
|
-- time period between current time plus sixty minutes and gpsEndTime
|
|
|
|
-- DGPS Corrections Validity Period:
|
|
-- This element may only be included if DGPSCorrections IE is included in ControlHeader element.
|
|
-- DGPSCorrectionsValidityPeriod shall contain the same number of elements as the SeqOfSatElement
|
|
-- included in DGPSCorrections IE
|
|
DGPSCorrectionsValidityPeriod ::= SEQUENCE (SIZE (1..16)) OF DGPSExtensionSatElement
|
|
|
|
DGPSExtensionSatElement ::= SEQUENCE {
|
|
satelliteID SatelliteID,
|
|
udreGrowthRate INTEGER(0..7), -- coding according to annex
|
|
udreValidityTime INTEGER(0..7), -- coding according to annex
|
|
...
|
|
}
|
|
|
|
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
|
|
-- a value of 16384 shall not be encoded by the sender
|
|
-- the receiver shall consider a value of 16384 to be invalid data
|
|
ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
|
|
ganssTimeID INTEGER (0 .. 7) 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),
|
|
sbas (3),
|
|
modernizedGPS (4),
|
|
qzss (5),
|
|
glonass (6) } (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
|
|
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
|
|
-- if ganssTODm is included, it is the GNSS specific system time of the GANSS reported
|
|
-- first in ganss-SgnTypeList. If GPS Measurement Information element is not included in
|
|
-- a Measure Position Response component, this field shall be present.
|
|
ganssTODm GANSSTODm OPTIONAL, -- GANSS TOD modulo 1 hour
|
|
deltaGANSSTOD INTEGER (0 .. 127) OPTIONAL,
|
|
ganssTODUncertainty GANSSTODUncertainty OPTIONAL, -- Coding according to Annex
|
|
--N_GANSS can be read from number of elements of SeqOfGANSS-MsrElement
|
|
ganss-MsrElementList SeqOfGANSS-MsrElement
|
|
}
|
|
|
|
SeqOfGANSS-MsrElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-MsrElement
|
|
|
|
GANSS-MsrElement ::= SEQUENCE {
|
|
ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
|
|
ganss-SgnTypeList SeqOfGANSS-SgnTypeElement
|
|
}
|
|
|
|
-- Measurements can be returned up to 8 different signal types
|
|
-- N_SGN_TYPE can be read from number of elements of SeqOfGANSS-SgnTypeElement
|
|
-- Reporting of multiple signal types as defined in A.2.2.4g
|
|
SeqOfGANSS-SgnTypeElement ::= SEQUENCE (SIZE(1..8)) OF GANSS-SgnTypeElement
|
|
|
|
GANSS-SgnTypeElement ::= SEQUENCE {
|
|
ganssSignalID GANSSSignalID, -- Coding according to Annex
|
|
ganssCodePhaseAmbiguity INTEGER (0 .. 127) OPTIONAL,
|
|
--N_SGN can be read from number of elements of SeqOfGANSS-SgnElement
|
|
ganss-SgnList SeqOfGANSS-SgnElement,
|
|
...
|
|
}
|
|
|
|
-- Up to 16 Measurements can be returned per signal type
|
|
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 .. 127) OPTIONAL,
|
|
codePhaseRMSError INTEGER (0..63), -- Coding according 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,
|
|
add-GPS-AssistData Add-GPS-AssistData OPTIONAL,
|
|
...
|
|
-- Possibly more extensions for Release 7 here
|
|
}
|
|
|
|
-- Rel-7 Positioning Capability parameters here
|
|
|
|
PosCapabilities ::= SEQUENCE {
|
|
|
|
-- nonGANSSpositionMethods shall be included if and only if any
|
|
-- of the non-GANSS methods is supported.
|
|
nonGANSSpositionMethods NonGANSSPositionMethods OPTIONAL,
|
|
|
|
-- gANSSpositionMethods shall be included if and only if any of the GANSS methods is supported.
|
|
gANSSPositionMethods GANSSPositionMethods OPTIONAL,
|
|
|
|
-- multipleMeasurementSets shall be present if and only if 'multiple sets' is supported
|
|
-- for any of the positioning methods
|
|
multipleMeasurementSets MultipleMeasurementSets OPTIONAL,
|
|
...
|
|
}
|
|
|
|
NonGANSSPositionMethods ::= BIT STRING {
|
|
msAssistedEOTD (0),
|
|
msBasedEOTD (1),
|
|
msAssistedGPS (2), -- If this bit is set, gpsAssistance in AssistanceSupported IE
|
|
-- shall be present
|
|
msBasedGPS (3), -- If this bit is set, gpsAssistance in AssistanceSupported IE
|
|
-- shall be present
|
|
|
|
standaloneGPS (4) } (SIZE (1..16))
|
|
|
|
GANSSPositionMethods ::= SEQUENCE (SIZE(1..16)) OF GANSSPositionMethod
|
|
|
|
GANSSPositionMethod ::= SEQUENCE {
|
|
ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
|
|
-- gANSSPositioningMethodTypes may be present for PosCapability-Req
|
|
-- and shall be present for PosCapability-Rsp
|
|
gANSSPositioningMethodTypes GANSSPositioningMethodTypes OPTIONAL,
|
|
gANSSSignals GANSSSignals,
|
|
... ,
|
|
-- sbasID shall be present if and only if ganssID indicates SBAS
|
|
sbasID SBASID OPTIONAL
|
|
}
|
|
|
|
GANSSPositioningMethodTypes ::= BIT STRING {
|
|
msAssisted (0), -- If this bit is set, gANSSAssistanceSet in AssistanceSupported IE
|
|
-- shall be present.
|
|
msBased (1), -- If this bit is set, gANSSAssistanceSet in AssistanceSupported IE
|
|
-- shall be present.
|
|
standalone (2) } (SIZE (1..8))
|
|
|
|
-- indicates MS support for particular GANSS signals and frequencies
|
|
GANSSSignals ::= BIT STRING {
|
|
signal1 (0),
|
|
signal2 (1),
|
|
signal3 (2),
|
|
signal4 (3),
|
|
signal5 (4),
|
|
signal6 (5),
|
|
signal7 (6),
|
|
signal8 (7) } (SIZE (1..8))
|
|
|
|
SBASID ::= BIT STRING {
|
|
waas (0),
|
|
egnos (1),
|
|
masas (2),
|
|
gagan (3) } (SIZE (1..8))
|
|
|
|
-- indicates MS support of multiple measurement sets for MS assisted position methods
|
|
MultipleMeasurementSets ::= BIT STRING {
|
|
eotd (0),
|
|
gps (1),
|
|
ganss (2) } (SIZE (1..8))
|
|
|
|
-- indicates MS support of different types of assistance data
|
|
AssistanceSupported ::= SEQUENCE {
|
|
gpsAssistance GPSAssistance OPTIONAL,
|
|
gANSSAssistanceSet GANSSAssistanceSet OPTIONAL,
|
|
... ,
|
|
-- gANSSAdditionalAssistanceChoices shall be present if the MS supports other than native models
|
|
gANSSAdditionalAssistanceChoices GANSSAdditionalAssistanceChoices OPTIONAL
|
|
}
|
|
|
|
-- GPS assistance data supported
|
|
GPSAssistance ::= BIT STRING {
|
|
almanac (0),
|
|
uTCmodel (1),
|
|
ionosphericModel (2),
|
|
navigationmodel (3),
|
|
dGPScorrections (4),
|
|
referenceLocation (5),
|
|
referenceTime (6),
|
|
acquisitionAssistance (7),
|
|
realTimeIntegrity (8),
|
|
ephemerisExtension (9),
|
|
ephemerisExtensionCheck (10)} (SIZE (1..16))
|
|
|
|
-- GANSS assistance data supported
|
|
GANSSAssistanceSet ::= SEQUENCE {
|
|
commonGANSSAssistance CommonGANSSAssistance,
|
|
specificGANSSAssistance SpecificGANSSAssistance,
|
|
...
|
|
}
|
|
|
|
-- Common GANSS assistance data supported
|
|
CommonGANSSAssistance ::= BIT STRING {
|
|
referenceTime (0),
|
|
referenceLocation (1),
|
|
ionosphericModel (3),
|
|
addIonosphericModel (4),
|
|
earthOrientationParam (5) } (SIZE (1..8))
|
|
|
|
SpecificGANSSAssistance ::= SEQUENCE (SIZE(1..16)) OF GANSSAssistanceForOneGANSS
|
|
|
|
-- assistance data supported for a particular GANSS system
|
|
GANSSAssistanceForOneGANSS ::= SEQUENCE {
|
|
ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
|
|
gANSSAssistance GANSSAssistance,
|
|
...
|
|
}
|
|
|
|
-- specific GANSS assistance data supported
|
|
GANSSAssistance ::= BIT STRING {
|
|
realTimeIntegrity (0),
|
|
differentialCorrections (1),
|
|
almanac (2),
|
|
referenceMeasurementInformation (3),
|
|
navigationModel (4),
|
|
timeModelGNSS-UTC (5),
|
|
timeModelGNSS-GNSS (6),
|
|
databitassistance (7),
|
|
ephemerisExtension (8),
|
|
ephemerisExtensionCheck (9),
|
|
addUTCmodel (10),
|
|
auxiliaryInformation (11) } (SIZE (1..16))
|
|
|
|
|
|
GANSSAdditionalAssistanceChoices ::= SEQUENCE (SIZE(1..16)) OF GANSSAdditionalAssistanceChoicesForOneGANSS
|
|
|
|
GANSSAdditionalAssistanceChoicesForOneGANSS ::= SEQUENCE {
|
|
ganssID INTEGER (0..7) OPTIONAL, --Absence means Galileo
|
|
ganssClockModelChoice GANSSModelID OPTIONAL,
|
|
gannsOrbitModelChoice GANSSModelID OPTIONAL,
|
|
ganssAlmanacModelChoice GANSSModelID OPTIONAL,
|
|
ganssAdditionalUTCModelChoice GANSSModelID OPTIONAL,
|
|
...
|
|
}
|
|
|
|
GANSSModelID ::= BIT STRING {
|
|
model1 (0),
|
|
model2 (1),
|
|
model3 (2),
|
|
model4 (3),
|
|
model5 (4),
|
|
model6 (5),
|
|
model7 (6),
|
|
model8 (7) } (SIZE (1..8))
|
|
|
|
|
|
-- indicates assistance data that may be needed by the MS
|
|
-- These elements are coded as defined in TS 49.031 with the exceptions defined in section A.8.2.3
|
|
AssistanceNeeded ::= SEQUENCE {
|
|
gpsAssistanceData GPSAssistanceData OPTIONAL,
|
|
ganssAssistanceData GANSSAssistanceData OPTIONAL,
|
|
...
|
|
}
|
|
|
|
END
|