kimgr / asn1ate

A Python library for translating ASN.1 into other forms.
Other
69 stars 41 forks source link

to support Brace value notation assignment #48

Open huaihuaiVV opened 7 years ago

huaihuaiVV commented 7 years ago

i found it don't support value notation like this : myValue MyType ::= { a 100, b 200, c 300 }

could it be supported ?

Thanks

kimgr commented 7 years ago

Probably, yes. Can you provide a self-contained example? I.e. how is MyType defined?

huaihuaiVV commented 7 years ago

for example:

MyType ::= SEQUENCE { a INTEGER, b INTEGER, c INTEGER } myValue MyType ::= { a 100, b 200, c 300 }

then, it can generate the python value named : myValue = MyType() myValue.setComponentByname("a", univ.integer(100)) myValue.setComponentByname("a", univ.integer(200)) myValue.setComponentByname("a", univ.integer(300))

for more complex type:

MyType2 ::= SEQUENCE { a SET OF SEQUENCE { m0 INTEGER, m1 INTEGER, m2 INTEGER}, b SET OF SEQUENCE { m0 INTEGER, m1 INTEGER, m2 INTEGER}, c SET OF SEQUENCE { m0 INTEGER, m1 INTEGER, m2 INTEGER} }

myValue MyType2 ::= { a {{m0 1, m1 2, m3 3}, {m0 1, m1 2, m3 3}, {m0 1, m1 2, m3 3}}, b {{m0 1, m1 2, m3 3}, {m0 1, m1 2, m3 3}, {m0 1, m1 2, m3 3}}, c {{m0 1, m1 2, m3 3}, {m0 1, m1 2, m3 3}, {m0 1, m1 2, m3 3}}, }

it can generate the value:

myValue = MyType2() myValue.setComponentByName("a", ........) myValue.setComponentByName("b", ........) myValue.setComponentByName("c", ........) ...

like this .

it will be very useful, we don'e need write python code to generate these data, just need write the ASN1 file .

Thanks a lot ~

huaihuaiVV commented 7 years ago

and for value reference by other value:

MyType ::= SEQUENCE { a INTEGER, b INTEGER, c INTEGER }

MyType2 ::= SEQUENCE OF MyType

myValue MyType ::= { a 100, b 200, c 300 }

myValue2 MyType2 ::= { myValue, myValue, myValue }

can generate \:

myValue = myType()

myValue2 = MyType2() myValue2.SetComponenetByPosition(0, myValue) myValue2.SetComponenetByPosition(1, myValue) myValue2.SetComponenetByPosition(2, myValue)

That is all !!

huaihuaiVV commented 7 years ago

for value notation details: http://stackoverflow.com/questions/26760194/value-notation-for-this-asn-1-schema http://www.oss.com/asn1/resources/reference/asn1-reference-card.html

Thanks a lot ~