/dist/images/branding/favicon

Issue on receiving data packet QX287

Discussion in 'MōVI Pro API' started by Chong Kwan Lok, Jul 11, 2017.

  1. Chong Kwan Lok

    Chong Kwan Lok New Member

    Joined:
    Jul 4, 2017
    Messages:
    9
    Likes Received:
    0
    Hi all! There are some questions on receiving the data packet QX287.

    1.I would like to ask about the API documentation "7. Implement a custom callback send the packet to comm port function that will send the constructed message to the communication port, or intermediate buffer." Does it mean I need to set the values manually to send out the packets of QX277? Or there are some codes in C that I can implement to send the packets of QX277 with the Freefly code provided?

    2. I looked into the wire definition of the QX287 and I could not find the representation of Gimbal RR, RX, RY, RZ. What are the bits inside represented? I knew that they are all 16-bit long integer but I want to know the specific meaning of each bit.

    3. I found that the received packet changed a little bit comparing to the one which received one second before. And I checked that the packet that I sent was continuously the same. Is it normal to have some diversity owing to the noise to the system?

    4. When I sent the QX277 packets to the MōVI Pro, I analyze the data in the packet and I found that there were some dummy data in the first few bits which were not stated in the API documentation. However, the MōVI Pro worked well with the programmer. Therefore, I would like to ask is whether it is normal to have some dummy variables before the 'Q' and 'X' headers appear or not.

    For your reference, I am neither using Arduino and STM32. I am using ICD 3 to compile the code. Will there be any difference in the coding among this two programming software? It would be my honor if you can solve these questions in my head! Thanks in advance!!
     
  2. Deniz Ozgoren

    Deniz Ozgoren Support Mage
    Staff Member

    Joined:
    Dec 17, 2015
    Messages:
    273
    Likes Received:
    84
    I recommend looking at the Arduino examples to see the most basic implementation of the API. That can help you understand your first question: https://docs.google.com/document/u/1/d/16L65isO7Ifh3iWyqnqK69DHKzTWpJYlfl-hDMx7ABkY/edit

    RR, RX, RY, RZ -> They represent a quaternion

    "Will there be any difference in the coding among this two programming software?"
    • Any platform that can run C code and can output a serial can use the API. Once you setup the API and then make it generate a QX packet, its your responsibility to send it out as a serial command on your platform.
     
  3. Deniz Ozgoren

    Deniz Ozgoren Support Mage
    Staff Member

    Joined:
    Dec 17, 2015
    Messages:
    273
    Likes Received:
    84
    Also, need to look into updating the documentation. I received this message and didn't had a chance to look and verify yet. But sharing with you: "...It appears the API Doc is missing 2 bytes for both the QX277 and QX287 packets. I've taken this into account while developing the Java/C# APIs..."
     
  4. Andy Johnson-Laird

    Andy Johnson-Laird Administrator
    Staff Member

    Joined:
    Jul 31, 2012
    Messages:
    10,383
    Likes Received:
    1,164
    Deniz: Does this mean that the data fields are off by two bytes from what is described in the documentation? Or are you saying that the message you says that there are just two bytes that have not been documented?

    Cheers
    Andy

    Forensic Software & sUAV / Drone Analyst : Photographer : Videographer : Pilot (Portland, Oregon, USA): Trees=2, Ground=1, Props=11. :(
    The Ground Is The Limit™
    ---------- Forensic Drone Analyst : Forensic sUAV Analyst : Forensic Unmanned Aircraft Analyst : Forensic Drone Expert
     

Share This Page