diff options
Diffstat (limited to 'epan/dissectors/asn1/lpp/lpp.cnf')
-rw-r--r-- | epan/dissectors/asn1/lpp/lpp.cnf | 1809 |
1 files changed, 1809 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/lpp/lpp.cnf b/epan/dissectors/asn1/lpp/lpp.cnf new file mode 100644 index 0000000000..0f3cb1995d --- /dev/null +++ b/epan/dissectors/asn1/lpp/lpp.cnf @@ -0,0 +1,1809 @@ +# lpp.cnf +# lpp conformation file +# Copyright 2011-2016 Pascal Quantin + +#.OPT +PER +UNALIGNED +#.END + +#.EXPORTS +Ellipsoid-Point_PDU +EllipsoidPointWithAltitude_PDU +HorizontalVelocity_PDU +EllipsoidArc_PDU +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid_PDU +Ellipsoid-PointWithUncertaintyCircle_PDU +EllipsoidPointWithUncertaintyEllipse_PDU +Polygon_PDU +GNSS-ID +GNSS-SignalID +GNSS-SignalIDs +GNSS-SystemTime +SV-ID +ECID-SignalMeasurementInformation +CellGlobalIdGERAN +CellGlobalIdEUTRA-AndUTRA +OTDOA-ReferenceCellInfo +OTDOA-NeighbourCellInfoElement +ARFCN-ValueEUTRA +Ellipsoid-Point +EllipsoidPointWithAltitude +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid +NetworkTime +GNSS-ID-Bitmap +ARFCN-ValueUTRA +GNSS-ReferenceTime +LPP-Message +Ellipsoid-PointWithUncertaintyCircle +EllipsoidPointWithUncertaintyEllipse +EllipsoidArc +Polygon +#.END + +#.PDU +LPP-Message +Ellipsoid-Point +EllipsoidPointWithAltitude +HorizontalVelocity +EllipsoidArc +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid +Ellipsoid-PointWithUncertaintyCircle +EllipsoidPointWithUncertaintyEllipse +Polygon +#.END + +#.MAKE_ENUM +GNSS-ID/gnss-id TYPE_PREFIX UPPER_CASE + +#.FN_HDR RequestCapabilities + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities"); + +#.FN_HDR ProvideCapabilities + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities"); + +#.FN_HDR RequestAssistanceData + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data"); + +#.FN_HDR ProvideAssistanceData + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data"); + +#.FN_HDR RequestLocationInformation + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information"); + +#.FN_HDR ProvideLocationInformation + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information"); + +#.FN_HDR Abort + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort"); + +#.FN_HDR Error + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error"); + +#.FN_BODY EPDU-ID VAL_PTR = &lpp_epdu_id +%(DEFAULT_BODY)s + +#.TYPE_ATTR +EPDU-ID STRINGS=VALS(lpp_ePDU_ID_vals) + +#.FN_BODY EPDU-Body VAL_PTR=&lppe_tvb + tvbuff_t *lppe_tvb = NULL; +%(DEFAULT_BODY)s + switch(lpp_epdu_id){ + case 1: + if (lppe_tvb && lppe_handle) { + call_dissector(lppe_handle, lppe_tvb, actx->pinfo, tree); + } + break; + default: + break; + } + lpp_epdu_id = -1; + +#.FN_BODY AccessTypes/accessTypes VAL_PTR = &accessTypes_tvb LEN_PTR = &len + tvbuff_t *accessTypes_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(accessTypes_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_accessTypes_eutra, accessTypes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_accessTypes_utra, accessTypes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_accessTypes_gsm, accessTypes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +Ellipsoid-Point/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +Ellipsoid-Point/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.TYPE_ATTR +Ellipsoid-PointWithUncertaintyCircle/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +Ellipsoid-PointWithUncertaintyCircle/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.TYPE_ATTR +Ellipsoid-PointWithUncertaintyCircle/uncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +EllipsoidPointWithUncertaintyEllipse/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithUncertaintyEllipse/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithUncertaintyEllipse/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +EllipsoidPointWithUncertaintyEllipse/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +EllipsoidPointWithUncertaintyEllipse/orientationMajorAxis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt) + +#.TYPE_ATTR +EllipsoidPointWithUncertaintyEllipse/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitude/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitude/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitude/altitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_altitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/altitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_altitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/uncertaintySemiMajor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/uncertaintySemiMinor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/orientationMajorAxis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/uncertaintyAltitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertaintyAltitude_fmt) + +#.TYPE_ATTR +EllipsoidPointWithAltitudeAndUncertaintyEllipsoid/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt) + +#.TYPE_ATTR +EllipsoidArc/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +EllipsoidArc/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.TYPE_ATTR +EllipsoidArc/innerRadius DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_radius_fmt) + +#.TYPE_ATTR +EllipsoidArc/uncertaintyRadius DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +EllipsoidArc/offsetAngle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt) + +#.TYPE_ATTR +EllipsoidArc/includedAngle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_angle_fmt) + +#.TYPE_ATTR +EllipsoidArc/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt) + +#.FN_FTR HorizontalVelocity/bearing + proto_item_append_text(actx->created_item, " degrees"); + +#.FN_FTR HorizontalVelocity/horizontalSpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.FN_FTR HorizontalVelocityWithUncertainty/bearing + proto_item_append_text(actx->created_item, " degrees"); + +#.FN_FTR HorizontalVelocityWithUncertainty/horizontalSpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.FN_FTR HorizontalVelocityWithUncertainty/uncertaintySpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/bearing + proto_item_append_text(actx->created_item, " degrees"); + +#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/horizontalSpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/verticalSpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/horizontalUncertaintySpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.FN_FTR HorizontalWithVerticalVelocityAndUncertainty/verticalUncertaintySpeed + proto_item_append_text(actx->created_item, " km/h"); + +#.TYPE_ATTR +PolygonPoints/degreesLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLatitude_fmt) + +#.TYPE_ATTR +PolygonPoints/degreesLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_degreesLongitude_fmt) + +#.FN_BODY PositioningModes/posModes VAL_PTR = &posModes_tvb LEN_PTR = &len + tvbuff_t *posModes_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(posModes_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_posModes_standalone, posModes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_posModes_ue_based, posModes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_posModes_ue_assisted, posModes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY PeriodicalReportingCriteria/reportingInterval VAL_PTR=&idx + guint32 idx; + const gchar *interval[10] = {"", ": 1 s", ": 2 s", ": 4 s", ": 8 s", ": 10 s", + ": 16 s", ": 20 s", ": 32 s", ": 64 s"}; + +%(DEFAULT_BODY)s + +#.FN_FTR PeriodicalReportingCriteria/reportingInterval + if (idx < 10) { + proto_item_append_text(actx->created_item, "%s", interval[idx]); + } + +#.FN_BODY ReportingDuration VAL_PTR = &duration + guint32 duration; + +%(DEFAULT_BODY)s + proto_item_append_text(actx->created_item, " s"); + if (duration == 0) { + proto_item_append_text(actx->created_item, " (infinite)"); + } + +#.TYPE_ATTR +HorizontalAccuracy/accuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +HorizontalAccuracy/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt) + +#.TYPE_ATTR +VerticalAccuracy/accuracy DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_uncertainty_fmt) + +#.TYPE_ATTR +VerticalAccuracy/confidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_confidence_fmt) + +#.FN_FTR ResponseTime/time + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR ResponseTime/eag_1/responseTimeEarlyFix-r12 + proto_item_append_text(actx->created_item, " s"); + +#.FN_BODY LocationSource-r13 VAL_PTR = &locSource_tvb LEN_PTR = &len + tvbuff_t *locSource_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(locSource_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_a_gnss, locSource_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_wlan, locSource_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_bt, locSource_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_tbs, locSource_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 5) { + proto_tree_add_item(subtree, hf_lpp_LocationSource_r13_sensor, locSource_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +OTDOA-NeighbourCellInfoElement/expectedRSTD DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_expectedRSTD_fmt) + +#.TYPE_ATTR +OTDOA-NeighbourCellInfoElement/expectedRSTD-Uncertainty DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_expectedRSTD_Uncertainty_fmt) + +#.TYPE_ATTR +NeighbourMeasurementElement/rstd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rstd_fmt) + +#.FN_BODY OTDOA-MeasQuality/error-Resolution VAL_PTR = &error_Resolution_tvb HF_INDEX=-1 + tvbuff_t *error_Resolution_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR OTDOA-MeasQuality/error-Resolution + if (error_Resolution_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, error_Resolution_tvb, 0, 1, tvb_get_bits8(error_Resolution_tvb, 0, 2)); + } + +#.TYPE_ATTR +OTDOA-MeasQuality/error-Resolution TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_error_Resolution_vals) + +#.FN_BODY OTDOA-MeasQuality/error-Value VAL_PTR = &error_Value_tvb HF_INDEX=-1 + tvbuff_t *error_Value_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR OTDOA-MeasQuality/error-Value + if (error_Value_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, error_Value_tvb, 0, 1, tvb_get_bits8(error_Value_tvb, 0, 5)); + } + +#.TYPE_ATTR +OTDOA-MeasQuality/error-Value TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_error_Value_vals_ext + +#.FN_BODY OTDOA-MeasQuality/error-NumSamples VAL_PTR = &error_NumSamples_tvb HF_INDEX=-1 + tvbuff_t *error_NumSamples_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR OTDOA-MeasQuality/error-NumSamples + if (error_NumSamples_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, error_NumSamples_tvb, 0, 1, tvb_get_bits8(error_NumSamples_tvb, 0, 3)); + } + +#.TYPE_ATTR +OTDOA-MeasQuality/error-NumSamples TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_error_NumSamples_vals) + +#.FN_BODY OTDOA-ProvideCapabilities/otdoa-Mode VAL_PTR = &otdoa_Mode_tvb LEN_PTR = &len + tvbuff_t *otdoa_Mode_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(otdoa_Mode_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_otdoa_Mode_ue_assisted, otdoa_Mode_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +GNSS-ReferenceTime/referenceTimeUnc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt) + +#.TYPE_ATTR +GNSS-ReferenceTimeForOneCell/referenceTimeUnc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt) + +#.FN_BODY GNSS-SystemTime/notificationOfLeapSecond VAL_PTR = ¬ificationOfLeapSecond_tvb HF_INDEX=-1 + tvbuff_t *notificationOfLeapSecond_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR GNSS-SystemTime/notificationOfLeapSecond + if (notificationOfLeapSecond_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, notificationOfLeapSecond_tvb, 0, 1, tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2)); + } + +#.TYPE_ATTR +GNSS-SystemTime/notificationOfLeapSecond TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_kp_vals) + +#.TYPE_ATTR +NetworkTime/fractionalSecondsFromFrameStructureStart DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt) + +#.TYPE_ATTR +NetworkTime/frameDrift DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_frameDrift_fmt) + +#.FN_BODY KlobucharModelParameter/dataID VAL_PTR = &dataID_tvb HF_INDEX=-1 + tvbuff_t *dataID_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR KlobucharModelParameter/dataID + if (dataID_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, dataID_tvb, 0, 1, tvb_get_bits8(dataID_tvb, 0, 2)); + } + +#.TYPE_ATTR +KlobucharModelParameter/dataID TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_dataID_vals) + +#.TYPE_ATTR +KlobucharModelParameter/alfa0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha0_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/alfa1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha1_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/alfa2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha2_3_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/alfa3 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_alpha2_3_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/beta0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta0_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/beta1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta1_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/beta2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta2_3_fmt) + +#.TYPE_ATTR +KlobucharModelParameter/beta3 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_beta2_3_fmt) + +#.TYPE_ATTR +NeQuickModelParameter/ai0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ai0_fmt) + +#.TYPE_ATTR +NeQuickModelParameter/ai1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ai1_fmt) + +#.TYPE_ATTR +NeQuickModelParameter/ai2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ai2_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/teop DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_teop_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/pmX DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Y_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/pmXdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Ydot_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/pmY DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Y_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/pmYdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pmX_Ydot_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/deltaUT1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_deltaUT1_fmt) + +#.TYPE_ATTR +GNSS-EarthOrientationParameters/deltaUT1dot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_deltaUT1dot_fmt) + +#.TYPE_ATTR +GNSS-TimeModelElement/gnss-TimeModelRefTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_TimeModelRefTime_fmt) + +#.TYPE_ATTR +GNSS-TimeModelElement/tA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA0_fmt) + +#.TYPE_ATTR +GNSS-TimeModelElement/tA1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA1_fmt) + +#.TYPE_ATTR +GNSS-TimeModelElement/tA2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA2_fmt) + +#.TYPE_ATTR +GNSS-TimeModelElement/gnss-TO-ID STRINGS=VALS(lpp_gnss_TO_ID_vals) + +#.FN_FTR GNSS-TimeModelElement/deltaT + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR GNSS-DifferentialCorrections/dgnss-RefTime + proto_item_append_text(actx->created_item, " s"); + +#.TYPE_ATTR +DGNSS-SgnTypeElement/gnss-StatusHealth STRINGS=VALS(lpp_gnss_StatusHealth_vals) + +#.TYPE_ATTR +DGNSS-CorrectionsElement/udre STRINGS=VALS(lpp_udre_vals) + +#.TYPE_ATTR +DGNSS-CorrectionsElement/pseudoRangeCor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_pseudoRangeCor_fmt) + +#.TYPE_ATTR +DGNSS-CorrectionsElement/rangeRateCor DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rangeRateCor_fmt) + +#.TYPE_ATTR +DGNSS-CorrectionsElement/udreGrowthRate STRINGS=VALS(lpp_udreGrowthRate_vals) + +#.TYPE_ATTR +DGNSS-CorrectionsElement/udreValidityTime STRINGS=VALS(lpp_udreValidityTime_vals) + +#.FN_BODY GNSS-NavModelSatelliteElement/eag_1/svHealthExt-v1240 VAL_PTR = &svHealthExt_tvb + tvbuff_t *svHealthExt_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + +#.FN_FTR GNSS-NavModelSatelliteElement/eag_1/svHealthExt-v1240 + if (svHealthExt_tvb) { + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_svHealthExt_v1240); + proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e5bhs, svHealthExt_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e1_bhs, svHealthExt_tvb, 2, 2, ENC_BIG_ENDIAN); + } + +#.TYPE_ATTR +StandardClockModelElement/stanClockToc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockToc_fmt) + +#.TYPE_ATTR +StandardClockModelElement/stanClockAF2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockAF2_fmt) + +#.TYPE_ATTR +StandardClockModelElement/stanClockAF1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockAF1_fmt) + +#.TYPE_ATTR +StandardClockModelElement/stanClockAF0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockAF0_fmt) + +#.TYPE_ATTR +StandardClockModelElement/stanClockTgd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_stanClockTgd_fmt) + +#.TYPE_ATTR +StandardClockModelElement/sisa DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sisa_fmt) + +#.TYPE_ATTR +StandardClockModelElement/stanModelID STRINGS=VALS(lpp_stanModelID_vals) + +#.TYPE_ATTR +NAV-ClockModel/navToc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navToc_fmt) + +#.TYPE_ATTR +NAV-ClockModel/navaf2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf2_fmt) + +#.TYPE_ATTR +NAV-ClockModel/navaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf1_fmt) + +#.TYPE_ATTR +NAV-ClockModel/navaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf0_navTgd_fmt) + +#.TYPE_ATTR +NAV-ClockModel/navTgd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navaf0_navTgd_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavToc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavToc_cnavTop_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavTop DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavToc_cnavTop_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavAf2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavAf2_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavAf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavAf1_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavAf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavTgd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavISCl1cp DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavISCl1cd DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavISCl1ca DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavISCl2c DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavISCl5i5 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +CNAV-ClockModel/cnavISCl5q5 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavX_fmt) + +#.TYPE_ATTR +GLONASS-ClockModel/gloTau DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloTau_gloDeltaTau_fmt) + +#.TYPE_ATTR +GLONASS-ClockModel/gloGamma DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloGamma_fmt) + +#.TYPE_ATTR +GLONASS-ClockModel/gloDeltaTau DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloTau_gloDeltaTau_fmt) + +#.TYPE_ATTR +SBAS-ClockModel/sbasTo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasTo_fmt) + +#.TYPE_ATTR +SBAS-ClockModel/sbasAgfo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAgfo_fmt) + +#.TYPE_ATTR +SBAS-ClockModel/sbasAgf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAgf1_fmt) + +#.TYPE_ATTR +BDS-ClockModel-r12/bdsAODC-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAODC_AODE_r12_fmt) + +#.TYPE_ATTR +BDS-ClockModel-r12/bdsToc-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsToc_Toe_r12_fmt) + +#.TYPE_ATTR +BDS-ClockModel-r12/bdsA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsA0_r12_fmt) + +#.TYPE_ATTR +BDS-ClockModel-r12/bdsA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsA1_r12_fmt) + +#.TYPE_ATTR +BDS-ClockModel-r12/bdsA2-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsA2_r12_fmt) + +#.TYPE_ATTR +BDS-ClockModel-r12/bdsTgd1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsTgd1_r12_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerToe DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerToe_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerW DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerDeltaN DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerM0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerE_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerIDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerDeltaN_OmegaDot_IDot_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerAPowerHalf DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerAPowerHalf_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerI0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerW_M0_I0_Omega0_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerCrs DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCrs_Crc_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerCis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerCrc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCrs_Crc_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerCic DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt) + +#.TYPE_ATTR +NavModelKeplerianSet/keplerCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_keplerCx_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navToe DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navToe_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navOmega DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navDeltaN DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navM0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navOmegaADot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navE_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navIDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navDeltaN_OmegaADot_IDot_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navAPowerHalf DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAPowerHalf_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navI0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navOmegaA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navOmega_M0_I0_OmegaA0_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navCrs DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCrs_Crc_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navCis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navCrc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCrs_Crc_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navCic DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt) + +#.TYPE_ATTR +NavModelNAV-KeplerianSet/navCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navCx_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavTop DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavToc_cnavTop_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavDeltaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaA_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavAdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavAdot_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavDeltaNo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaNo_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavDeltaNoDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaNoDot_fmt) + +#.FN_BODY NavModelCNAV-KeplerianSet/cnavMo VAL_PTR=&cnavMo + gint64 cnavMo; + int curr_offset = offset; +%(DEFAULT_BODY)s + +#.FN_FTR NavModelCNAV-KeplerianSet/cnavMo + PROTO_ITEM_SET_HIDDEN(actx->created_item); + actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3, + cnavMo, "%g semi-circles (%"G_GINT64_MODIFIER"d)", + (double)cnavMo*pow(2, -32), cnavMo); + +#.FN_BODY NavModelCNAV-KeplerianSet/cnavE VAL_PTR=&cnavE + guint64 cnavE; + int curr_offset = offset; +%(DEFAULT_BODY)s + +#.FN_FTR NavModelCNAV-KeplerianSet/cnavE + PROTO_ITEM_SET_HIDDEN(actx->created_item); + actx->created_item = proto_tree_add_uint64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3, + cnavE, "%g (%"G_GINT64_MODIFIER"u)", + (double)cnavE*pow(2, -34), cnavE); + +#.FN_BODY NavModelCNAV-KeplerianSet/cnavOmega VAL_PTR=&cnavOmega + gint64 cnavOmega; + int curr_offset = offset; +%(DEFAULT_BODY)s + +#.FN_FTR NavModelCNAV-KeplerianSet/cnavOmega + PROTO_ITEM_SET_HIDDEN(actx->created_item); + actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3, + cnavOmega, "%g semi-circles (%"G_GINT64_MODIFIER"d)", + (double)cnavOmega*pow(2, -32), cnavOmega); + +#.FN_BODY NavModelCNAV-KeplerianSet/cnavOMEGA0 VAL_PTR=&cnavOMEGA0 + gint64 cnavOMEGA0; + int curr_offset = offset; +%(DEFAULT_BODY)s + +#.FN_FTR NavModelCNAV-KeplerianSet/cnavOMEGA0 + PROTO_ITEM_SET_HIDDEN(actx->created_item); + actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3, + cnavOMEGA0, "%g semi-circles (%"G_GINT64_MODIFIER"d)", + (double)cnavOMEGA0*pow(2, -32), cnavOMEGA0); + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavDeltaOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaOmegaDot_IoDot_fmt) + +#.FN_BODY NavModelCNAV-KeplerianSet/cnavIo VAL_PTR=&cnavIo + gint64 cnavIo; + int curr_offset = offset; +%(DEFAULT_BODY)s + +#.FN_FTR NavModelCNAV-KeplerianSet/cnavIo + PROTO_ITEM_SET_HIDDEN(actx->created_item); + actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3, + cnavIo, "%g semi-circles (%"G_GINT64_MODIFIER"d)", + (double)cnavIo*pow(2, -32), cnavIo); + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavIoDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavDeltaOmegaDot_IoDot_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavCis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavCic DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavCrs DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCrs_Crc_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavCrc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCrs_Crc_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavCus DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt) + +#.TYPE_ATTR +NavModelCNAV-KeplerianSet/cnavCuc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_cnavCx_fmt) + +#.FN_FTR NavModel-GLONASS-ECEF/gloEn + proto_item_append_text(actx->created_item, " days"); + +#.FN_BODY NavModel-GLONASS-ECEF/gloP1 VAL_PTR = &gloP1_tvb HF_INDEX=-1 + tvbuff_t *gloP1_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR NavModel-GLONASS-ECEF/gloP1 + if (gloP1_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, gloP1_tvb, 0, 1, tvb_get_bits8(gloP1_tvb, 0, 2)); + proto_item_append_text(actx->created_item, " mn"); + } + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloX DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloXdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloXdotdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloY DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloYdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloYdotdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloZ DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloX_Y_Z_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloZdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdot_Ydot_Zdot_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloZdotdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloXdotdot_Ydotdot_Zdotdot_fmt) + +#.TYPE_ATTR +NavModel-GLONASS-ECEF/gloP1 TYPE=FT_UINT8 DISPLAY=BASE_DEC + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasTo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasTo_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasXg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXg_Yg_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasYg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXg_Yg_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasZg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZg_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasXgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDot_YgDot_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasYgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDot_YgDot_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasZgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZgDot_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasXgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDotDot_YgDotDot_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasYgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasXgDotDot_YgDotDot_fmt) + +#.TYPE_ATTR +NavModel-SBAS-ECEF/sbasZgDotDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasZgDotDot_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsAODE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAODC_AODE_r12_fmt) + +#.FN_FTR NavModel-BDS-KeplerianSet-r12/bdsURAI-r12 + proto_item_append_text(actx->created_item, " m"); + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsToe-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsToc_Toe_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsAPowerHalf-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAPowerHalf_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsE_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsW-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsDeltaN-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsM0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsOmega0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsOmegaDot-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsI0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsW_M0_Omega0_I0_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsIDot-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsDeltaN_OmegaDot_IDot_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsCuc-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsCus-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsCrc-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCrc_Crs_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsCrs-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCrc_Crs_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsCic-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt) + +#.TYPE_ATTR +NavModel-BDS-KeplerianSet-r12/bdsCis-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsCuc_Cus_Cic_Cis_r12_fmt) + +#.FN_FTR GNSS-DataBitAssistance/gnss-TOD + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR GNSS-DataBitAssistance/gnss-TODfrac + proto_item_append_text(actx->created_item, " ms"); + +#.FN_FTR GNSS-AcquisitionAssistance/confidence-r10 + proto_item_append_text(actx->created_item, " %%"); + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/doppler0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_doppler0_fmt) + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/doppler1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_doppler1_fmt) + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/dopplerUncertainty STRINGS=VALS(lpp_dopplerUncertainty_vals) + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/codePhase DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhase_fmt) + +#.FN_FTR GNSS-AcquisitionAssistElement/intCodePhase + proto_item_append_text(actx->created_item, " ms"); + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/codePhaseSearchWindow DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_codePhaseSearchWindow_vals_ext + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/azimuth DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_azimuth_elevation_fmt) + +#.TYPE_ATTR +GNSS-AcquisitionAssistElement/elevation DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_azimuth_elevation_fmt) + +#.FN_BODY GNSS-Almanac/toa VAL_PTR = &toa + guint32 toa, val; + int len, old_offset = offset; + T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data); +%(DEFAULT_BODY)s + +#.FN_FTR GNSS-Almanac/toa + len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1; + val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa : 4096*toa; + actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa, tvb, old_offset, len, + toa, "%u s (%u)", val, toa); + +#.FN_BODY GNSS-Almanac/eag_1/toa-ext-v1240 VAL_PTR = &toa_ext + guint32 toa_ext, val; + int len, old_offset = offset; + T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data); +%(DEFAULT_BODY)s + +#.FN_FTR GNSS-Almanac/eag_1/toa-ext-v1240 + len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1; + val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa_ext : 4096*toa_ext; + actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa_ext_v1240, tvb, old_offset, len, + toa_ext, "%u s (%u)", val, toa_ext); + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacE_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacDeltaI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacDeltaI_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmegaDot_fmt) + +#.FN_BODY AlmanacKeplerianSet/kepSV-StatusINAV VAL_PTR = &statusINAV_tvb + tvbuff_t *statusINAV_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + +#.FN_FTR AlmanacKeplerianSet/kepSV-StatusINAV + if (statusINAV_tvb) { + subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusINAV); + proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e5bhs, statusINAV_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e1_bhs, statusINAV_tvb, 2, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY AlmanacKeplerianSet/kepSV-StatusFNAV VAL_PTR = &statusFNAV_tvb + tvbuff_t *statusFNAV_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + +#.FN_FTR AlmanacKeplerianSet/kepSV-StatusFNAV + if (statusFNAV_tvb) { + subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusFNAV); + proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusFNAV_e5ahs, statusFNAV_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacAPowerHalf DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacAPowerHalf_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacW DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacM0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacOmega0_W_M0_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacAF0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacAF0_fmt) + +#.TYPE_ATTR +AlmanacKeplerianSet/kepAlmanacAF1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_kepAlmanacAF1_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmE_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmDeltaI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmDeltaI_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmOMEGADOT DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGADOT_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmSqrtA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmSqrtA_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmOMEGAo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmOmega DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmMo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmOMEGAo_Omega_Mo_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmaf0_fmt) + +#.TYPE_ATTR +AlmanacNAV-KeplerianSet/navAlmaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_navAlmaf1_fmt) + +#.TYPE_ATTR +AlmanacReducedKeplerianSet/redAlmDeltaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_redAlmDeltaA_fmt) + +#.TYPE_ATTR +AlmanacReducedKeplerianSet/redAlmOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_redAlmOmega0_Phi0_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmE DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmE_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmDeltaI DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmDeltaI_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmOmegaDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmegaDot_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmSqrtA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmSqrtA_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmOmega0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmOmega DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmMo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmOmega0_Omega_Mo_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmaf0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmaf0_fmt) + +#.TYPE_ATTR +AlmanacMidiAlmanacSet/midiAlmaf1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_midiAlmaf1_fmt) + +#.FN_FTR AlmanacGLONASS-AlmanacSet/gloAlm-NA + proto_item_append_text(actx->created_item, " days"); + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmLambdaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmtlambdaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmtlambdaA_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmDeltaIa DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmLambdaA_DeltaIa_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmDeltaTA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmDeltaTA_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmDeltaTdotA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmDeltaTdotA_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmEpsilonA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmEpsilonA_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmOmegaA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmOmegaA_fmt) + +#.TYPE_ATTR +AlmanacGLONASS-AlmanacSet/gloAlmTauA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gloAlmTauA_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmXg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXg_Yg_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmYg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXg_Yg_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmZg DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmZg_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmXgdot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXgdot_YgDot_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmYgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmXgdot_YgDot_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmZgDot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmZgDot_fmt) + +#.TYPE_ATTR +AlmanacECEF-SBAS-AlmanacSet/sbasAlmTo DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_sbasAlmTo_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmToa-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmToa_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmSqrtA-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmSqrtA_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmE-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmE_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmW-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmM0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmOmega0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmW_M0_Omega0_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmOmegaDot-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmOmegaDot_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmDeltaI-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmDeltaI_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmA0_r12_fmt) + +#.TYPE_ATTR +AlmanacBDS-AlmanacSet-r12/bdsAlmA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bdsAlmA1_r12_fmt) + +#.FN_BODY AlmanacBDS-AlmanacSet-r12/bdsSvHealth-r12 VAL_PTR = &bdsSvHealth_tvb + tvbuff_t *bdsSvHealth_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + +#.FN_FTR AlmanacBDS-AlmanacSet-r12/bdsSvHealth-r12 + if (bdsSvHealth_tvb) { + guint16 bits; + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bdsSvHealth_r12); + bits = tvb_get_bits16(bdsSvHealth_tvb, 0, 9,ENC_BIG_ENDIAN); + if (bits == 0x1ff) { + proto_tree_add_boolean_bits_format_value(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, 1, + "Satellite is in failure or permanently shut off (1)"); + } else if (bits == 0x100) { + proto_tree_add_boolean_bits_format_value(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, 1, + "Satellite clock is unavailable (1)"); + } else { + proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_sat_clock, bdsSvHealth_tvb, 0, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_b1i, bdsSvHealth_tvb, 1, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_b2i, bdsSvHealth_tvb, 2, 1, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(subtree, hf_lpp_bdsSvHealth_r12_nav, bdsSvHealth_tvb, 7, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +UTC-ModelSet1/gnss-Utc-A1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt) + +#.TYPE_ATTR +UTC-ModelSet1/gnss-Utc-A0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt) + +#.TYPE_ATTR +UTC-ModelSet1/gnss-Utc-Tot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_Tot_fmt) + +#.FN_FTR UTC-ModelSet1/gnss-Utc-WNt + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet1/gnss-Utc-DeltaTls + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR UTC-ModelSet1/gnss-Utc-WNlsf + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet1/gnss-Utc-DN + proto_item_append_text(actx->created_item, " days"); + +#.FN_FTR UTC-ModelSet1/gnss-Utc-DeltaTlsf + proto_item_append_text(actx->created_item, " s"); + +#.TYPE_ATTR +UTC-ModelSet2/utcA0 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA0_fmt) + +#.TYPE_ATTR +UTC-ModelSet2/utcA1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA1_fmt) + +#.TYPE_ATTR +UTC-ModelSet2/utcA2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tA2_fmt) + +#.FN_FTR UTC-ModelSet2/utcDeltaTls + proto_item_append_text(actx->created_item, " s"); + +#.TYPE_ATTR +UTC-ModelSet2/utcTot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_TimeModelRefTime_fmt) + +#.FN_FTR UTC-ModelSet2/utcWNot + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet2/utcWNlsf + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet2/utcDN + proto_item_append_text(actx->created_item, " days"); + +#.FN_FTR UTC-ModelSet2/utcDeltaTlsf + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR UTC-ModelSet3/nA + proto_item_append_text(actx->created_item, " days"); + +#.TYPE_ATTR +UTC-ModelSet3/tauC DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_tauC_fmt) + +#.TYPE_ATTR +UTC-ModelSet3/b1 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_b1_fmt) + +#.TYPE_ATTR +UTC-ModelSet3/b2 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_b2_fmt) + +#.FN_BODY UTC-ModelSet3/kp VAL_PTR = &kp_tvb HF_INDEX=-1 + tvbuff_t *kp_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR UTC-ModelSet3/kp + if (kp_tvb) { + actx->created_item = proto_tree_add_uint(tree, hf_index, kp_tvb, 0, 1, tvb_get_bits8(kp_tvb, 0, 2)); + } + +#.TYPE_ATTR +UTC-ModelSet3/kp TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_kp_vals) + +#.TYPE_ATTR +UTC-ModelSet4/utcA1wnt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt) + +#.TYPE_ATTR +UTC-ModelSet4/utcA0wnt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt) + +#.TYPE_ATTR +UTC-ModelSet4/utcTot DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_Tot_fmt) + +#.FN_FTR UTC-ModelSet4/utcWNt + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet4/utcDeltaTls + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR UTC-ModelSet4/utcWNlsf + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet4/utcDN + proto_item_append_text(actx->created_item, " days"); + +#.FN_FTR UTC-ModelSet4/utcDeltaTlsf + proto_item_append_text(actx->created_item, " s"); + +#.TYPE_ATTR +UTC-ModelSet4/utcStandardID TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_utcStandardID_vals) + +#.TYPE_ATTR +UTC-ModelSet5-r12/utcA0-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A0_fmt) + +#.TYPE_ATTR +UTC-ModelSet5-r12/utcA1-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_gnss_Utc_A1_fmt) + +#.FN_FTR UTC-ModelSet5-r12/utcDeltaTls-r12 + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR UTC-ModelSet5-r12/utcWNlsf-r12 + proto_item_append_text(actx->created_item, " weeks"); + +#.FN_FTR UTC-ModelSet5-r12/utcDN-r12 + proto_item_append_text(actx->created_item, " days"); + +#.FN_FTR UTC-ModelSet5-r12/utcDeltaTlsf-r12 + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR BDS-DifferentialCorrections-r12/dbds-RefTime-r12 + proto_item_append_text(actx->created_item, " s"); + +#.TYPE_ATTR +DBDS-CorrectionElement-r12/bds-UDREI-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_UDREI_vals_ext + +#.TYPE_ATTR +DBDS-CorrectionElement-r12/bds-RURAI-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_RURAI_vals_ext + +#.TYPE_ATTR +DBDS-CorrectionElement-r12/bds-ECC-DeltaT-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_ECC_DeltaT_r12_fmt) + +#.FN_FTR BDS-GridModelParameter-r12/bds-RefTime-r12 + proto_item_append_text(actx->created_item, " s"); + +#.TYPE_ATTR +GridIonElement-r12/dt-r12 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_bds_GridIonElement_dt_r12_fmt) + +#.TYPE_ATTR +GridIonElement-r12/givei-r12 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_bds_givei_vals_ext + +#.FN_FTR StoredNavListInfo/gnss-WeekOrDay + proto_item_append_text(actx->created_item, " (days for glonass, weeks otherwise)"); + +#.FN_FTR StoredNavListInfo/gnss-Toe + proto_item_append_text(actx->created_item, " (units of 15 mns for glonass, hours otherwise)"); + +#.FN_FTR StoredNavListInfo/t-toeLimit + proto_item_append_text(actx->created_item, " (units of 30 mns for glonass, hours otherwise)"); + +#.FN_FTR GNSS-DataBitAssistanceReq/gnss-TOD-Req + proto_item_append_text(actx->created_item, " s"); + +#.FN_FTR GNSS-DataBitAssistanceReq/gnss-TOD-FracReq + proto_item_append_text(actx->created_item, " ms"); + +#.TYPE_ATTR +GNSS-DataBitAssistanceReq/dataBitInterval TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=&lpp_dataBitInterval_vals_ext + +#.FN_FTR MeasurementReferenceTime/gnss-TOD-msec + proto_item_append_text(actx->created_item, " ms"); + +#.TYPE_ATTR +MeasurementReferenceTime/gnss-TOD-frac DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_fractionalSecondsFromFrameStructureStart_fmt) + +#.TYPE_ATTR +MeasurementReferenceTime/gnss-TOD-unc DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referenceTimeUnc_fmt) + +#.FN_FTR MeasurementReferenceTime/networkTime/gSM/deltaGNSS-TOD + proto_item_append_text(actx->created_item, " ms"); + +#.FN_FTR GNSS-SgnMeasElement/gnss-CodePhaseAmbiguity + proto_item_append_text(actx->created_item, " ms"); + +#.FN_FTR GNSS-SatMeasElement/cNo + proto_item_append_text(actx->created_item, " dB-Hz"); + +#.TYPE_ATTR +GNSS-SatMeasElement/carrierQualityInd TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lpp_carrierQualityInd_vals) + +#.TYPE_ATTR +GNSS-SatMeasElement/codePhase DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_GNSS_SatMeas_codePhase_fmt) + +#.FN_FTR GNSS-SatMeasElement/integerCodePhase + proto_item_append_text(actx->created_item, " ms"); + +#.TYPE_ATTR +GNSS-SatMeasElement/codePhaseRMSError DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhaseRMSError_fmt) + +#.TYPE_ATTR +GNSS-SatMeasElement/doppler DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_doppler_fmt) + +#.TYPE_ATTR +GNSS-SatMeasElement/adr DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_adr_fmt) + +#.FN_BODY GNSS-IonosphericModelSupport/ionoModel VAL_PTR = &ionoModel_tvb LEN_PTR = &len + tvbuff_t *ionoModel_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(ionoModel_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_ionoModel_klobuchar, ionoModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_ionoModel_neQuick, ionoModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY GNSS-NavigationModelSupport/clockModel VAL_PTR = &clockModel_tvb LEN_PTR = &len + tvbuff_t *clockModel_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(clockModel_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_1, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_2, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_3, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_4, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 5) { + proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_5, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 6) { + proto_tree_add_item(subtree, hf_lpp_T_clockModel_model_6, clockModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY GNSS-NavigationModelSupport/orbitModel VAL_PTR = &orbitModel_tvb LEN_PTR = &len + tvbuff_t *orbitModel_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(orbitModel_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_1, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_2, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_3, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_4, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 5) { + proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_5, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 6) { + proto_tree_add_item(subtree, hf_lpp_T_orbitModel_model_6, orbitModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY GNSS-AlmanacSupport/almanacModel VAL_PTR = &almanacModel_tvb LEN_PTR = &len + tvbuff_t *almanacModel_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(almanacModel_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_1, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_2, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_3, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_4, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 5) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_5, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 6) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_6, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 7) { + proto_tree_add_item(subtree, hf_lpp_T_almanacModel_model_7, almanacModel_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY GNSS-UTC-ModelSupport/utc-Model VAL_PTR = &utc_Model_tvb LEN_PTR = &len + tvbuff_t *utc_Model_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(utc_Model_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_1, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_2, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_3, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_4, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 5) { + proto_tree_add_item(subtree, hf_lpp_T_utc_Model_model_5, utc_Model_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY GNSS-ID/gnss-id VAL_PTR = &gnss_id + guint32 gnss_id; +%(DEFAULT_BODY)s + actx->private_data = GUINT_TO_POINTER(gnss_id); + +#.FN_BODY GNSS-ID-Bitmap/gnss-ids VAL_PTR = &gnss_ids_tvb LEN_PTR = &len + tvbuff_t *gnss_ids_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(gnss_ids_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_gps, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_sbas, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_qzss, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_galileo, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 5) { + proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_glonass, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 6) { + proto_tree_add_item(subtree, hf_lpp_T_gnss_ids_bds, gnss_ids_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY SBAS-IDs/sbas-IDs VAL_PTR = &sbas_IDs_tvb LEN_PTR = &len + tvbuff_t *sbas_IDs_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(sbas_IDs_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_waas, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_egnos, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_msas, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 4) { + proto_tree_add_item(subtree, hf_lpp_T_sbas_IDs_gagan, sbas_IDs_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +MeasuredResultsElement/rsrp-Result DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rsrp_Result_fmt) + +#.TYPE_ATTR +MeasuredResultsElement/rsrq-Result DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_rsrq_Result_fmt) + +#.TYPE_ATTR +MeasuredResultsElement/ue-RxTxTimeDiff DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_ue_RxTxTimeDiff_fmt) + +#.FN_BODY ECID-RequestLocationInformation/requestedMeasurements VAL_PTR = &requestedMeasurements_tvb LEN_PTR = &len + tvbuff_t *requestedMeasurements_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(requestedMeasurements_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_rsrpReq, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_rsrqReq, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_ueRxTxReq, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY ECID-ProvideCapabilities/ecid-MeasSupported VAL_PTR = &ecid_MeasSupported_tvb LEN_PTR = &len + tvbuff_t *ecid_MeasSupported_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(ecid_MeasSupported_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_ecid_MeasSupported_rsrpSup, ecid_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_ecid_MeasSupported_rsrqSup, ecid_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_ecid_MeasSupported_ueRxTxSup, ecid_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +MBS-BeaconMeasElement-r13/codePhase-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_mbs_beaconMeasElt_codePhase_fmt) + +#.TYPE_ATTR +MBS-BeaconMeasElement-r13/codePhaseRMSError-r13 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_codePhaseRMSError_fmt) + +#.FN_BODY TBS-ProvideCapabilities-r13/tbs-Modes-r13 VAL_PTR = &tbs_Modes_tvb LEN_PTR = &len + tvbuff_t *tbs_Modes_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(tbs_Modes_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_tbs_Modes_r13_standalone, tbs_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_tbs_Modes_r13_ue_assisted, tbs_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_FTR Sensor-MeasurementList-r13/uncompensatedBarometricPressure-r13 + proto_item_append_text(actx->created_item, " Pa"); + +#.FN_BODY Sensor-ProvideCapabilities-r13/sensor-Modes-r13 VAL_PTR = &sensor_Modes_tvb LEN_PTR = &len + tvbuff_t *sensor_Modes_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(sensor_Modes_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_sensor_Modes_r13_standalone, sensor_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_sensor_Modes_r13_ue_assisted, sensor_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_FTR WLAN-MeasurementElement-r13/rssi-r13 + proto_item_append_text(actx->created_item, " dBm"); + +#.TYPE_ATTR +WLAN-AP-Identifier-r13/bssid-r13 TYPE=FT_ETHER + +#.TYPE_ATTR +WLAN-AP-Identifier-r13/ssid-r13 TYPE=FT_STRING DISPLAY=STR_ASCII + +#.FN_BODY WLAN-AP-Identifier-r13/ssid-r13 VAL_PTR=&ssid_tvb HF_INDEX=-1 + tvbuff_t *ssid_tvb = NULL; + +%(DEFAULT_BODY)s + actx->created_item = proto_tree_add_item(tree, hf_index, ssid_tvb, 0, -1, ENC_ASCII|ENC_NA); + +#.FN_BODY WLAN-RequestLocationInformation-r13/requestedMeasurements-r13 VAL_PTR = &requestedMeasurements_tvb LEN_PTR = &len + tvbuff_t *requestedMeasurements_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(requestedMeasurements_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_r13_rssi, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_r13_rtt, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY WLAN-ProvideCapabilities-r13/wlan-Modes-r13 VAL_PTR = &wlan_Modes_tvb LEN_PTR = &len + tvbuff_t *wlan_Modes_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(wlan_Modes_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_wlan_Modes_r13_standalone, wlan_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_wlan_Modes_r13_ue_assisted, wlan_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY WLAN-ProvideCapabilities-r13/wlan-MeasSupported-r13 VAL_PTR = &wlan_MeasSupported_tvb LEN_PTR = &len + tvbuff_t *wlan_MeasSupported_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(wlan_MeasSupported_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_wlan_MeasSupported_r13_rssi_r13, wlan_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 2) { + proto_tree_add_item(subtree, hf_lpp_T_wlan_MeasSupported_r13_rtt_r13, wlan_MeasSupported_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.TYPE_ATTR +BT-MeasurementElement-r13/btAddr-r13 TYPE=FT_ETHER DISPLAY=BASE_NONE + +#.FN_BODY BT-MeasurementElement-r13/btAddr-r13 VAL_PTR=&btAddr_tvb HF_INDEX=-1 + tvbuff_t *btAddr_tvb = NULL; + +%(DEFAULT_BODY)s + actx->created_item = proto_tree_add_item(tree, hf_index, btAddr_tvb, 0, 6, ENC_NA); + +#.FN_FTR BT-MeasurementElement-r13/rssi-r13 + proto_item_append_text(actx->created_item, " dBm"); + +#.FN_BODY BT-RequestLocationInformation-r13/requestedMeasurements-r13 VAL_PTR = &requestedMeasurements_tvb LEN_PTR = &len + tvbuff_t *requestedMeasurements_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(requestedMeasurements_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_requestedMeasurements_r13_01_rssi, requestedMeasurements_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } + +#.FN_BODY BT-ProvideCapabilities-r13/bt-Modes-r13 VAL_PTR = &bt_Modes_tvb LEN_PTR = &len + tvbuff_t *bt_Modes_tvb = NULL; + int len; + +%(DEFAULT_BODY)s + if(bt_Modes_tvb){ + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bitmap); + if (len >= 1) { + proto_tree_add_item(subtree, hf_lpp_T_bt_Modes_r13_standalone, bt_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + if (len >= 3) { + proto_tree_add_item(subtree, hf_lpp_T_bt_Modes_r13_ue_assisted, bt_Modes_tvb, 0, 1, ENC_BIG_ENDIAN); + } + } |