串口通讯
设置超时时间
设置对应的串口超时时间。
lebai.set_serial_timeout(compath, timeout)
参数说明:
参数 类型 说明 compath string 串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2' timeout int 超时时间,单位毫秒(ms)。默认800ms 返回值:无返回值。
- 使用示例:
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)
compath = '/dev/ttyS1'
timeout = 100
lebai.set_serial_timeout(compath, timeout)
设置波特率
方法:lebai.set_serial_baud_rate(compath, baud_rate)
设置对应的串口波特率。参数 类型 说明 compath string 串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2' baud_rate int 串口波特率。默认115200 返回值:无返回值。
- 使用示例:
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)
compath = '/dev/ttyS1'
baud_rate = 9600
lebai.set_serial_baud_rate(compath, baud_rate)
设置奇偶校验位
设置对应的串口的奇偶校验方式。
lebai.set_serial_parity(compath, parity)
- 参数说明:
参数 类型 说明 compath string 串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
lebai.set_serial_parity(compath, parity)
参数说明:
参数 类型 说明 compath string 串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2' parity string 奇偶校验方式(None: 无奇偶校验; Odd: 奇校验; Even: 偶校验)。默认无奇偶校验位 返回值:无返回值。
- 使用示例:
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)
compath = '/dev/ttyS1'
parity = 'None'
rst = lebai.set_serial_parity(compath, parity)
print(rst)
发送数据
通过串口发送数据信息,发送数据以数组形式传递。
lebai.write_serial(compath, data)
参数说明:
参数 类型 说明 compath string 串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2' data list 待发送的u8数组 返回值:无返回值。
- 使用示例:
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)
compath = '/dev/ttyS1'
timeout = 100
lebai.set_serial_timeout(compath, timeout)
baud_rate = 9600
lebai.set_serial_baud_rate(compath, baud_rate)
parity = 'None'
lebai.set_serial_parity(compath, parity)
str = "123"
lebai.write_serial(compath, [ord(char) for char in str]) # 发送字符串
lebai.write_serial(compath, [49, 50, 51]) # 发送字符ASCII 码
lebai.write_serial(compath, [0x31, 0x32, 0x33]) # 发送HEX 码
接收数据
通过串口接收u8数组数据。
data = lebai.read_serial(compath, len)
参数说明:
参数 类型 说明 compath string 串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2' len string 单次接收的最大缓冲长度,可空,默认64字节。 返回值: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)
compath = '/dev/ttyS1'
timeout = 100
lebai.set_serial_timeout(compath, timeout)
baud_rate = 9600
lebai.set_serial_baud_rate(compath, baud_rate)
parity = 'None'
lebai.set_serial_parity(compath, parity)
try:
data = lebai.read_serial(compath,3) #读取的数据长度达不到,会报超时,要注意读取数据时的处理
print(data) #打印数据 以每个字节对应的ASCII码值整数类型展示出来 例如 收到 0xAA 0x56 打印显示[170,86]
hex_data = []
for byte in data:
hex_data.append(hex(byte))
print(hex(byte))
print(hex_data) #打印十六进制形式
except Exception as e:
print('read_serial error :%s'%e)