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

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中使用Kotlin值类   在Hadoop中表示大文本块作为键的java   java安卓工作室;布局设计视图;   字典Java确定字符串是否以映射中的键开头   JavaG1:混合gc和完全gc之间有什么区别?   java Camunda升级组织。阿帕奇。平民语言错误   java Scanner类具有NextLine无限循环   安卓 GCM Java服务器:发送带有重音字符的消息   java我正在构建一个兴趣计算应用程序,我的项目构建良好,有1个警告,但它不会在我的设备上打开   java在Tilera TileGX上构建OpenJDK 8   GUI中的java惰性初始化与急切初始化   java JodaTime四舍五入到最近的一刻钟   java如何限制菜单。SpringRoo中的jspx可以避免对其他用户的实体执行CRUD操作   java我应该将缓冲流链接到输入流,还是在将声音库作为嵌入式资源加载时使用URL类?