asciiwave icon indicating copy to clipboard operation
asciiwave copied to clipboard

Example `step5.json` fails

Open slagernate opened this issue 1 year ago • 0 comments

Example step5.json works fine in the official wavedrom editor, but does not work in asciiwave. $ ./asciiwave example/step5.json produces:

Traceback (most recent call last):
  File "/home/nates/github/asciiwave/./asciiwave", line 305, in <module>
    render_json(ifile.read(), sys.stdout, graphics, force_hscale=args.hscale)
  File "/home/nates/github/asciiwave/./asciiwave", line 226, in render_json
    jsonschema.Draft6Validator(wavejson_schema).validate(obj)
  File "/home/nates/.local/lib/python3.10/site-packages/jsonschema/validators.py", line 438, in validate
    raise error
jsonschema.exceptions.ValidationError: ['Master', ['ctrl', {'name': 'write', 'wave': '01.0....'}, {'name': 'read', 'wave': '0...1..0'}], {'name': 'addr', 
'wave': 'x3.x4..x', 'data': 'A1 A2'}, {'name': 'wdata', 'wave': 'x3.x....', 'data': 'D1'}] is not of type 'object'

Failed validating 'type' in schema['properties']['signal']['items']:
    {'additionalProperties': False,
     'properties': {'data': {'items': {'type': 'string'},
                             'type': ['array', 'string']},
                    'name': {'type': 'string'},
                    'period': {'type': 'number'},
                    'phase': {'type': 'number'},
                    'wave': {'type': 'string'}},
     'type': 'object'}

On instance['signal'][1]:
    ['Master',
     ['ctrl',
      {'name': 'write', 'wave': '01.0....'},
      {'name': 'read', 'wave': '0...1..0'}],
     {'data': 'A1 A2', 'name': 'addr', 'wave': 'x3.x4..x'},
     {'data': 'D1', 'name': 'wdata', 'wave': 'x3.x....'}]

Example step5.json:

{ signal: [
  {    name: 'clk',   wave: 'p..Pp..P'},
  ['Master',
    ['ctrl',
      {name: 'write', wave: '01.0....'},
      {name: 'read',  wave: '0...1..0'}
    ],
    {  name: 'addr',  wave: 'x3.x4..x', data: 'A1 A2'},
    {  name: 'wdata', wave: 'x3.x....', data: 'D1'   },
  ],
  {},
  ['Slave',
    ['ctrl',
      {name: 'ack',   wave: 'x01x0.1x'},
    ],
    {  name: 'rdata', wave: 'x.....4x', data: 'Q2'},
  ]
]}

slagernate avatar Feb 22 '24 16:02 slagernate