我需要在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“。
我希望你能帮助我。
发布于 2014-04-04 20:49:30
您可以使用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欲了解更多信息,请访问here。
https://stackoverflow.com/questions/22863162
复制相似问题