可扩展位矢量通信(协议)

XBVC的Python项目详细描述


xbvc:可扩展位矢量通信(协议…)
=================br/>


,适合在嵌入式系统中使用,或任何您喜欢的
抛出它。


消息和枚举在yaml中使用以下语法定义:

整数
s16:有符号16位整数
u8:无符号8位整数
s8:有符号8位整数
y[x]:类型为“y”、“x”的数组成员长



}

由于该协议是在考虑嵌入目标的情况下制定的,这对于代码节省空间很重要,请注意,并非所有语言目标都必须遵守此指令
u id:这指定了唯一的消息id,并允许somppe的小扩展性
get-u命令:
-u目标:{host}
-u id:0
-target:u32
-fluff:u8[10]

然后,xbvcgen.py工具将此yaml定义转换为任何受支持平台的源代码(现在是c和python,更多内容请参见下文)。


此源代码包含消息定义、枚举和
框架/消息仲裁机制。用户必须
提供的惟一功能是读/写/init函数和单个消息
处理程序。(注意:消息处理模式因语言而异)例如:


1。在c实现中,用户必须提供:xbvc_platform_init、
xbvc_platform_write和xbvc_read
2。在python实现中,用户必须子类化xbvcedgepoint
,并提供连接、读取和写入函数(请参阅生成的
python代码,以获取提供环回测试的示例)

Python2.7
2.pyyaml(通过pip)
3.Jinja2(通过PIP)

克隆存储库
2。在项目根目录中运行“python setup.py install”。使用
上述模式创建包含消息和枚举的yaml文件。调用xbvcgen.py,传入您的yaml文件作为输入参数,
一个目标文件夹作为输出参数(这将为您创建
),以及目标和语言

./xbvcgen.py-i msgs.yaml-o code-t device-l python

3。将生成的文件集成到构建中(我建议在makefile中将
这个目标设为假的,并将文件复制到
它们的最终目标中)

4。提供特定于平台的功能功能并实现
消息处理程序。

但是,所有生成的代码都是其各自所有者的属性,可以根据他们的意愿获得许可。请参阅
许可证文件以获取GPL的副本。

todo
1。提供python包
2。创建一些平台示例(pyserial、c loopback、c socket、c
serial)
3。添加更多平台(java、c++、go)
4。考虑提供一些烘焙消息(未知消息/
解码问题)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java例外。Lang.Stringindexoutofboundsexception索引超出范围(0)   java Spring引导Freemarker从2.2.0升级失败   重构Java反模式名称?包含对象的对象包含。。。等   用java处理JDBC可能出现的死锁的最佳方法   java无法访问主线程上的数据库,因为它可能会在很长一段时间内锁定UI   java如何将固定大小的画布包装在边框窗格中的滚动窗格居中?   java解析xsd文件后得到空结果   在html页面中表示XML文件的java   socketjava对象流   sql Java越界异常数据库   JavaJBoss7.1.1不会在Mavericks上启动   Twincat ADS事件驱动读取在一段时间后停止工作(Java)   java MyBatis使用生成的ID插入所有   Mojave上缺少MacOS Java控制面板   JavaGuice:如果多次注入相同的依赖项,是否注入了该依赖项的相同实例?