如何在 OpenRTI 中使 rti 发送回调?例如,保留一个带有reserveObjectInstanceName
_rtiAmbassador->reserveObjectInstanceName(name);
错误:
在抛出 'rti1516e::ObjectInstanceNameNotReserved' 的实例后调用终止
如何在 OpenRTI 中使 rti 发送回调?例如,保留一个带有reserveObjectInstanceName
_rtiAmbassador->reserveObjectInstanceName(name);
错误:
在抛出 'rti1516e::ObjectInstanceNameNotReserved' 的实例后调用终止
每次调用 RTI 后,要获得回调,您需要调用 evokeCallback()
如果您在调用时使用 HLA 1516e API(而不是 HLA 1516 或 HLA 1.3),则connect
可以指定 a CallbackModel
which is SYNCHRONOUS
or 或ASYNCHRONOUS
. 在同步回调模型中,联邦必须调用该方法evokeCallback
以触发 RTI 发送排队的任何内容。在异步中,回调是自动发送的。
在这种情况下你应该做的是有这样的事情:
_rtiAmbassador->reserveObjectInstanceName(std::wstring(L"MyObject"));
_rtiAmbassador->evokeMultipleCallbacks();
MyFederateAmbassador::objectInstanceNameReservationSucceeded(std::wstring const & name){
_rtiAmbassador->registerObjectInstance(handle, std::wstring(L"MyObject"));
}