CAPL:如何在不同的枚举中拥有相同的枚举成员名称?

CAPL: How to have the same enumeration member name in different enumerations?

我想这样做,以便我可以在不同的枚举中使用相同的枚举成员 name,如下所示:

enum OPTION_1
{
    ACTIVATED   = 1,
    DEACTIVATED = 0
};

enum OPTION_2
{
    ACTIVATED   = 1,
    OFF         = 0
};

当我尝试编译它时出现错误:重复的枚举器名称 "ACTIVATED"。

我发现了一个类似的问题,但是对于C++语言 c++ how to have same enum members name in different enum names without getting err:redefinition; previous definition was 'enumerator'

我尝试了那里显示的解决方案,但我无法在 CAPL 中实现它们。我的问题是我是否可以拥有名称不同但成员名称相同的枚举;如果可以,如何在CAPL中实现?

有一个变通方法,它真的很难看,不推荐这样做。

在CANoe中,您可以为系统变量定义自己的值表,这些系统变量实际上是枚举,并且对相同的成员名称没有限制。

然后您可以在 CAPL 代码中重复使用此枚举:

variables{
  enum VtSv_foo_myEnum1 var1;
  enum VtSv_myEnum2 var2;
}

do_foo(){
  var1 = (enum VtSv_foo_myEnum1) sysvar::foo::myEnum1::One;
  var2 = (enum VtSv_myEnum2) sysvar::myEnum2::One;  
}

在开始使用之前先问问自己有什么好处?因为代码看起来会很乱

您可以在 CANoe 帮助中找到更多信息:

CAPL Introduction » Basics » Enumeration Types