Skip to content

File syn_n2k.h

FileList > proto > syn_n2k.h

Go to the source code of this file

NMEA 2000 Marine CAN Protocol Stack. More...

  • #include "../common/syn_defs.h"
  • #include "../drivers/syn_can.h"
  • #include "syn_j1939.h"
  • #include <stdbool.h>
  • #include <stddef.h>
  • #include <stdint.h>

Classes

Type Name
struct SYN_N2K_BatteryStatus
Battery Status (PGN 127508).
struct SYN_N2K_CogSogRapid
Rapid Update COG & SOG (PGN 129026).
struct SYN_N2K_DcDetailedStatus
DC Detailed Status (PGN 127506).
struct SYN_N2K_EnvParams
Environmental Parameters (PGN 130310).
struct SYN_N2K_FastPacketRx
NMEA 2000 Fast-Packet RX Re-assembly Context.
struct SYN_N2K_PositionRapid
Rapid Update Position (PGN 129025). Coordinates stored in 1e-7 degrees (signed 32-bit integer).
struct SYN_N2K_VesselHeading
Vessel Heading (PGN 127250).

Public Functions

Type Name
SYN_Status syn_n2k_decode_battery (const SYN_CAN_Frame * frame, SYN_N2K_BatteryStatus * battery)
Decode PGN 127508 (Battery Status) from an 8-byte CAN frame.
SYN_Status syn_n2k_decode_cog_sog_rapid (const SYN_CAN_Frame * frame, SYN_N2K_CogSogRapid * cog_sog)
Decode PGN 129026 (COG & SOG, Rapid Update) from an 8-byte CAN frame.
SYN_Status syn_n2k_decode_dc_detailed (const SYN_CAN_Frame * frame, SYN_N2K_DcDetailedStatus * dc)
Decode PGN 127506 (DC Detailed Status) from an 8-byte CAN frame.
SYN_Status syn_n2k_decode_environment (const SYN_CAN_Frame * frame, SYN_N2K_EnvParams * env)
Decode PGN 130310 (Environmental Parameters) from an 8-byte CAN frame.
SYN_Status syn_n2k_decode_heading (const SYN_CAN_Frame * frame, SYN_N2K_VesselHeading * heading)
Decode PGN 127250 (Vessel Heading) from an 8-byte CAN frame.
SYN_Status syn_n2k_decode_position_rapid (const SYN_CAN_Frame * frame, SYN_N2K_PositionRapid * pos)
Decode PGN 129025 (Position, Rapid Update) from an 8-byte CAN frame.
SYN_Status syn_n2k_encode_battery (uint8_t sa, const SYN_N2K_BatteryStatus * battery, SYN_CAN_Frame * frame)
Encode PGN 127508 (Battery Status) into an 8-byte CAN frame.
SYN_Status syn_n2k_encode_cog_sog_rapid (uint8_t sa, const SYN_N2K_CogSogRapid * cog_sog, SYN_CAN_Frame * frame)
Encode PGN 129026 (COG & SOG, Rapid Update) into an 8-byte CAN frame.
SYN_Status syn_n2k_encode_dc_detailed (uint8_t sa, const SYN_N2K_DcDetailedStatus * dc, SYN_CAN_Frame * frame)
Encode PGN 127506 (DC Detailed Status) into an 8-byte CAN frame.
SYN_Status syn_n2k_encode_environment (uint8_t sa, const SYN_N2K_EnvParams * env, SYN_CAN_Frame * frame)
Encode PGN 130310 (Environmental Parameters) into an 8-byte CAN frame.
SYN_Status syn_n2k_encode_heading (uint8_t sa, const SYN_N2K_VesselHeading * heading, SYN_CAN_Frame * frame)
Encode PGN 127250 (Vessel Heading) into an 8-byte CAN frame.
SYN_Status syn_n2k_encode_position_rapid (uint8_t sa, const SYN_N2K_PositionRapid * pos, SYN_CAN_Frame * frame)
Encode PGN 129025 (Position, Rapid Update) into an 8-byte CAN frame.
SYN_Status syn_n2k_fastpacket_process (SYN_N2K_FastPacketRx * rx, const SYN_CAN_Frame * frame, uint32_t target_pgn, const uint8_t ** out_payload, size_t * out_len)
Process an incoming CAN frame in the Fast-Packet multi-frame RX reassembler.

Detailed Description

Implements NMEA 2000 (IEC 61162-3) marine CAN bus PGN encoders, decoders, and Fast-Packet multi-frame transport protocol reassembly.

Public Functions Documentation

function syn_n2k_decode_battery

Decode PGN 127508 (Battery Status) from an 8-byte CAN frame.

SYN_Status syn_n2k_decode_battery (
    const SYN_CAN_Frame * frame,
    SYN_N2K_BatteryStatus * battery
) 

Parameters:

  • frame Source CAN frame.
  • battery Output Battery status structure.

Returns:

SYN_OK on success.


function syn_n2k_decode_cog_sog_rapid

Decode PGN 129026 (COG & SOG, Rapid Update) from an 8-byte CAN frame.

SYN_Status syn_n2k_decode_cog_sog_rapid (
    const SYN_CAN_Frame * frame,
    SYN_N2K_CogSogRapid * cog_sog
) 

