如何在 Matlab S-Function 中使用全局对象



我需要在 Matlab S 函数的几个函数中使用一个对象。该对象用作库,需要设置与服务器的连接,在每个循环中从中获取数据,并在仿真结束时关闭它。对象的使用是这样的:

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"。

我希望你能帮助我。

您可以使用

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

更多信息可在此处获得

相关内容

  • 没有找到相关文章

最新更新