信号量交互

信号量主要用于进程间或和外部系统进行通信。
系统内置 256 个信号量,下标从 0 开始到 255。每个信号量都可以存储一个 32 位整数类型值,取值范围 -2147483648~2147483647。
系统重新启动后,所有信号量都会被重新置为 0。

设置信号量

lebai.set_signal(index, value)
  • 参数说明: 设置对应信号量的值。
    参数类型说明
    indexint信号量下标
    valueint设置的信号量值
  • 返回值:无返回值。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
lebai.set_signal(0, 1)

获取信号量

获取对应信号量的值。

value = lebai.get_signal(index)
  • 参数说明:
    参数类型说明
    indexint信号量下标
  • 返回值:int 类型。返回对应信号量的值。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
value= lebai.get_signal(0)
print(value)

设置连续多个信号量

设置连续多个信号量的值。

lebai.set_signals(index, values)
  • 参数说明:

    参数类型说明
    indexint信号量起始下标
    valueslist设置的信号量值
  • 返回值:无返回值。

  • 使用示例:

import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
lebai.set_signal(0, [1,2,3]) #设置信号量0,1,2三个的值分别为1,2,3

获取信号量

获取连续多个信号量的值。

value = lebai.get_signals(index,len)
  • 参数说明:
    参数类型说明
    indexint信号量起始下标
    lenint待获取的信号量数量
  • 返回值:list 类型。返回连读多个信号量对应的值。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
values= lebai.get_signals(0, 3)
print(values)

增加信号量数值

增加指定下标的信号量值。主要数值范围,有可能产生溢出。

lebai.add_signal(index, value)
  • 参数说明:
    参数类型说明
    indexint信号量下标
    valueint待增加的信号量值
  • 返回值:无返回值。
  • 使用示例:
import lebai_sdk
lebai_sdk.init()
import nest_asyncio
nest_asyncio.apply()
robot_ip = "192.168.4.145" 
lebai = lebai_sdk.connect(robot_ip, False)
value = lebai.get_signal(0)
print(value)
lebai.add_signal(0, 10) #信号量10 数值增加10
value = lebai.get_signal(0)
print(value)