Вызовите устаревшие функции интерполяционной таблицы Используя блок C Function

В этом примере показано, как использовать Функциональный блок C, чтобы вызвать наследие C функции, которые реализуют n-мерный поиск по таблице.

В этом примере наследие C функции заданы в lookupTable.h и реализованы в directLookupTableND.c. Определения типа, используемые в этом примере, могут быть найдены в your_types.h.

В модели заголовочный файл и исходный файл заданы в Параметрах конфигурации Модели> Цель Симуляции. Теперь функция C может быть вызвана в Функциональном блоке C. Прототип функции, названной в этом примере:

FLT directLookupTableND(const FLT *tableND, const UINT32 nbDims, const UINT32 *tableDims, const UINT32 *tableIdx)

где FLT определение типа типу с плавающей точкой и UINT32 определение типа 32-битному целому числу без знака.

Этот пример задает две макро-функции, которые используют функциональный directLookupTableND, которые называются с помощью Функциональных блоков C. Они:

  • DirectLookupTable3D - 3D интерполяционная таблица

  • DirectLookupTable4D - 4D интерполяционная таблица

Обе этих функции берут следующие входные параметры:

  • const FLT *tableND Таблица

  • const UINT32 *tableDims - Размер таблицы

  • const UINT32 *tableIdx - Табличный индекс

где tableND и tableDims сопоставлены с параметрами Функционального блока C и tableIdx вход с блоком. Значением, возвращенным наследием C функция, является выход блока.

model = 'slexCFunctionLookupTable';
open_system(model);
evalc('sim(model)');
slcc('clearCustomCodeModules');