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

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

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

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;

Похожие темы