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

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

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

getDefaultValue

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

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

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

getHeaderFile

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

''

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

addClassNameToEnumNames

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

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

Если вы хотите, чтобы имя класса стало префиксом в сгенерированном коде, установите возвращаемое значение метода 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;

Похожие темы