<p>经过长时间的反复尝试和@m-spiller的帮助,我找到了解决办法。在</p>
<pre><code>function2 = None
def open_can(self):
self.mCANoeApp = CANoe.Application()
self.mCANoeMeasurement = self.mCANoeApp.Measurement # change here: no cast necessary
self.mCANoeEnv = CANoe.Environment(self.mCANoeApp.Environment)
self.mCANoeBus = CANoe.Bus(self.mCANoeApp.get_Bus("CAN"))
self.mCANoeSys = CANoe.System(self.mCANoeApp.System)
self.mCANoeNamespaces = CANoe.Namespaces(self.mCANoeSys.Namespaces)
self.mCANoeCAPL = CANoe.CAPL(self.mCANoeApp.CAPL)
self.mCANoeMeasurement.OnInit += CANoe._IMeasurementEvents_OnInitEventHandler(self.OnInit)
# change here also: explained below
def OnInit(self):
global function2
function2 = CANoe.CAPLFunction(mCANoeCAPL.GetFunction('MyTime')) # cast here is necessary
def callFunction(self):
result = function2.Call()
</code></pre>
<p>初始代码有什么问题?</em></strong></p>
<p>问题是,我试图在度量开始后为变量赋值。<br/>
如第2.7章<a href="https://assets.vector.com/cms/content/know-how/_application-notes/AN-AND-1-117_CANoe_CANalyzer_as_a_COM_Server.pdf" rel="nofollow noreferrer">here</a>所述,<strong>只能在测量对象的OnInit事件处理程序中对变量赋值。</strong></p>
<p>我添加了这一行,研究文档:</p>
^{pr2}$
<p>添加后,在init上执行OnInit函数,并将CAPL函数分配给一个变量,然后我可以使用该变量来调用该函数。在</p>
<p>再次感谢你,@m-spiller!在</p>