/*
 * Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
 * From ASN.1 module "FEF-IntermediateDraft"
 * 	found in "../annexb-snacc-122001.asn1"
 */

#include <asn_internal.h>

#include "ChannelDescriptionSection.h"

static int asn_DFL_8_set_65535(int set_value, void **sptr) {
	INTEGER_t *st = *sptr;
	
	if(!st) {
		if(!set_value) return -1;	/* Not a default value */
		st = (*sptr = CALLOC(1, sizeof(*st)));
		if(!st) return -1;
	}
	
	if(set_value) {
		/* Install default value 65535 */
		return asn_long2INTEGER(st, 65535);
	} else {
		/* Test default value 65535 */
		long value;
		if(asn_INTEGER2long(st, &value))
			return -1;
		return (value == 65535);
	}
}
static asn_TYPE_member_t asn_MBR_ChannelDescriptionSection_1[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ChannelDescriptionSection, handle),
		(ASN_TAG_CLASS_APPLICATION | (2337 << 2)),
		0,
		&asn_DEF_Handle,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"handle"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ChannelDescriptionSection, metrictype),
		(ASN_TAG_CLASS_APPLICATION | (2351 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_MetricsCode,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"metrictype"
		},
	{ ATF_POINTER, 6, offsetof(struct ChannelDescriptionSection, labelstring),
		(ASN_TAG_CLASS_APPLICATION | (2343 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_FEFString,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"labelstring"
		},
	{ ATF_POINTER, 5, offsetof(struct ChannelDescriptionSection, channelid),
		(ASN_TAG_CLASS_APPLICATION | (2318 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_MetricsCode,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"channelid"
		},
	{ ATF_POINTER, 4, offsetof(struct ChannelDescriptionSection, channelstatus),
		(ASN_TAG_CLASS_APPLICATION | (2320 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_MetricStatus,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"channelstatus"
		},
	{ ATF_POINTER, 3, offsetof(struct ChannelDescriptionSection, parametergroup),
		(ASN_TAG_CLASS_APPLICATION | (2346 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ParameterGroupCode,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"parametergroup"
		},
	{ ATF_POINTER, 2, offsetof(struct ChannelDescriptionSection, physicalchannelnr),
		(ASN_TAG_CLASS_APPLICATION | (2319 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_INTEGER,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		asn_DFL_8_set_65535,	/* DEFAULT 65535 */
		"physicalchannelnr"
		},
	{ ATF_POINTER, 1, offsetof(struct ChannelDescriptionSection, measurementprinciple),
		(ASN_TAG_CLASS_APPLICATION | (2560 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_MsmtPrinciple,
		0,	/* Defer constraints checking to the member type */
		0,	/* PER is not compiled, use -gen-PER */
		0,
		"measurementprinciple"
		},
};
static ber_tlv_tag_t asn_DEF_ChannelDescriptionSection_tags_1[] = {
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_TYPE_tag2member_t asn_MAP_ChannelDescriptionSection_tag2el_1[] = {
    { (ASN_TAG_CLASS_APPLICATION | (2318 << 2)), 3, 0, 0 }, /* channelid at 672 */
    { (ASN_TAG_CLASS_APPLICATION | (2319 << 2)), 6, 0, 0 }, /* physicalchannelnr at 683 */
    { (ASN_TAG_CLASS_APPLICATION | (2320 << 2)), 4, 0, 0 }, /* channelstatus at 677 */
    { (ASN_TAG_CLASS_APPLICATION | (2337 << 2)), 0, 0, 0 }, /* handle at 663 */
    { (ASN_TAG_CLASS_APPLICATION | (2343 << 2)), 2, 0, 0 }, /* labelstring at 669 */
    { (ASN_TAG_CLASS_APPLICATION | (2346 << 2)), 5, 0, 0 }, /* parametergroup at 680 */
    { (ASN_TAG_CLASS_APPLICATION | (2351 << 2)), 1, 0, 0 }, /* metrictype at 666 */
    { (ASN_TAG_CLASS_APPLICATION | (2560 << 2)), 7, 0, 0 } /* measurementprinciple at 687 */
};
static asn_SEQUENCE_specifics_t asn_SPC_ChannelDescriptionSection_specs_1 = {
	sizeof(struct ChannelDescriptionSection),
	offsetof(struct ChannelDescriptionSection, _asn_ctx),
	asn_MAP_ChannelDescriptionSection_tag2el_1,
	8,	/* Count of tags in the map */
	0, 0, 0,	/* Optional elements (not needed) */
	-1,	/* Start extensions */
	-1	/* Stop extensions */
};
asn_TYPE_descriptor_t asn_DEF_ChannelDescriptionSection = {
	"ChannelDescriptionSection",
	"ChannelDescriptionSection",
	SEQUENCE_free,
	SEQUENCE_print,
	SEQUENCE_constraint,
	SEQUENCE_decode_ber,
	SEQUENCE_encode_der,
	SEQUENCE_decode_xer,
	SEQUENCE_encode_xer,
	0, 0,	/* No PER support, use "-gen-PER" to enable */
	0,	/* Use generic outmost tag fetcher */
	asn_DEF_ChannelDescriptionSection_tags_1,
	sizeof(asn_DEF_ChannelDescriptionSection_tags_1)
		/sizeof(asn_DEF_ChannelDescriptionSection_tags_1[0]), /* 1 */
	asn_DEF_ChannelDescriptionSection_tags_1,	/* Same as above */
	sizeof(asn_DEF_ChannelDescriptionSection_tags_1)
		/sizeof(asn_DEF_ChannelDescriptionSection_tags_1[0]), /* 1 */
	0,	/* No PER visible constraints */
	asn_MBR_ChannelDescriptionSection_1,
	8,	/* Elements count */
	&asn_SPC_ChannelDescriptionSection_specs_1	/* Additional specs */
};

