1

Matlab S-Function の複数の関数でオブジェクトを使用する必要があります。オブジェクトはライブラリとして使用され、サーバーとの接続を設定し、各ループでデータを取得し、シミュレーションの最後に閉じる必要があります。オブジェクトの使用は次のようになります。

ClassX ObjectX;

[Handle clientID]=ObjectX.setConnection(...);

while(coonection)
 [result]=ObjectX.getPosition(Handle ClientID,...);
 [result]=ObjectX.getAngle(Handle ClientID,...);
 ...
end

[result]=ObjectX.CloseConnection(...);

すべてのループで通信をインスタンス化して閉じるのは便利ではありません。オブジェクトを作成して " " に接続を設定し、" function setup(block)" のデータを更新して " function Update(block)" の接続を閉じたいのfunction Terminate(block)ですが、これを行うには、"ObjectX" と "clientID" を関数間で共有する必要があります。

あなたが私を助けてくれることを願っています。

4

1 に答える 1

1

一度インスタンス化され、要求するたびに同じインスタンスを返す Singleton クラスを使用できます。

classdef (Sealed) SingleInstance < handle
   methods (Access = private)
      function obj = SingleInstance
      end
   end

   methods (Static)
      function singleObj = getInstance
         persistent localObj
         if isempty(localObj) || ~isvalid(localObj)
            localObj = SingleInstance;
         end
         singleObj = localObj;
      end
   end

   method (Access = public)
       function setup(obj, block)
       end
       function update(obj, block)
       end
       function terminate(obj, block)
       end
   end
end

詳細はこちら

于 2014-04-04T12:49:30.440 に答える