信号量交互
信号量主要用于进程间或和外部系统进行通信。
系统内置 256 个信号量,下标从 0 开始到 255。每个信号量都可以存储一个 32 位整数类型值,取值范围 -2147483648~2147483647。
系统重新启动后,所有信号量都会被重新置为 0。
设置信号量
lebai.set_signal(index, value)
- 参数说明: 设置对应信号量的值。
参数 类型 说明 index int 信号量下标 value 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)
lebai.set_signal(0, 1)
获取信号量
获取对应信号量的值。
value = lebai.get_signal(index)
- 参数说明:
参数 类型 说明 index int 信号量下标 - 返回值: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)
参数说明:
参数 类型 说明 index int 信号量起始下标 values 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)
lebai.set_signal(0, [1,2,3]) #设置信号量0,1,2三个的值分别为1,2,3
获取信号量
获取连续多个信号量的值。
value = lebai.get_signals(index,len)
- 参数说明:
参数 类型 说明 index int 信号量起始下标 len int 待获取的信号量数量 - 返回值: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)
- 参数说明:
参数 类型 说明 index int 信号量下标 value 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.add_signal(0, 10) #信号量10 数值增加10
value = lebai.get_signal(0)
print(value)