Flemming Gram Christensen wrote:
Hi all,
I have a simple question I have been thinking about for some time.
I am new to ASN1.
I have a product, say a thermometer, that is supposed to be used
together with products from other companies. Lets say they use RS485.
If a deliver documentation about a binary protocol, other people can
implement it in their products. But binary protocol specifications
have their problems, we all know.
I could also specify my protocol using ASN1 and use a specific
compiler to implement the protocol in my product. The thermometer can
talk to the other of my products. So I am happy.
What will the other companies do (when they need to use my thermometer)?
a) Are they forced to use the same ASN1 compiler?
No, the local syntax/structure of thermometer data (in memory) doesn't
really matter. As long as the line encoding is the same, other companies
can use/exchange thermometer data. The line encoding is determined by
the ASN1 text and encoding rules, so if the ASN1 compiler conforms to
ASN.1 there shouldn't be a problem.
b) Is it enough to specify the ASN1 text and encoding rule used (e.g. BER) ?
Is the compilers compatible?
Yes, when compilers are compatible (when they both conform to ASN.1).
In OSI application layer terms: when abstract syntax (ASN.1 text
definitions) and transfer syntax (encoding rule) match, it should all
work. As said before: local syntax (the way a machine stores thermometer
data in memory) doesn't matter.
Btw. the OSI presentation layer protocol as well as the OSI application
layer protocols (e.g. ACSE, FTAM) have been specified in ASN.1.
--
N. van Bolhuis.