Answers.Body: <p>I have the same observation as you, it seems to be sent as soon as the brick receives the command. </p>
  
  <p>A workaround that I have found is to send a "stop motor" command after every movement, this way you know when the motor is stopped for sure.</p>
  
  <p>Out of curiosity, what library are you using?</p>
  
  <p>EDIT:</p>
  
  <p>Have you been capturing the packets that the EV3 sends back to the computer?</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-07T10:42:52.903Z
Answers.Text: I'm trying to write my own framework in Objective-C:
  1) WiFi for iOS based on GCDAsyncSocket and GCDAsyncUdpSocket
  2) Bluetooth for OS X based on IOBluetooth.
  
  For better understanding this helped me a lot: http://stackoverflow.com/questions/24253509/using-c-to-get-data-from-a-lego-ev3-sensor.
  
  I'm using Lego Mindstorms EV3 Home Edition Software with EV3 brick connected via Bluetooth and PacketLogger for capturing sended/received commands.
Answers.UserDisplayName: user4053
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-06T16:25:37.797Z
Answers.LastActivityDate: 2015-08-06T18:15:30.860Z
Answers.LastEditDate: 2015-08-06T18:15:30.860Z
Answers.UserDisplayName: Bob
Answers.Body: <p>The DIRECT_REPLY is sent when all of the operations in the DIRECT_COMMAND are completed. (Side note: you can have more than one operation in a direct command).</p>
  
  <p>So the better question might be "when does the motor rotation operation complete?". It completes immediately and moves to the next operation in the direct command. This is why you get a reply before the motor movement is completed.</p>
  
  <p>You could try appending opOUTPUT_READY to your direct command to see if it will delay the reply.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-08-09T04:57:22.963Z
Answers.LastActivityDate: 2015-08-09T04:57:22.963Z
Answers.UserDisplayName: David Lechner
Body: <p>For example: I've sent DIRECT_COMMAND_REPLY to rotate the motor for 720 deg. When EV3 brick should send reply:</p>
  
  <ol>
  <li>before motor finished rotation (right after my command was received) or</li>
  <li>after motor finished rotation?</li>
  </ol>
  
  <p>Now, I have feeling that reply is sent right after my command was received by EV3 brick.</p>
  
Tags: <ev3>
Title: EV3 - At what time DIRECT_REPLY is sent by brick?
UserDisplayName: user4053
ThreadText: # EV3 - At what time DIRECT_REPLY is sent by brick?
  
  (Asked by: username_0 on 2015-08-05)
  
  For example: I've sent DIRECT\_COMMAND\_REPLY to rotate the motor for 720 deg. When EV3 brick should send reply:
  
  1. before motor finished rotation (right after my command was received) or
  2. after motor finished rotation?
  
  Now, I have feeling that reply is sent right after my command was received by EV3 brick.
  
  **Tags:** ev3
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2015-08-06. Score: 1
  
  I have the same observation as you, it seems to be sent as soon as the brick receives the command.
  
  A workaround that I have found is to send a "stop motor" command after every movement, this way you know when the motor is stopped for sure.
  
  Out of curiosity, what library are you using?
  
  EDIT:
  
  Have you been capturing the packets that the EV3 sends back to the computer?
  
  > **Comments:**
  > **username_0**: I'm trying to write my own framework in Objective-C: 1) WiFi for iOS based on GCDAsyncSocket and GCDAsyncUdpSocket 2) Bluetooth for OS X based on IOBluetooth.  For better understanding this helped me a lot: http://stackoverflow.com/questions/24253509/using-c-to-get-data-from-a-lego-ev3-sensor.  I'm using Lego Mindstorms EV3 Home Edition Software with EV3 brick connected via Bluetooth and PacketLogger for capturing sended/received commands.  
  
  ---
  
  ### Answer by username_2 on 2015-08-09. Score: 0
  
  The DIRECT\_REPLY is sent when all of the operations in the DIRECT\_COMMAND are completed. (Side note: you can have more than one operation in a direct command).
  
  So the better question might be "when does the motor rotation operation complete?". It completes immediately and moves to the next operation in the direct command. This is why you get a reply before the motor movement is completed.
  
  You could try appending opOUTPUT\_READY to your direct command to see if it will delay the reply.
  
  
  ---
  
  