Я пытаюсь сделать параметризованную библиотеку. Я отлично работаю, используя в качестве параметров пакеты и коннекторы.
Также возможно использование модели в качестве параметра. Однако, если модель используется в библиотеке для построения новых моделей с использованием расширения, то, насколько я понимаю, это запрещено.
Интересно, содержит ли библиотека модель с внутренним / внешним стилем соединителя, разрешено ли тогда позволить внутренней модели быть параметром библиотеки?
Ниже приведен простой пример, иллюстрирующий проблему. ТЕСТ - это библиотека, а Fish3b - это приложение. Когда я запускаю пример в библиотеке TEST, все работает, но когда у меня есть отдельный файл приложения, это не так.
Текст ошибки: не удается найти объявление класса для AquariumType с JModelica 2.4.
package TEST
model FishType1
outer Real T;
Real health;
equation
health = 30-T;
end FishType1;
model FishType2
outer Real T;
Real health;
equation
health = 32-T;
end FishType2;
package Equipment
model AquariumType
replaceable model FishType
end FishType;
FishType fish;
inner Real T;
equation
T = 29;
end AquariumType;
end Equipment;
// Adapt AquariumType model to actual fish
model Aquarium
import TEST.Equipment.AquariumType;
extends AquariumType(redeclare model FishType=FishType2);
end Aquarium;
// Example
model Example
Aquarium aquarium;
end Example;
end TEST;
И ниже пример кода приложения, который импортируется из библиотеки выше - и здесь, я думаю, есть ошибка.
encapsulated package Fish3b
model FishType3
outer Real T;
Real health;
equation
health = 34-T;
end FishType3;
// Adapt package Equipment with AquariumType model to actual fish
package Equipment3
import TEST.Equipment;
extends Equipment.AquariumType(redeclare model FishType=FishType3);
end Equipment3;
// Example
model Example
import Fish3b.Equipment3;
Equipment3.AquariumType aquarium;
end Example;
end Fish3b;
Library
в коде приложения не может быть разрешено. [1]: sscce.org - person tbeu   schedule 13.03.2019