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

В этом примере показано, как использовать блок C Caller для вызова устаревших функций C, которые реализуют поиск N-мерной таблицы.

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

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

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

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

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

  • const UINT32 nbDims - Размерность таблицы

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

  • const UINT32 *tableIdx - Индекс таблицы

В блоке C Caller, tableND и tableDims сопоставлены с параметрами блоков C Caller, nbDims является блок константой, и tableIdx - вход в блок. Значение, возвращенное унаследованной функцией C, является выходом блока.

model = 'slexCCallerLookupTable';
open_system(model);
sim(model);
slcc('clearCustomCodeModules');