。私は以下のコードでコンパイル時エラーが発生すると予想しましたが、エラーは発生しません。 どうすればこの問題を解決できますか?接続制限
もう一つの問題は、パッケージ・グローバルコンパイル時定数C
です。これはパラメータの一種であり、パッケージのユーザーが提供する必要があります。 これはModelicaでどのように実装する必要がありますか?
package Pkg
constant Integer C=3;
connector Connector
Real x[C];
end Connector;
connector InConn = input Connector;
connector OutConn = output Connector;
class Base
InConn[:] inlet;
OutConn[:] outlet;
end Base;
class A
extends Base;
redeclare InConn[1] inlet;
redeclare OutConn[1] outlet;
end A;
end Pkg;
model Test
import Pkg.*;
A p;
A q;
equation
connect(p.inlet[1], q.inlet[1]);
end Test;
多くのおかげで、それは私の問題を修正!混乱した接続に関しては、私は失敗したアサートを得て、それで十分です。 – Ali
Ooops、そうではありません。クラスはパッケージへのアクセスも必要です - グローバル 'C'とそれらのクラスはコネクタを持っていません。したがって、コネクタークラスの中で 'C'を動かすと、すべてが破壊されます。別の質問が出るかもしれません。 – Ali
パッケージレベルを一定にして、パッケージレベルを定数としてコネクタのパラメータを初期化することはできます。しかし、なぜあなたの 'x'配列にアクセスできないコンポーネントはそのサイズを知る必要がありますか?私は、ここでより根本的な建築上の問題があると思います。 –