Настройте перечислимые типы в сгенерированном коде

Для генерации кода, чтобы настроить перечисление, в разделе статических методов определения класса, включают настроенные версии методов, перечисленных в этой таблице.

МетодОписаниеЗначение по умолчанию, возвращенное или заданное Когда использовать

getDefaultValue

Возвращает перечисляемое значение по умолчанию.

Первое значение в определении класса перечисления.

Для значения по умолчанию, которое отличается, чем первая перечислимая величина, обеспечьте getDefaultValue метод, который возвращает значение по умолчанию, которое вы хотите. Смотрите Задают Перечислимую величину По умолчанию.

getHeaderFile

Задает файл, который задает внешне заданный перечислимый тип.

''

Чтобы использовать внешне заданный перечислимый тип, обеспечьте getHeaderFile метод, который возвращает путь к заголовочному файлу, который задает тип. В этом случае генератор кода не производит определение класса. Смотрите Задают Заголовочный файл

addClassNameToEnumNames

Задает, становится ли имя класса префиксом в сгенерированном коде.

false — префикс не используется.

Если вы хотите, чтобы имя класса стало префиксом в сгенерированном коде, установите возвращаемое значение addClassNameToEnumNames метод к true. Смотрите включают префикс имени класса в сгенерированные имена значения перечислимого типа.

Задайте перечислимую величину по умолчанию

Если значение переменной, которая брошена к перечислимому типу, не совпадает с одним из значений перечислимого типа:

  • Сгенерированный MEX сообщает об ошибке.

  • Сгенерированный код C/C++ заменяет значение переменной со значением по умолчанию перечислимого типа.

Если вы не задаете в противном случае, значением по умолчанию для перечислимого типа является первое значение в определении класса перечисления. Чтобы задать различное значение по умолчанию, добавьте свой собственный getDefaultValue метод к разделу методов. В этом примере первым значением члена перечисления является LEDcolor.GREEN, но getDefaultValue метод возвращает LEDcolor.RED:

classdef LEDcolor < int32
    enumeration
        GREEN(1),
        RED(2)
    end
    
    methods (Static)
        function y = getDefaultValue()
            y = LEDcolor.RED;
        end
    end
end

Задайте заголовочный файл

Чтобы указать, что перечислимый тип задан во внешнем файле, обеспечьте индивидуально настраиваемый getHeaderFile метод. Этот пример задает тот LEDcolor задан во внешнем файле my_LEDcolor.h.

classdef LEDcolor < int32
    enumeration
        GREEN(1),
        RED(2)
    end

    methods(Static)
      function y=getHeaderFile()
        y='my_LEDcolor.h';
      end
    end
end

Необходимо обеспечить my_LEDcolor.h. Например:

enum LEDcolor
{
    GREEN = 1,
    RED
};
typedef enum LEDcolor LEDcolor;

Включайте префикс имени класса в сгенерированные имена значения перечислимого типа

По умолчанию сгенерированное имя значения перечислимого типа не включает префикс имени класса. Например:

enum LEDcolor
{
    GREEN = 1,
    RED
};

typedef enum LEDcolor LEDcolor;

Чтобы включать префикс имени класса, обеспечьте addClassNameToEnumNames метод, который возвращает true. Например:

classdef LEDcolor < int32
    enumeration
        GREEN(1),
        RED(2)
    end

    methods(Static)
      function y = addClassNameToEnumNames()
        y=true;
      end
    end
end

В сгенерированном определении типа имена перечисляемого значения включают префикс класса LEDcolor.

enum LEDcolor
{
    LEDcolor_GREEN = 1,
    LEDcolor_RED
};

typedef enum LEDcolor LEDcolor;

Похожие темы