Навигация:
<< >> Оглавление Указатель

Приложения

Приложение А. Функции, константы и структуры RDS

А.3. События модуля автокомпиляции и связанные с ними структуры

А.3.4. События модуля автокомпиляции

А.3.4.6. RDS_COMPM_COMPILE – компиляция моделей

Первый параметр функции модуля (int CallMode)

Константа RDS_COMPM_COMPILE.

Третий параметр функции модуля (void *ExtParam)

Указатель на структуру RDS_COMPILEDATA, содержащую список моделей, которые должны быть скомпилированы.

Возвращаемое функцией модуля значение

RDS_COMPR_DONE Модели скомпилированы.
RDS_COMPR_ERROR Модели не скомпилированы.

Примечания

Событие RDS_COMPM_COMPILE возникает в тот момент, когда нужно скомпилировать все обслуживаемые модулем модели. Необходимость компиляции проверяется при вызове реакции на другое событие, RDS_COMPM_PREPARE, которая вызывается для каждой модели в отдельности. В отличие от RDS_COMPM_PREPARE, событие RDS_COMPM_COMPILE возникает не для каждой модели, а один раз для всего модуля. Именно в реакции на него обычно выполняются все основные действия модуля: формирование исходного текста программы, вызов компилятора, обработка ошибок компиляции и т.п. Кроме того, если в параметрах модели задается структура статических переменных блока (а, как правило, это необходимо), в этой реакции всем блокам, которым назначена эта модель, присваивается указанная структура переменных.

В параметре ExtParam при реакции на событие RDS_COMPM_COMPILE передается указатель на структуру RDS_COMPILEDATA:

  typedef struct {
     *InvalidModels; // Модели, которые нужно компилировать
     IMCount;                  // Размер массива InvalidModels
     Rebuild;                      // Принудительная перекомпиляция всех моделей
  } RDS_COMPILEDATA;
  typedef RDS_COMPILEDATA *RDS_PCOMPILEDATA;

Поля структуры

InvalidModels (RDS_PCOMPMODELDATA*)
Массив указателей на структуры данных RDS_COMPMODELDATA тех моделей, которые должны быть скомпилированы. Этот массив формируется RDS, функция модуля не должна менять его элементы. Модуль должен скомпилировать модели InvalidModels[0]InvalidModels[IMCount-1].
IMCount (RDSINT32)
Число моделей, которые необходимо скомпилировать, то есть размер массива InvalidModels.
Rebuild (BOOL)
TRUE, если пользователь выбрал принудительную компиляцию всех моделей схемы, FALSE в противном случае. Независимо от значения этого поля, функция модуля должна скомпилировать только те модели, указатели на данные которых находятся в массиве InvalidModels. При принудительной компиляции этот массив будет содержать все модели блоков, обслуживаемые данным модулем.

См. также

RDS_COMPM_PREPARE, rdscompCompileModel.


<< >> Оглавление Указатель