Parameters:

  • frame Source CAN frame.
  • cog_sog Output COG & SOG structure.

Returns:

SYN_OK on success.


function syn_n2k_decode_dc_detailed

Decode PGN 127506 (DC Detailed Status) from an 8-byte CAN frame.

SYN_Status syn_n2k_decode_dc_detailed (
    const SYN_CAN_Frame * frame,
    SYN_N2K_DcDetailedStatus * dc
) 

Parameters:

  • frame Source CAN frame.
  • dc Output DC detailed status structure.

Returns:

SYN_OK on success.


function syn_n2k_decode_environment

Decode PGN 130310 (Environmental Parameters) from an 8-byte CAN frame.

SYN_Status syn_n2k_decode_environment (
    const SYN_CAN_Frame * frame,
    SYN_N2K_EnvParams * env
) 

Parameters:

  • frame Source CAN frame.
  • env Output Environmental parameters structure.

Returns:

SYN_OK on success.


function syn_n2k_decode_heading

Decode PGN 127250 (Vessel Heading) from an 8-byte CAN frame.

SYN_Status syn_n2k_decode_heading (
    const SYN_CAN_Frame * frame,
    SYN_N2K_VesselHeading * heading
) 

Parameters:

  • frame Source CAN frame.
  • heading Output Heading structure.

Returns:

SYN_OK on success.


function syn_n2k_decode_position_rapid

Decode PGN 129025 (Position, Rapid Update) from an 8-byte CAN frame.

SYN_Status syn_n2k_decode_position_rapid (
    const SYN_CAN_Frame * frame,
    SYN_N2K_PositionRapid * pos
) 

Parameters:

  • frame Source CAN frame.
  • pos Output Position structure.

Returns:

SYN_OK on success.


function syn_n2k_encode_battery

Encode PGN 127508 (Battery Status) into an 8-byte CAN frame.

SYN_Status syn_n2k_encode_battery (
    uint8_t sa,
    const SYN_N2K_BatteryStatus * battery,
    SYN_CAN_Frame * frame
) 

Parameters:

  • sa Source address.
  • battery Battery status structure.
  • frame Output CAN frame.

Returns:

SYN_OK on success.


function syn_n2k_encode_cog_sog_rapid

Encode PGN 129026 (COG & SOG, Rapid Update) into an 8-byte CAN frame.

SYN_Status syn_n2k_encode_cog_sog_rapid (
    uint8_t sa,
    const SYN_N2K_CogSogRapid * cog_sog,
    SYN_CAN_Frame * frame
) 

Parameters:

  • sa Source address.
  • cog_sog COG & SOG structure.
  • frame Output CAN frame.

Returns:

SYN_OK on success.


function syn_n2k_encode_dc_detailed

Encode PGN 127506 (DC Detailed Status) into an 8-byte CAN frame.

SYN_Status syn_n2k_encode_dc_detailed (
    uint8_t sa,
    const SYN_N2K_DcDetailedStatus * dc,
    SYN_CAN_Frame * frame
) 

Parameters:

  • sa Source address.
  • dc DC detailed status structure.
  • frame Output CAN frame.

Returns:

SYN_OK on success.


function syn_n2k_encode_environment

Encode PGN 130310 (Environmental Parameters) into an 8-byte CAN frame.

SYN_Status syn_n2k_encode_environment (
    uint8_t sa,
    const SYN_N2K_EnvParams * env,
    SYN_CAN_Frame * frame
) 

Parameters:

  • sa Source address.
  • env Environmental parameters structure.
  • frame Output CAN frame.

Returns:

SYN_OK on success.


function syn_n2k_encode_heading

Encode PGN 127250 (Vessel Heading) into an 8-byte CAN frame.

SYN_Status syn_n2k_encode_heading (
    uint8_t sa,
    const SYN_N2K_VesselHeading * heading,
    SYN_CAN_Frame * frame
) 

Parameters:

  • sa Source address.
  • heading Heading structure.
  • frame Output CAN frame.

Returns:

SYN_OK on success.


function syn_n2k_encode_position_rapid

Encode PGN 129025 (Position, Rapid Update) into an 8-byte CAN frame.

SYN_Status syn_n2k_encode_position_rapid (
    uint8_t sa,
    const SYN_N2K_PositionRapid * pos,
    SYN_CAN_Frame * frame
) 

Parameters:

  • sa Source address.
  • pos Position structure (Lat/Lon in 1e-7 degrees).
  • frame Output CAN frame.

Returns:

SYN_OK on success.


function syn_n2k_fastpacket_process

Process an incoming CAN frame in the Fast-Packet multi-frame RX reassembler.

SYN_Status syn_n2k_fastpacket_process (
    SYN_N2K_FastPacketRx * rx,
    const SYN_CAN_Frame * frame,
    uint32_t target_pgn,
    const uint8_t ** out_payload,
    size_t * out_len
) 

Parameters:

  • rx Fast-Packet RX state context.
  • frame Incoming CAN frame.
  • target_pgn Expected target PGN for the Fast-Packet message.
  • out_payload Output pointer receiving reassembled payload buffer.
  • out_len Output length of payload in bytes.

Returns:

SYN_OK if payload complete, or SYN_BUSY if Fast-Packet frames are still pending.



The documentation for this class was generated from the following file src/syntropic/proto/syn_n2k.h