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.