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 回答