freemodbus的兼容性非常好,可以方便的在很多的平台进行移植,这与它的代码架构有很大的关系。
这里我们不考虑代码的移植过程,仅仅分析它的层次结构。
我认为,freemodbus协议实际上是分了三个层次的
1. 应用层(或者说暴露给应用层的接口):
接口定义全部在头文件mb.h中包含,在mb.c中实现。
包括了移植时不需要改动的部分(一些初始化,使能,poll等),还有需要修改或者说实现的部分(注册给定功能码对应的回调处理程序,寄存器相关操作等)。
而且在初始化中通过回调函数指向了第二层的函数接口,相当于为整个程序提供了统一的接口去访问第二层的函数,而不用考虑第二层的改变。
|