在此answer中指出: 当您想从dji-mobile sdk接收数据时,可以设置一个回调函数。
然后:
只要从MSDK接收到数据,OSDK就会调用用户定义的回调。
这是否意味着,如果我有这样的代码:
void fromMobileSDKCallback(
Vehicle* vehicle, RecvContainer recvFrame, UserData userData) {
//statements with recvFrame;
// update a global variable recvGlobal
}
vehicle->moc->setFromMSDKCallback(fromMobileSDKCallback, linuxEnvironment);
然后,在以后的程序中,像这样的块:
while(true) {
// check if recvGlobal is updated
}
将起作用,并且我将能够无限期地看到recvGlobal中反映的更改?
谢谢。
答案 0 :(得分:0)
我对Onboard SDK没有太多经验,但是从理论上讲,我相信答案是肯定的,您的方法应该可行。
在相反的情况下,我使用移动SDK和sendDataToOnboardSDKDevice(参见我的currently unanswered question)以及通过其他移动回调(startMission,SdCardCallbacks等)做了类似的操作,在这些回调中,我更改了全局变量并更新了其他地方的东西。
因此,原则上答案是肯定的,但是我对板载sdk(c ++?)的了解还不够,知道您的特定代码是否已正确实现。