V-REP教程(八)Remote API function operation modes

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DanielDingshengli/article/details/86467871

远程API函数操作模式

在这里插入图片描述

这个是在Python中调用VREP的代码,函数的最后一项即是操作模式,本文解释下含义。

用处

当远程API函数被调用时,它们将被转换成传输到服务器的命令,然后作为命令回复从服务器返回。远程API函数的操作模式定义了这些命令的具体操作方式和命令应答

simx_opmode_oneshot 单触发(一次就好)

非阻塞模式。将发送该命令,并返回先前对同一命令的应答(如果可用)。函数不等待实际的回复。

simx_opmode_blocking (or simx_opmode_oneshot_wait)(一次就好,必须等到天荒地老)

阻塞模式。命令被发送,函数将等待实际的应答并返回它(如果函数没有超时)。接收到的命令应答将从收件箱缓冲区中删除(其他操作模式将命令应答保留在收件箱缓冲区中)。
理解进程间通信的知识点很重要。
正在运行的进程由于提出系统服务请求(如I/O操作),但因为某种原因未得到操作系统的立即响应,或者需要从其他合作进程获得的数据尚未到达等原因,该进程只能调用阻塞原语把自己阻塞,等待相应的事件出现后才被唤醒。
Python:Hello(), 收到请回复!(阻塞模式)
VREP:Received Hello(),Excute in 1s.Okay,send reply().
Python:Next command.

simx_opmode_streaming + alpha(一万次够不够模式)

非阻塞模式。:将发送该命令,并返回先前对同一命令的应答(如果可用)。该命令将在服务器端持续执行。函数不等待实际的回复。Alpha是0-65535之间的值,表示在服务器端再次执行相同的命令之前,所需的延迟(ms毫秒)。

simx_opmode_oneshot_split + beta(不推荐使用)

该命令以小块的形式发送,并返回先前对同一命令的回复(如果可用)。服务器还将以小块的形式发送回复。函数不等待实际的回复。Beta值在100到65535之间,表示要发送的最大块大小(以字节为单位)。较小的值不会降低通信框架的速度,但是在传输完整的命令之前,需要花费更多的时间。使用大值时,命令传输速度更快,但在传输块时,通信框架可能会发生冻结。

simx_opmode_streaming_split + beta (不推荐使用)

simx_opmode_discontinue(VIP命令)

非阻塞模式。将发送该命令,并返回先前对同一命令的应答(如果可用)。如果命令是流式或连续式的,则从服务器端删除相同的命令。在客户机的输入缓冲区上也会发生同样的情况。函数不等待实际的回复。
先前的同类命令给我让步。

simx_opmode_buffer(留中待发)

非阻塞模式。返回先前对同一命令的应答(如果可用)。命令没有发送,函数也不等待实际的回复。

simx_opmode_remove(收回成命)

先前对同一命令的应答将从输入缓冲区中清除(如果可用)。命令没有发送,函数也不返回任何特定的值,除了返回的代码。可以在客户端释放一些内存。

猜你喜欢

转载自blog.csdn.net/DanielDingshengli/article/details/86467871