You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Raspberry Pi、SignalK发送NMEA 2000指令重置风向仪航向?

重置Autonnic风向仪航向的实现方法

根据设备说明,发送PGN 127257(6字节数据,首字节为7,其余字节为0)即可将航向重置为0,以下是在Open Plotter + Signal K环境下的三种实现方式:

方法1:通过Signal K Web控制台发送

  • 登录Signal K Web界面(默认地址:http://raspberrypi:3000)
  • 进入Data Inputs & Outputs菜单,找到NMEA 2000输出设置项
  • 选择「发送自定义PGN」功能,输入PGN编号127257
  • 构造6字节数据:第一个字节设为0x07(十进制7),剩余5个字节设为0x00
  • 点击发送按钮,完成航向重置

方法2:使用命令行工具发送

Open Plotter默认预装can-utils工具集,可直接通过命令行发送CAN帧:

  1. 先确认NMEA 2000对应的CAN接口(通常为can0或can1),执行命令:
    ip link show
    
  2. 发送目标CAN帧(以can0为例):
    cansend can0 18F001FF#070000000000
    
    说明:18F001FF是PGN 127257对应的广播CAN ID,#后为6字节数据(首字节07,其余为00)

方法3:通过Signal K脚本发送

利用Signal K的Node.js客户端编写简单脚本:

  1. 创建脚本文件reset-heading.js,内容如下:
    const { Client } = require('signalk-client');
    const client = new Client({ url: 'ws://localhost:3000/signalk/v1/stream' });
    
    client.on('connect', () => {
      const n2kMsg = {
        pgn: 127257,
        priority: 3,
        destination: 255, // 广播地址
        data: Buffer.from([0x07, 0x00, 0x00, 0x00, 0x00, 0x00])
      };
      client.sendN2KMessage(n2kMsg);
      console.log('航向重置命令已发送');
      client.close();
    });
    
    client.connect();
    
  2. 在终端执行脚本:
    node reset-heading.js
    

验证提示

发送命令后,可通过candump can0命令监听CAN总线,确认目标帧是否成功发送;若设备无响应,可尝试重启Autonnic风向仪后再次发送。

内容的提问来源于stack exchange,提问作者Matthew Barraud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:35:21