-- RRLP-Components.asn -- Taken from 3GPP TS 44.031 V11.0.0 (2012-09) -- http://www.3gpp.org/ftp/Specs/archive/44_series/44.031/44031-b00.zip/44031-b00.doc -- -- 4 Components -- 5 Elements of Components -- RRLP-Components -- { RRLP-Components } DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS Ext-GeographicalInformation, VelocityEstimate FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version10 (10)} ExtensionContainer FROM MAP-ExtensionDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version10 (10)} ; -- 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, ... } -- 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, -- If GANSSReferenceTime is included, GANSSReferenceTime-R10-Ext shall also be included. ganssReferenceTime-R10-Ext GANSSReferenceTime-R10-Ext 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, -- If SeqOfGANSSTimeModel is included, SeqOfGANSSTimeModel-R10-Ext shall also be included. ganssTimeModel-R10-Ext SeqOfGANSSTimeModel-R10-Ext OPTIONAL, -- If GANSSRefMeasurementAssist is included, GANSSRefMeasurementAssist-R10-Ext shall also be -- included. ganssRefMeasurementAssist-R10-Ext GANSSRefMeasurementAssist-R10-Ext OPTIONAL, -- If GANSSAlmanacModel is included, GANSSAlmanacModel-R10-Ext shall also be included. ganssAlmanacModel-R10-Ext GANSSAlmanacModel-R10-Ext 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 shall be present in this version of the protocol 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 Reference Time Rel-10 Extension: GANSSReferenceTime-R10-Ext ::= SEQUENCE { ganssDayCycleNumber INTEGER(0..7) -- 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) -- GANSS Time Model Rel-10 Extension: SeqOfGANSSTimeModel-R10-Ext ::= SEQUENCE (SIZE(1..7)) OF GANSSTimeModelElement-R10-Ext GANSSTimeModelElement-R10-Ext ::= SEQUENCE { gnssTOID INTEGER (0 .. 7), -- coding according to annex deltaT INTEGER (-128..127) } -- 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 Reference Measurement Rel-10 Extension: -- GANSSRefMeasurementAssist-R10-Ext shall contain the same number of elements as the -- SeqOfGANSSRefMeasurementElement included in GANSSRefMeasurementAssist IE GANSSRefMeasurementAssist-R10-Ext ::= SEQUENCE (SIZE(1 .. 16)) OF GANSSRefMeasurement-R10-Ext-Element GANSSRefMeasurement-R10-Ext-Element ::= SEQUENCE { svID SVID, azimuthLSB INTEGER(0..15), elevationLSB INTEGER(0..15) } -- 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 Almanac Model Rel-10 Extension GANSSAlmanacModel-R10-Ext ::= SEQUENCE { completeAlmanacProvided BOOLEAN -- TRUE means that complete Almanac is provided } -- 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, -- If ReferenceTime is included in ControlHeader, GPSReferenceTime-R10-Ext -- shall also be included. gpsReferenceTime-R10-Ext GPSReferenceTime-R10-Ext OPTIONAL, -- If AcquisAssist is included in ControlHeader, GPSAcquisAssist-R10-Ext -- shall also be included. gpsAcquisAssist-R10-Ext GPSAcquisAssist-R10-Ext OPTIONAL, -- If Almanac is included in ControlHeader, GPSAlmanac-R10-Ext -- shall also be included. gpsAlmanac-R10-Ext GPSAlmanac-R10-Ext 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 ... } -- GPS Reference Time Rel-10 Extension: GPSReferenceTime-R10-Ext ::= SEQUENCE { gpsWeekCycleNumber INTEGER(0..7) -- coding according to annex } -- GPS Acquisition Assistance Rel-10 Extension: -- GPSAcquisAssist-R10-Ext shall contain the same number of elements as the SeqOfAcquisElement -- included in AcquisAssist IE GPSAcquisAssist-R10-Ext ::= SEQUENCE(SIZE (1..16)) OF GPSAcquisAssist-R10-Ext-Element GPSAcquisAssist-R10-Ext-Element::= SEQUENCE { satelliteID SatelliteID, azimuthLSB INTEGER(0..15), elevationLSB INTEGER(0..15) } -- GPS Almanac Rel-10 Extension: GPSAlmanac-R10-Ext ::= SEQUENCE { completeAlmanacProvided BOOLEAN -- TRUE means that complete Almanac is provided } 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