Skip to main content

CANAerospace

CANAerospace is a CAN-based protocol used in aerospace and avionics systems. It defines a structured messaging format on top of raw CAN frames, enabling deterministic communication between flight systems, sensors, and control components.

In MAPS Messaging, CANAerospace support focuses on decoding CAN frames into structured messages using a schema definition, allowing them to be routed, transformed, and analysed alongside other protocols such as MAVLink and N2K.

Features

  • CANAerospace message decoding using YAML schema definitions
  • Built-in schema with optional external override
  • Topic templating for decoded message publication
  • Optional JSON conversion of CAN frames
  • Unknown frame routing for unmapped message definitions
  • Optional inbound topic bridge for publishing CAN frames back onto the bus

Quick Start

- name: "CANAerospace Interface"
url: canbus://0.0.0.0/
deviceName: can1
protocol: canaerospace

Configuration

Fields below map to CanAerospaceConfigDTO.


Field Type Default Description


yamlPath string built-in schema Optional path to an external CANAerospace YAML schema file.

topicNameTemplate string "/{candevice}/{messageName}" Topic template used when publishing decoded CANAerospace messages.

unknownPacketTopic string "/{candevice}/unknown" Topic used for frames that cannot be mapped to a known message.

inboundTopicName string none Optional MAPS topic used to receive outbound CANAerospace messages for transmission onto the CAN bus.

parseToJson boolean true If true, frames are decoded and published as JSON. Otherwise raw CAN frames are published.

Example Configuration

- name: "CANAerospace Interface"
url: canbus://0.0.0.0/
deviceName: can1
protocol: canaerospace

yamlPath: /etc/maps/canaerospace/canaerospace-schema.yaml
topicNameTemplate: "/{candevice}/{messageName}"
unknownPacketTopic: "/{candevice}/unknown"
parseToJson: true

Topic Templating

Supported placeholders:

  • {candevice}: CAN interface name (e.g. can0, can1)
  • {messageName}: resolved CANAerospace message name from the schema

Default:

/{candevice}/{messageName}

Example:

/can1/EngineTemperature

Unknown Packets

If a CAN frame cannot be mapped to a known CANAerospace message:

  • it is published to unknownPacketTopic
  • it is emitted as a raw frame payload

Default:

/{candevice}/unknown

This is useful when:

  • integrating new avionics devices
  • validating schema completeness
  • capturing vendor-specific extensions

Schema Handling

MAPS supports two ways to define CANAerospace message schemas:

Built-in schema

If yamlPath is not set, MAPS uses the bundled CANAerospace schema.

External schema

Provide a YAML schema file:

yamlPath: /etc/maps/canaerospace/canaerospace-schema.yaml

Use this when:

  • extending message definitions
  • supporting vendor-specific formats
  • overriding default mappings

Inbound Topic Bridging

inboundTopicName allows MAPS to receive CANAerospace messages from its internal messaging system and transmit them onto the CAN bus.

Example:

inboundTopicName: "/can1/#"

This enables:

  • replay of recorded CAN traffic
  • protocol bridging between systems
  • injection of synthetic or transformed messages

Operational Notes

  • CANAerospace decoding is lightweight but scales with CAN frame rate.
  • JSON conversion increases CPU usage proportionally to message throughput.
  • Unknown packet routing should be enabled during integration to avoid silent data loss.
  • Schema accuracy directly affects decoding quality.