i need code. have 2 structs, using third.
class bar(univ.sequence): componenttype = namedtype.namedtypes( namedtype.namedtype('first',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,0))), namedtype.namedtype('second',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext, tag.tagformatsimple, 1))) ) class foo(univ.sequence): componenttype = namedtype.namedtypes( namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,3))), ) class foo1(univ.sequence): componenttype = namedtype.namedtypes( namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,2))), )
so, in class foo, bar has tag [3] , in class foo1 e.g. [2]. if had 1 class do
tagset = tagbaseset = tag.inittagset(tag.tag(tag.tagclasscontext,tag.tagformatsimple,3))
in bar class (and it's working). how cope kind of problem? appreciated.
edit: here's asn1 representation:
bar ::= sequence { first [0] integer, second [1] integer } foo ::= sequence { first [0] integer, second [1] integer optional, third [2] integer optional, bar [3] bar } foo1 ::= sequence { first [0] integer, second [1] integer optional, bar [2] bar }
edit2: code: run , delete comments (i incompatible tags. without tagset in bar, in both cases, too):
from pyasn1.type import univ,namedtype,tag class bar(univ.sequence): componenttype = namedtype.namedtypes( namedtype.namedtype('first',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,0))), namedtype.namedtype('second',univ.integer().subtype(implicittag=tag.tag(tag.tagclasscontext, tag.tagformatsimple, 1))) ) tagset = tagbaseset = tag.inittagset(tag.tag(tag.tagclasscontext,tag.tagformatconstructed,3)) class foo(univ.sequence): componenttype = namedtype.namedtypes( namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,3))), ) class foo1(univ.sequence): componenttype = namedtype.namedtypes( namedtype.optionalnamedtype('test', bar().subtype(implicittag=tag.tag(tag.tagclasscontext,tag.tagformatsimple,2))), ) bar = bar() bar.setcomponentbyname('first',1) bar.setcomponentbyname('second',2) fo = foo() fo.setcomponentbyname('test',bar) # fo1 = foo1() # fo1.setcomponentbyname('test',bar) print fo.prettyprint() # print fo1.prettyprint()
Comments
Post a Comment