You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The enum ILLUMINATOR_MODE that is not a bitmask is used with display="bitmask" in the ILLUMINATOR_STATUS message. This is not really a bug since ILLUMINATOR_MODE is both used as an bitmask to indicate supported modes as well as a value to indicate the current mode.
At least the second problem requires a solution that allows the usage of enums as bitmasks independent of their designation in the enum definition.
This could be solved by generating a bitmask version of every enum regardless of their bitmask="true"designation but that would probably create a lot of extra, unneeded code. The solution that avoids that by checking the usage of each enum and the generate it depending on how it is used also does not seem ideal to me since the code generation would probably not be context free anymore. This could impact code generation performance and increase complexity but I haven't looked too far into it.
Since the version of the mavlink message definitons used is now over a year old a solution should be found, so newer messages/message fields can be used.
If someone needs an immediate solution that does not require the ILLUMINATOR_STATUS message, it would also be possible to just blacklist this message from code generation until a more permanent solution is found.
The text was updated successfully, but these errors were encountered:
Currently using
mavlink
against mavlink master's message definitions does not compile.There are 2 issues, both related to bitmasks:
GIMBAL_MANAGER_FLAGS
that isbitmask="true"
is used in messages without labeling the fields asdisplay="bitmask"
. I believe this is a bug and have opened a PR (common.xml: GIMBAL_MANAGER_FLAGS display as bitmask mavlink#2154)ILLUMINATOR_MODE
that is not abitmask
is used withdisplay="bitmask"
in theILLUMINATOR_STATUS
message. This is not really a bug sinceILLUMINATOR_MODE
is both used as an bitmask to indicate supported modes as well as a value to indicate the current mode.At least the second problem requires a solution that allows the usage of enums as bitmasks independent of their designation in the enum definition.
This could be solved by generating a bitmask version of every enum regardless of their
bitmask="true"
designation but that would probably create a lot of extra, unneeded code. The solution that avoids that by checking the usage of each enum and the generate it depending on how it is used also does not seem ideal to me since the code generation would probably not be context free anymore. This could impact code generation performance and increase complexity but I haven't looked too far into it.Since the version of the mavlink message definitons used is now over a year old a solution should be found, so newer messages/message fields can be used.
If someone needs an immediate solution that does not require the
ILLUMINATOR_STATUS
message, it would also be possible to just blacklist this message from code generation until a more permanent solution is found.The text was updated successfully, but these errors were encountered: