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 секунд и получение от него результата расчета. При окончании расчета происходит закрытие второго проекта без запроса на сохранение изменений.

Дополнительные материалы

Нет.