Homepage GitHub

Error when compiling DSDLs


Suddenly, without adding any strange characters in my DSDLs, I get the following compile error

Compiler failure
Traceback (most recent call last):
  File "/usr/local/bin/libuavcan_dsdlc", line 61, in <module>
    dsdlc_run(args.source_dir, args.incdir, args.outdir)
  File "/usr/local/lib/python2.7/dist-packages/libuavcan_dsdl_compiler/__init__.py", line 63, in run
    run_generator(types, output_dir)
  File "/usr/local/lib/python2.7/dist-packages/libuavcan_dsdl_compiler/__init__.py", line 112, in run_generator
  File "/usr/local/lib/python2.7/dist-packages/libuavcan_dsdl_compiler/__init__.py", line 90, in die
    raise DsdlCompilerException(str(text))
DsdlCompilerException: 'ascii' codec can't decode byte 0xe2 in position 10: ordinal not in range(128)
'ascii' codec can't decode byte 0xe2 in position 10: ordinal not in range(128)

Character 0xe2 is nothing I have added… Why is this emerging?

Kind Regards

(Pavel Kirienko) #2

Post the offending source file here, please. Attach the whole file, don’t copy-paste it’s contents, since the latter may fail to reproduce possible encoding problems.


Hi! I am not sure what DSDL source file it is… Or are you refering to the init.py?
I can see in the generated header file directory that it stop generating .hpp files when the error occurs. But I am not sure about in what order the files are created and what file that is upcoming.
How is the compiler sorting the files?

Btw. Where is logger.info( ) writing log messages to?



I found the problem. A minus ‘-’ was changed into '–" by my editor.
Thanks for your time.


(Pavel Kirienko) #5

Things like this are DSDL source files: https://github.com/UAVCAN/dsdl/blob/master/uavcan/protocol/341.NodeStatus.uavcan

Nowhere, they just disappear unless the compiler is invoked with -v. Use --help for usage info.

This is a problem of the old parser that is now fixed in the new parser (which is under development still): the compiler was supposed to report which exact file caused the problem, but it didn’t.


Ok I see. Thanks for the info!

Kind Regards