2 * Generated by asn1c-0.9.23 (http://lionet.info/asn1c)
3 * From ASN.1 module "RRLP-Components"
4 * found in "../asn1src/RRLP-Components.asn"
5 * `asn1c -gen-PER -fskeletons-copy -fnative-types`
8 #include "NavModel-SBASecef.h"
11 memb_sbasTo_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
12 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
16 _ASN_CTFAIL(app_key
, td
, sptr
,
17 "%s: value not given (%s:%d)",
18 td
->name
, __FILE__
, __LINE__
);
22 value
= *(const long *)sptr
;
24 if((value
>= 0 && value
<= 5399)) {
25 /* Constraint check succeeded */
28 _ASN_CTFAIL(app_key
, td
, sptr
,
29 "%s: constraint failed (%s:%d)",
30 td
->name
, __FILE__
, __LINE__
);
36 memb_sbasAccuracy_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
37 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
38 const BIT_STRING_t
*st
= (const BIT_STRING_t
*)sptr
;
42 _ASN_CTFAIL(app_key
, td
, sptr
,
43 "%s: value not given (%s:%d)",
44 td
->name
, __FILE__
, __LINE__
);
50 size
= 8 * st
->size
- (st
->bits_unused
& 0x07);
56 /* Constraint check succeeded */
59 _ASN_CTFAIL(app_key
, td
, sptr
,
60 "%s: constraint failed (%s:%d)",
61 td
->name
, __FILE__
, __LINE__
);
67 memb_sbasXg_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
68 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
72 _ASN_CTFAIL(app_key
, td
, sptr
,
73 "%s: value not given (%s:%d)",
74 td
->name
, __FILE__
, __LINE__
);
78 value
= *(const long *)sptr
;
80 if((value
>= -536870912 && value
<= 536870911)) {
81 /* Constraint check succeeded */
84 _ASN_CTFAIL(app_key
, td
, sptr
,
85 "%s: constraint failed (%s:%d)",
86 td
->name
, __FILE__
, __LINE__
);
92 memb_sbasYg_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
93 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
97 _ASN_CTFAIL(app_key
, td
, sptr
,
98 "%s: value not given (%s:%d)",
99 td
->name
, __FILE__
, __LINE__
);
103 value
= *(const long *)sptr
;
105 if((value
>= -536870912 && value
<= 536870911)) {
106 /* Constraint check succeeded */
109 _ASN_CTFAIL(app_key
, td
, sptr
,
110 "%s: constraint failed (%s:%d)",
111 td
->name
, __FILE__
, __LINE__
);
117 memb_sbasZg_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
118 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
122 _ASN_CTFAIL(app_key
, td
, sptr
,
123 "%s: value not given (%s:%d)",
124 td
->name
, __FILE__
, __LINE__
);
128 value
= *(const long *)sptr
;
130 if((value
>= -16777216 && value
<= 16777215)) {
131 /* Constraint check succeeded */
134 _ASN_CTFAIL(app_key
, td
, sptr
,
135 "%s: constraint failed (%s:%d)",
136 td
->name
, __FILE__
, __LINE__
);
142 memb_sbasXgDot_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
143 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
147 _ASN_CTFAIL(app_key
, td
, sptr
,
148 "%s: value not given (%s:%d)",
149 td
->name
, __FILE__
, __LINE__
);
153 value
= *(const long *)sptr
;
155 if((value
>= -65536 && value
<= 65535)) {
156 /* Constraint check succeeded */
159 _ASN_CTFAIL(app_key
, td
, sptr
,
160 "%s: constraint failed (%s:%d)",
161 td
->name
, __FILE__
, __LINE__
);
167 memb_sbasYgDot_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
168 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
172 _ASN_CTFAIL(app_key
, td
, sptr
,
173 "%s: value not given (%s:%d)",
174 td
->name
, __FILE__
, __LINE__
);
178 value
= *(const long *)sptr
;
180 if((value
>= -65536 && value
<= 65535)) {
181 /* Constraint check succeeded */
184 _ASN_CTFAIL(app_key
, td
, sptr
,
185 "%s: constraint failed (%s:%d)",
186 td
->name
, __FILE__
, __LINE__
);
192 memb_sbasZgDot_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
193 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
197 _ASN_CTFAIL(app_key
, td
, sptr
,
198 "%s: value not given (%s:%d)",
199 td
->name
, __FILE__
, __LINE__
);
203 value
= *(const long *)sptr
;
205 if((value
>= -131072 && value
<= 131071)) {
206 /* Constraint check succeeded */
209 _ASN_CTFAIL(app_key
, td
, sptr
,
210 "%s: constraint failed (%s:%d)",
211 td
->name
, __FILE__
, __LINE__
);
217 memb_sbasXgDotDot_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
218 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
222 _ASN_CTFAIL(app_key
, td
, sptr
,
223 "%s: value not given (%s:%d)",
224 td
->name
, __FILE__
, __LINE__
);
228 value
= *(const long *)sptr
;
230 if((value
>= -512 && value
<= 511)) {
231 /* Constraint check succeeded */
234 _ASN_CTFAIL(app_key
, td
, sptr
,
235 "%s: constraint failed (%s:%d)",
236 td
->name
, __FILE__
, __LINE__
);
242 memb_sbagYgDotDot_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
243 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
247 _ASN_CTFAIL(app_key
, td
, sptr
,
248 "%s: value not given (%s:%d)",
249 td
->name
, __FILE__
, __LINE__
);
253 value
= *(const long *)sptr
;
255 if((value
>= -512 && value
<= 511)) {
256 /* Constraint check succeeded */
259 _ASN_CTFAIL(app_key
, td
, sptr
,
260 "%s: constraint failed (%s:%d)",
261 td
->name
, __FILE__
, __LINE__
);
267 memb_sbasZgDotDot_constraint_1(asn_TYPE_descriptor_t
*td
, const void *sptr
,
268 asn_app_constraint_failed_f
*ctfailcb
, void *app_key
) {
272 _ASN_CTFAIL(app_key
, td
, sptr
,
273 "%s: value not given (%s:%d)",
274 td
->name
, __FILE__
, __LINE__
);
278 value
= *(const long *)sptr
;
280 if((value
>= -512 && value
<= 511)) {
281 /* Constraint check succeeded */
284 _ASN_CTFAIL(app_key
, td
, sptr
,
285 "%s: constraint failed (%s:%d)",
286 td
->name
, __FILE__
, __LINE__
);
291 static asn_per_constraints_t asn_PER_memb_sbasTo_constr_2
= {
292 { APC_CONSTRAINED
, 13, 13, 0, 5399 } /* (0..5399) */,
293 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
294 0, 0 /* No PER value map */
296 static asn_per_constraints_t asn_PER_memb_sbasAccuracy_constr_3
= {
297 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
298 { APC_CONSTRAINED
, 0, 0, 4, 4 } /* (SIZE(4..4)) */,
299 0, 0 /* No PER value map */
301 static asn_per_constraints_t asn_PER_memb_sbasXg_constr_4
= {
302 { APC_CONSTRAINED
, 30, -1, -536870912, 536870911 } /* (-536870912..536870911) */,
303 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
304 0, 0 /* No PER value map */
306 static asn_per_constraints_t asn_PER_memb_sbasYg_constr_5
= {
307 { APC_CONSTRAINED
, 30, -1, -536870912, 536870911 } /* (-536870912..536870911) */,
308 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
309 0, 0 /* No PER value map */
311 static asn_per_constraints_t asn_PER_memb_sbasZg_constr_6
= {
312 { APC_CONSTRAINED
, 25, -1, -16777216, 16777215 } /* (-16777216..16777215) */,
313 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
314 0, 0 /* No PER value map */
316 static asn_per_constraints_t asn_PER_memb_sbasXgDot_constr_7
= {
317 { APC_CONSTRAINED
, 17, -1, -65536, 65535 } /* (-65536..65535) */,
318 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
319 0, 0 /* No PER value map */
321 static asn_per_constraints_t asn_PER_memb_sbasYgDot_constr_8
= {
322 { APC_CONSTRAINED
, 17, -1, -65536, 65535 } /* (-65536..65535) */,
323 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
324 0, 0 /* No PER value map */
326 static asn_per_constraints_t asn_PER_memb_sbasZgDot_constr_9
= {
327 { APC_CONSTRAINED
, 18, -1, -131072, 131071 } /* (-131072..131071) */,
328 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
329 0, 0 /* No PER value map */
331 static asn_per_constraints_t asn_PER_memb_sbasXgDotDot_constr_10
= {
332 { APC_CONSTRAINED
, 10, 10, -512, 511 } /* (-512..511) */,
333 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
334 0, 0 /* No PER value map */
336 static asn_per_constraints_t asn_PER_memb_sbagYgDotDot_constr_11
= {
337 { APC_CONSTRAINED
, 10, 10, -512, 511 } /* (-512..511) */,
338 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
339 0, 0 /* No PER value map */
341 static asn_per_constraints_t asn_PER_memb_sbasZgDotDot_constr_12
= {
342 { APC_CONSTRAINED
, 10, 10, -512, 511 } /* (-512..511) */,
343 { APC_UNCONSTRAINED
, -1, -1, 0, 0 },
344 0, 0 /* No PER value map */
346 static asn_TYPE_member_t asn_MBR_NavModel_SBASecef_1
[] = {
347 { ATF_POINTER
, 1, offsetof(struct NavModel_SBASecef
, sbasTo
),
348 (ASN_TAG_CLASS_CONTEXT
| (0 << 2)),
349 -1, /* IMPLICIT tag at current level */
350 &asn_DEF_NativeInteger
,
351 memb_sbasTo_constraint_1
,
352 &asn_PER_memb_sbasTo_constr_2
,
356 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasAccuracy
),
357 (ASN_TAG_CLASS_CONTEXT
| (1 << 2)),
358 -1, /* IMPLICIT tag at current level */
360 memb_sbasAccuracy_constraint_1
,
361 &asn_PER_memb_sbasAccuracy_constr_3
,
365 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasXg
),
366 (ASN_TAG_CLASS_CONTEXT
| (2 << 2)),
367 -1, /* IMPLICIT tag at current level */
368 &asn_DEF_NativeInteger
,
369 memb_sbasXg_constraint_1
,
370 &asn_PER_memb_sbasXg_constr_4
,
374 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasYg
),
375 (ASN_TAG_CLASS_CONTEXT
| (3 << 2)),
376 -1, /* IMPLICIT tag at current level */
377 &asn_DEF_NativeInteger
,
378 memb_sbasYg_constraint_1
,
379 &asn_PER_memb_sbasYg_constr_5
,
383 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasZg
),
384 (ASN_TAG_CLASS_CONTEXT
| (4 << 2)),
385 -1, /* IMPLICIT tag at current level */
386 &asn_DEF_NativeInteger
,
387 memb_sbasZg_constraint_1
,
388 &asn_PER_memb_sbasZg_constr_6
,
392 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasXgDot
),
393 (ASN_TAG_CLASS_CONTEXT
| (5 << 2)),
394 -1, /* IMPLICIT tag at current level */
395 &asn_DEF_NativeInteger
,
396 memb_sbasXgDot_constraint_1
,
397 &asn_PER_memb_sbasXgDot_constr_7
,
401 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasYgDot
),
402 (ASN_TAG_CLASS_CONTEXT
| (6 << 2)),
403 -1, /* IMPLICIT tag at current level */
404 &asn_DEF_NativeInteger
,
405 memb_sbasYgDot_constraint_1
,
406 &asn_PER_memb_sbasYgDot_constr_8
,
410 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasZgDot
),
411 (ASN_TAG_CLASS_CONTEXT
| (7 << 2)),
412 -1, /* IMPLICIT tag at current level */
413 &asn_DEF_NativeInteger
,
414 memb_sbasZgDot_constraint_1
,
415 &asn_PER_memb_sbasZgDot_constr_9
,
419 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasXgDotDot
),
420 (ASN_TAG_CLASS_CONTEXT
| (8 << 2)),
421 -1, /* IMPLICIT tag at current level */
422 &asn_DEF_NativeInteger
,
423 memb_sbasXgDotDot_constraint_1
,
424 &asn_PER_memb_sbasXgDotDot_constr_10
,
428 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbagYgDotDot
),
429 (ASN_TAG_CLASS_CONTEXT
| (9 << 2)),
430 -1, /* IMPLICIT tag at current level */
431 &asn_DEF_NativeInteger
,
432 memb_sbagYgDotDot_constraint_1
,
433 &asn_PER_memb_sbagYgDotDot_constr_11
,
437 { ATF_NOFLAGS
, 0, offsetof(struct NavModel_SBASecef
, sbasZgDotDot
),
438 (ASN_TAG_CLASS_CONTEXT
| (10 << 2)),
439 -1, /* IMPLICIT tag at current level */
440 &asn_DEF_NativeInteger
,
441 memb_sbasZgDotDot_constraint_1
,
442 &asn_PER_memb_sbasZgDotDot_constr_12
,
447 static int asn_MAP_NavModel_SBASecef_oms_1
[] = { 0 };
448 static ber_tlv_tag_t asn_DEF_NavModel_SBASecef_tags_1
[] = {
449 (ASN_TAG_CLASS_UNIVERSAL
| (16 << 2))
451 static asn_TYPE_tag2member_t asn_MAP_NavModel_SBASecef_tag2el_1
[] = {
452 { (ASN_TAG_CLASS_CONTEXT
| (0 << 2)), 0, 0, 0 }, /* sbasTo at 1395 */
453 { (ASN_TAG_CLASS_CONTEXT
| (1 << 2)), 1, 0, 0 }, /* sbasAccuracy at 1396 */
454 { (ASN_TAG_CLASS_CONTEXT
| (2 << 2)), 2, 0, 0 }, /* sbasXg at 1397 */
455 { (ASN_TAG_CLASS_CONTEXT
| (3 << 2)), 3, 0, 0 }, /* sbasYg at 1398 */
456 { (ASN_TAG_CLASS_CONTEXT
| (4 << 2)), 4, 0, 0 }, /* sbasZg at 1399 */
457 { (ASN_TAG_CLASS_CONTEXT
| (5 << 2)), 5, 0, 0 }, /* sbasXgDot at 1400 */
458 { (ASN_TAG_CLASS_CONTEXT
| (6 << 2)), 6, 0, 0 }, /* sbasYgDot at 1401 */
459 { (ASN_TAG_CLASS_CONTEXT
| (7 << 2)), 7, 0, 0 }, /* sbasZgDot at 1402 */
460 { (ASN_TAG_CLASS_CONTEXT
| (8 << 2)), 8, 0, 0 }, /* sbasXgDotDot at 1403 */
461 { (ASN_TAG_CLASS_CONTEXT
| (9 << 2)), 9, 0, 0 }, /* sbagYgDotDot at 1404 */
462 { (ASN_TAG_CLASS_CONTEXT
| (10 << 2)), 10, 0, 0 } /* sbasZgDotDot at 1405 */
464 static asn_SEQUENCE_specifics_t asn_SPC_NavModel_SBASecef_specs_1
= {
465 sizeof(struct NavModel_SBASecef
),
466 offsetof(struct NavModel_SBASecef
, _asn_ctx
),
467 asn_MAP_NavModel_SBASecef_tag2el_1
,
468 11, /* Count of tags in the map */
469 asn_MAP_NavModel_SBASecef_oms_1
, /* Optional members */
470 1, 0, /* Root/Additions */
471 -1, /* Start extensions */
472 -1 /* Stop extensions */
474 asn_TYPE_descriptor_t asn_DEF_NavModel_SBASecef
= {
484 SEQUENCE_decode_uper
,
485 SEQUENCE_encode_uper
,
486 0, /* Use generic outmost tag fetcher */
487 asn_DEF_NavModel_SBASecef_tags_1
,
488 sizeof(asn_DEF_NavModel_SBASecef_tags_1
)
489 /sizeof(asn_DEF_NavModel_SBASecef_tags_1
[0]), /* 1 */
490 asn_DEF_NavModel_SBASecef_tags_1
, /* Same as above */
491 sizeof(asn_DEF_NavModel_SBASecef_tags_1
)
492 /sizeof(asn_DEF_NavModel_SBASecef_tags_1
[0]), /* 1 */
493 0, /* No PER visible constraints */
494 asn_MBR_NavModel_SBASecef_1
,
495 11, /* Elements count */
496 &asn_SPC_NavModel_SBASecef_specs_1
/* Additional specs */