张小龙5-15 11:50 1. 每个SDK都可以单独开发和使用的,但目前M600 Pro不支持PSDK,如果需要传输传感器数据到地面端,OSDK和MSDK就可以了。 2. 建议参考OSDK官方提供的代码示例,https://github.com/dji-sdk/Onboard-SDK/blob/3.9/sample/platform/linux/mobile/main.cpp
ZRYQ5-15 15:58 我是用的是stm32, // Run Mobile Communication sample v->moc->setFromMSDKCallback(parseFromMobileCallback); 这个函数是怎么发送数据到MSDK的 不理解 自定义的数据如何发送
张小龙5-15 16:28 看了下代码,这个不是发送函数,这个是设置数据接收的回调函数。 发送用这个,https://github.com/dji-sdk/Onboard-SDK/blob/3.9/osdk-core/api/src/dji_mobile_device.cpp#L41 [图片] 第一个参数是你要发送数据的地址指针,第二个就是发送的长度
ZRYQ5-16 09:28 1.这个发送 直接将自己的数据发送就可以了吗 关于发送的数据协议在里面是自动完成的吗 直接使用这个函数 会不会影响其他函数(如我在使用这个函数发送 后台的其他函数也在使用这个函数发送) 2.手机端返回的数据通过static void getDataFromMSDKCallback(Vehicle* vehiclePtr , RecvContainer recvFrame , UserData userData); 这个函数接收就可以了吗 这个函数的参数如何设定
张小龙5-19 20:22 1.这个发送 直接将自己的数据发送就可以了吗 关于发送的数据协议在里面是自动完成的吗 直接使用这个函数 会不会影响其他函数(如我在使用这个函数发送 后台的其他函数也在使用这个函数发送) ==>是的,调用这个函数后将自动完成发送,OSDK 3.9的STM32 sample是个裸机代码,不存在后台的其他函数也在使用这个函数发送.... 2.手机端返回的数据通过static void getDataFromMSDKCallback(Vehicle* vehiclePtr , RecvContainer recvFrame , UserData userData); 这个函数接收就可以了吗 这个函数的参数如何设定 ==> 可以,这个函数的用法和参数使用可以参考 setFromMSDKCallback,https://github.com/dji-sdk/Onboard-SDK/blob/3.9/sample/platform/STM32/OnBoardSDK_STM32/User/main.cpp#L193
ZRYQ5-21 19:10 void parseFromMobileCallback(DJI::OSDK::Vehicle* vehicle, DJI::OSDK::RecvContainer recvFrame, DJI::OSDK::UserData userData) { uint16_t mobile_data_id; mobile_data_id = *(reinterpret_cast(&recvFrame.recvData.raw_ack_array)); switch (mobile_data_id) { case 2: v->obtainCtrlAuthority(controlAuthorityMobileCallback); break; case 3: v->releaseCtrlAuthority(controlAuthorityMobileCallback); break; case 5: if(v->getFwVersion() != Version::M100_31) { v->control->action(Control::FlightCommand::startMotor, actionMobileCallback); } else { v->control->armMotors(actionMobileCallback); } break; case 6: if(v->getFwVersion() != Version::M100_31) { v->control->action(Control::FlightCommand::stopMotor, actionMobileCallback); } else { v->control->disArmMotors(actionMobileCallback); } break; default: break; } } 这段代码里面的 mobile_data_id是什么意思, 这个的传输数据协议是怎样的,如何从里面提取出从MOSDK给OSDK发送的数据