目录
- 功能概要
- 源码获取
- 源码内容结构
- 源码与移植
功能概要
libmodbus是一个免费的跨平台支持RTU和TCP的Modbus库,遵循LGPL V2.1+协议。libmodbus支持Linux、Mac Os X、FreeBSD、QNX和Windows等操作系统。libmodbus可以向符合Modbus协议的设备发送和接收数据,并支持通过串口或者TCP网络进行连接。作为一个开源项目,libmodbus库还处于开发测试阶段,代码量还不十分庞大,文档和注释也不够全面,通过对libmodbus源代码的阅读过程,一方面可以进一步理解Modbus协议,同时也可以学习一个好的开源项目的代码组织及开发过程。
源码获取
https://github.com/stephane/libmodbus/tags
源码内容结构
① doc目录: libmodbus库的各API接口说明文档。
② m4目录: 存放GNU m4文件,在这里对理解代码没有意义,可忽略。
③ src目录: 全部libmodbus源文件。
④ tests目录: 包含自带的测试代码 其他文件对理解源代码关系不大,可以暂时忽略
进一步展开src代码目录,如图所示:
各文件作用如下:
① win32: 定义在Windows下使用Visual Studio编译时的项目文件和工程文件以及相关配
置选项等。其中,modbus-9.sln默认使用Visual Studio 2008。
② Makefile.am: Makefile.am是Linux下AutoTool编译时读取相关编译参数的配置文件,
用于生成Makefile文件,因为用于Linux下开发,所以在这里暂时忽略
③ modbus.c: 核心文件,实现Modbus协议层,定义共通的Modbus消息发送和接收函数各功
能码对应的函数。
modbus.h: libmodbus对外暴露的接口API头文件。
④ modbus-data.c: 数据处理的共通函数,包括大小端相关的字节、位交换等函数
⑤ modbus-private.h: libmodbus内部使用的数据结构和函数定义。
⑥ modbus-rtu.c: 通信层实现,RTU模式相关的函数定义,主要是串口的设置、连接及消
息的发送和接收等。
modbus-rtu.h: RTU模式对外提供的各API定义
modbus-rtu-private.h: RTU模式的私有定义。
⑦ modbus-tcp.c: 通信层实现,TCP模式下相关的函数定义,主要包括TCP/IP网络的设置
连接、消息的发送和接收等。
modbus-tcp.h: 定义TCP模式对外提供的各API定义
modbus-tcp-private.h: TCP模式的私有定义。
⑧ modbus-version.h.in: 版本定义文件。
源码与移植
后续会将这个库移植到单片机上,在单片机进行使用,这个等我移植成功了之后在进行分享。
本文完,感谢阅读,感谢关注!