可寻址数据包的易读编码
leap-protocol的Python项目详细描述
用于Python的L3aP
python可寻址包的易读编码
规范文件: https://leap-protocol.github.io/
安装
pip install leap-protocol
基本用途
对数据包进行编码:
importleap-protocolasleapcodec=leap.Codec("leap-config.json")packet=leap.Packet("set","led/red",True)encoded=codec.encode(packet)...
解码数据包
^{pr2}$使用
编解码器类
codec=codec(配置文件路径)
- config_file_path指向L3aP配置文件的字符串。在
- codecL3aP codec对象
实例化L3aP编解码器对象,用于将数据包编码为字符串并将字符串解码为数据包。在
示例:
codec=leap.Codec("leap-config.json")
字节=编码(数据包)
- packets一个
leap.Packet
对象或leap.packet
对象的列表。在 - bytesutf-8字节字符串
将一个或多个数据包编码为utf-8字节字符串。在
示例:
packet_red=leap.Packet("set","led/red",True)packet_blue=leap.Packet("set","led/blue",True)encoded=codec.encode([packet_red,packet_blue])
(余数,包)=解码(字节)
- bytesutf-8编码字节字符串
- remainment未使用的字节(如果可用)
- packets一个或多个解码包的数组,如果没有,则为空
将utf-8字节字符串解码为一个或多个数据包
示例:
received_bytes+=rx.read()received_bytes,packets=codec.decode(received_bytes)forpacketinpackets:...
数据=解包(数据包)
- packeta
leap.Packet
- data一个以地址路径为键(例如
led/red
)映射到各自值的字典。在
从数据包中提取字典,将地址路径映射到各自的值。在
示例:
ifpacket.category=="set":commands=codec.unpack(packet)if'led/red'incommands:led_red.set(commands['led/red']...
类数据包
packet=packet(类别,path,payload)
- category包的类型
- path(可选)有效负载数据的根路径
- payload(可选)根路径所伴随的数据
- packet一个L3aP数据包对象
构造用于编码的L3aP数据包。注意,当路径是父路径时,有效负载可以是一个数组,并一次设置多个字段。在
示例:
accelerometer_packet=leap.Packet("pub","imu/accel",[accel_x,accel_y,accel_z])disable_packet=leap.Packet("set","control/balance/disable")...
添加(path,payload)
- path有效负载数据的根路径
- payload(可选)根路径所伴随的数据
添加数据包的路径和可选的有效负载。 这可用于创建复合数据包,允许同时处理多组数据。在
示例:
sensor_packet=leap.Packet("pub","imu/accel",[accel_x,accel_y,accel_z])sensor_packet.add("barometer/pressure",baro_pressure)...
类别
数据包的类别字符串。在
示例:
ifpacket.category=="pub":update_model(codec.unpack(packet))...
验证
结果=验证(配置文件)
- config_file一个有效的L3aP配置文件
- resultfalse如果配置文件无效,则为true
检查配置文件的内容是否有错误。将第一次失败的详细信息打印到stdout。对回归测试有用。在
示例:
...deftest_valid_config(self):assert(leap.verify("leap-config.json"))...
命令行
生成默认json配置文件:
python3 -m leap --json filename.toml
生成默认的toml配置文件:
python3 -m leap --toml filename.toml
验证toml/json配置文件的内容:
python3 -m leap --validate filename.json
帮助:
python3 -m leap --help
- 项目
标签: