exponenta event banner

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

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

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

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;

Связанные темы