initproject
Функция инициализации проекта по его идентификатору
Синтаксис
initproject(prjid, wait_flag);
Аргументы
| Имя | Тип данных | Описание |
|---|---|---|
| prjid | integer |
Идентификатор проекта в целочисленном представлении |
| wait_flag | boolean |
Флаг необходимости ожидания окончания инициализации |
Описание
initproject – функция производит инициализацию проекта с идентификатором
prjid. При этом, если флаг wait_flag=1 то следующий шаг
будет сделан только после того, как инициализация проекта prjid будет
завершена.
Результат
| Имя | Тип данных | Описание |
|---|---|---|
| Инициализация проекта на расчет. |
Пример
initialization
prjid = openproject("Loading_project.prt",0); //Открываем другой проект
initproject(prjid,1); //Запуск проекта
input_ptr = getprojectdataptr(prjid,"parameter_value"); //Получим ссылку на сигнал другого проекта, которой потом будем управлять
result_ptr = getprojectdataptr(prjid,"result_value"); //Получим ссылку на сигнал другого проекта, который потом будем выводить
saveprojectstartpoint(prjid); //Запомним начальную точку, чтобы делать повторяющийся расчёт
end;
if goodstep then begin //на каждом "хорошем" шаге запускаем другой проект на расчет до 50 секунд
loadprojectstartpoint(prjid); //Восстановим начальную точку для циклического расчёта
~(input_ptr) = variable_input; //Присваиваем варьируемую величину
runprojectto(prjid,50); //Запуск на расчёт до 50 секунд
waitprojectfortime(prjid,0); //Ждём пока оно досчитается
result_data = ~(result_ptr); //Считываем результат работы и направляем его в переменную
end;
finalization
closeproject(prjid,0); //закрываем другой проект
end;
При инициализации данного скрипта происходит открытие проекта
Loading_project.prt, получение его идентификатора и инициализация на
расчет. Затем на каждом "хорошем" шаге интегрирования выполняется загрузка начального
состояния второго проекта, передача в него очередного значения "аргумента", расчет проекта до
50 секунд и получение от него результата расчета. При окончании расчета происходит закрытие
второго проекта без запроса на сохранение изменений.
Дополнительные материалы
Нет.