When most remote API functions are called, they will be translated into commands that might travel to the server, and come back as a command reply from the server. The operation mode of a remote API function defines what exactly happens to those commands and command replies:
simx_opmode_oneshot
Non-blocking mode. The command is sent and a previous reply to the same command returned (if available). The function doesn't wait for the actual reply.
simx_opmode_oneshot_wait
Blocking mode. The command is sent, and the function will wait for the actual reply and return it (if the function doesn't time out). The received command reply will be removed from the inbox buffer (other operation modes will leave their command replies in the inbox buffer)
simx_opmode_streaming + alpha
Non-blocking mode. The command is sent and a previous reply to the same command returned (if available). The command will be continuously executed on the server side. The function doesn't wait for the actual reply. Alpha is a value between 0-65535 representing the delay in ms wanted, before the same command gets executed again on the server side.
simx_opmode_oneshot_split + beta
Non-blocking mode. The command is sent in small chunks, and a previous reply to the same command returned (if available). The server will also send the reply in small chunks. The function doesn't wait for the actual reply. Beta is a value between 100 and 65535 representing the maximum chunk size in bytes to send. Small values won't slow down the communication framework, but it will take more time until the full command has been transferred. With large values, commands are transferred faster, but the communication framework might appear frozen while chunks are being transferred.
simx_opmode_streaming_split + beta
Non-blocking mode. The command is sent in small chunks and a previous reply to the same command returned (if available). The command will be continuously executed on the server side, which will also send the replies in small chunks. The function doesn't wait for the actual reply. Beta is a value between 100 and 65535 representing the maximum chunk size in bytes to send. Small values won't slow down the communication framework, but it will take more time until the full command has been transferred. With large values, commands are transferred faster, but the communication framework might appear frozen while chunks are being transferred.
simx_opmode_discontinue
Non-blocking mode. The command is sent and a previous reply to the same command returned (if available). A same command will be erased from the server side if the command is of streaming or continuous type. The same will happen on the client's input buffer. The function doesn't wait for the actual reply.
simx_opmode_buffer
Non-blocking mode. A previous reply to the same command is returned (if available). The command is not send, nor does the function wait for the actual reply.
simx_opmode_remove
Non-blocking mode. A previous reply to the same command is cleared from the input buffer (if available). The command is not send, nor does the function return any specific values, except for the error code. Can be useful to free some memory on the client side.
|