项目简介
本项目是一个基于C语言的简单库,用于处理NMEA 2000通信协议。它能读取、解析和转换NMEA 2000消息,还包含多个示例程序,可展示如何使用该库与NMEA 2000总线进行通信。此项目主要用于船载设备,支持与Raymarine、TrueHeading AIS、LCJ_CV7 - W_M风传感器等设备通信。
项目的主要特性和功能
- NMEA 2000消息解析:支持多种NMEA 2000 PGN消息解析,涵盖系统时间、舵角、船首方向、磁偏角、速度、水深、位置、风数据等。
- YDWG - 02设备支持:可通过YDWG - 02设备连接到NMEA 2000总线,实现与Raymarine STNG总线的通信。
- 示例应用程序
nmea2000 - bus - dumper
:详细记录NMEA 2000消息日志。nmea2000 - data - viewer
:基于curses的简单仪表盘应用程序,实时显示NMEA 2000数据。nmea2000 - simple - msg
:接收和显示简单的NMEA 2000消息。ydwg - socketcan - gateway
:用于在SocketCAN和YDWG - 02设备之间进行通信的网关。
安装使用步骤
1. 进入项目目录
假设用户已经下载了本项目的源码文件,进入项目目录。
2. 编译项目
使用以下命令编译项目:
bash
make
编译完成后,生成的可执行文件将位于build
目录下。
3. 运行示例程序
- 运行
nmea2000 - bus - dumper
:bash LD_LIBRARY_PATH=build build/nmea2000 - bus - dumper
- 运行
nmea2000 - data - viewer
:bash LD_LIBRARY_PATH=build build/nmea2000 - data - viewer
- 运行
nmea2000 - simple - msg
:bash LD_LIBRARY_PATH=build build/nmea2000 - simple - msg
4. 使用YDWG - SocketCAN网关
如果需要与Victron Energy产品(如Cerbo)集成,可按以下步骤操作:
1. 使用Venus SDK构建项目:
bash
docker build -t venus - sdk:0.1 .
docker run -v $(pwd):/work - it venus - sdk:0.1 bash
cd work
make
2. 将生成的libnmea2000.so
和ydwg - socketcan - gateway
复制到Venus设备。
3. 安装依赖库:
bash
opkg install libncurses5
4. 配置SocketCAN接口:
bash
ip link add dev vcan0 type vcan
ip link set dev vcan0 down
ip link set vcan0 mtu 16
ip link set dev vcan0 up
5. 运行网关程序:
bash
LD_LIBRARY_PATH=. ./ydwg - socketcan - gateway
注意事项
- 该项目依赖于YDWG - 02设备进行NMEA 2000通信,需确保设备已正确配置。
- 示例程序中的IP地址和端口目前是硬编码的,可能需要根据实际情况进行修改。
许可证
本项目采用开源许可证,具体细节请查看LICENSE
文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】