目錄
- 功能概要
- 源碼獲取
- 源碼內容結構
- 源碼與移植
功能概要
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: 版本定義文件。
源碼與移植
后續會將這個庫移植到單片機上,在單片機進行使用,這個等我移植成功了之后在進行分享。
本文完,感謝閱讀,感謝關注!