Why is there no PDU defined by the ASN.1 compiler for some types even though the type definitions are present in my ASN.1 syntax?

Suppose that you have defined in your ASN.1:


Foo ::= SEQUENCE { bar INTEGER, foo OpenLogicalChannel } OpenLogicalChannel ::= SEQUENCE OF OCTET STRING END

Since OpenLogicalChannel is referenced by another type, the ASN.1 compiler will not by default generate a PDU for it. You can override the default behavior by using the PDU compiler directive. For example, use the following before the definition of YourModule:

--<OSS.PDU YourModule.OpenLogicalChannel>--

You can either put such a directive in a directives.asn file (or whatever name you choose) and you specify that file on the command line before the file that contains YourModule, or you can put it at the top of the file that contains YourModule.

The other alternative (which works well when the number of PDUs is few) is to use a local directive, --<PDU>--:

OpenLogicalChannel ::= SEQUENCE --<PDU>-- OF OCTET STRING

The samples included with some of the Knowledge Center answers are meant for your general understanding of the OSS products. Different versions of the products might produce slightly different outputs. Consult the products documentation and samples for the most up-to-date products information and code examples.

Contact Support
contact Our office hours
24 hours/day, 7 days/week

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email: support@oss.com
Free Trial

Test drive the OSS Nokalva ASN.1, LTE, and XML Tools now! Your trial includes complete software, documentation, sample programs, free 24x7 technical support and more.

Learn ASN.1
Learn ASN.1

Our expert personnel can help you learn ASN.1!

We offer 4-day ASN.1 courses at our headquarters or your premises.