串口通讯

设置超时时间

设置对应的串口超时时间。

lebai.set_serial_timeout(compath, timeout)
  • 参数说明:

    参数类型说明
    compathstring串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
    timeoutint超时时间,单位毫秒(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)
    设置对应的串口波特率。

    参数类型说明
    compathstring串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
    baud_rateint串口波特率。默认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)
  • 参数说明:
    参数类型说明
    compathstring串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
lebai.set_serial_parity(compath, parity)
  • 参数说明:

    参数类型说明
    compathstring串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
    paritystring奇偶校验方式(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)
  • 参数说明:

    参数类型说明
    compathstring串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
    datalist待发送的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)
  • 参数说明:

    参数类型说明
    compathstring串口地址。 机箱上对应485串口是'/dev/ttyS1',232串口是'/dev/ttyS3',TTL串口是'/dev/ttyS2'
    lenstring单次接收的最大缓冲长度,可空,默认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)