使用pipeline建立2个通道,如果MSDK只连接了一个通道,在退出后再次启动时,另外个通道就永远也连接不上了,...

Completed

Comments

13 comments

  • Waitley

    是不是static问题?

    0
    Comment actions Permalink
  • DJI Developer Support
    连不上时是有什么报错?另外sample的封装上MOP接口:MopServer::accept可能存在耦合,可以在dji_mop_server.cpp中另外基于底层的接口mop_bind_channel和mop_accept_channel分开封装bind和accept接口,确保通道退出仅将退出的通道ID进入accept状态。
    0
    Comment actions Permalink
  • Waitley

    ID是不一样之后,感觉像是析构的时候执行了OsdkCommand_DestroyMopTask,关闭导致的

    0
    Comment actions Permalink
  • Waitley

    降accept 拆成  bind和  accept?

    0
    Comment actions Permalink
  • Waitley

    使用的 map<> pipeline,多线程同时访问会有冲突吧,客户端断开,释放的时候经常崩溃

    0
    Comment actions Permalink
  • Waitley

    MSDK连不上的信息是,目标设备拒绝连接

    0
    Comment actions Permalink
  • DJI Developer Support
    目标设备拒绝连接应该是OSDK没有重新进入accept状态,accept拆分我将部分代码修改放到论坛上了,可以参考: https://bbs.dji.com/thread-303694-1-1.html “使用的 map<> pipeline,多线程同时访问会有冲突吧”这部分代码可以根据实际处理改掉。自己管理pipline,这个可以不要。
    0
    Comment actions Permalink
  • Waitley

    修改成bind和accept之后还是存在,其中一个通道未连接时,之后连不上的情况,能否提供一下addpipeline.delpipeline函数。

    0
    Comment actions Permalink
  • Waitley

    0
    Comment actions Permalink
  • DJI Developer Support
    om sample中就是两个通道,两个通道是独立的,没有关系。再有问题是自己代码的问题了,自己再检查一下实现代码吧。
    0
    Comment actions Permalink
  • Waitley

    两个通道都连上通信是没有问题的,有问题的是,如果某次其中一个通道没启动连接,只连接了一个通道。再退出启动去连接2个通道是,会有一个连不上

    0
    Comment actions Permalink
  • Waitley

    153  154两个通道启动
    我启动MSDK连接了 153
    然后退出
    再启动连不上154

    0
    Comment actions Permalink
  • Waitley

    现在状态是154通道osdk端显示未连接msdk显示连接成功,是否还有可排查的地方

    0
    Comment actions Permalink

Please sign in to leave a comment.