Mensajes DroneCAN

Esta sección documenta los mensajes DroneCAN que el Bridge publica o recibe.

Mensajes publicados

Todos los mensajes se publican a 1 Hz salvo LogMessage, que se emite por evento.

Mensaje

Instancias

Propósito

uavcan.protocol.NodeStatus

1

Salud general del Bridge.

uavcan.equipment.power.BatteryInfo

3

Telemetría de las dos baterías LiPo y de la reserva H2.

ardupilot.equipment.power.BatteryInfoAux

1

Información auxiliar de la reserva H2 que permite usar BATT3_*_MAH como porcentaje de H2 para configurar failsafes.

uavcan.equipment.power.CircuitStatus

5

Tensiones y corrientes individuales de cada bus, salida del convertidor DC-DC conectado a la pila de combustible y de la propia pila.

uavcan.protocol.debug.LogMessage

Evento

Mensajes de estado y alertas (ver catálogo completo de mensajes de log).

uavcan.protocol.NodeStatus

Campos relevantes:

  • mode: siempre OPERATIONAL.

  • health: OK, WARNING o ERROR según la situación del sistema. Es el campo que Mission Planner refleja en el estado del nodo.

  • vendor_specific_status_code: código de 16 bits con información interna para soporte (alertas brutas de la pila y bits de timeout de telemetría).

uavcan.equipment.power.BatteryInfo

Se publican tres instancias:

battery_id

Significado

voltage

current

state_of_charge_pct

1

LiPo bus 1

tensión real

corriente real

derivado de la tensión

2

LiPo bus 2

tensión real

corriente real

derivado de la tensión

3

Reserva H2

0

0

derivado de la presión de H2

La instancia 3 publica voltage = 0 y current = 0 de manera intencional: así ArduPilot no integra una corriente irreal sobre el «depósito» de H2. La tensión y corriente eléctricas reales de la pila están en CircuitStatus (circuito 5).

Para battery_id = 3 también se publica:

  • temperature: temperatura de la pila.

  • full_charge_capacity_wh = 100 Wh (valor nominal sintético).

  • remaining_capacity_wh: 0-100 según el porcentaje de H2 disponible.

  • status_flags: incorpora avisos relevantes de la pila y del sensor de presión.

ardupilot.equipment.power.BatteryInfoAux

Se publica una única instancia, asociada a battery_id = 3. Sus campos están a cero salvo:

  • battery_id = 3.

  • nominal_voltage = 1000 V (valor sintético).

El propósito de este mensaje es engañar al cálculo interno de consumed_mah de ArduPilot para que BATT3_LOW_MAH y BATT3_CRT_MAH se comporten como porcentaje de H2 con el fin de configurar failsafes basados en el hidrógeno restante en la botella. Ver reserva de H2 como porcentaje para el detalle.

uavcan.equipment.power.CircuitStatus

Se publican cinco instancias:

circuit_id

Significado

voltage

current

1

Salida DC-DC del bus 1

no medida

2

LiPo bus 1

3

Salida DC-DC del bus 2

no medida

4

LiPo bus 2

5

Pila de combustible

El circuito 5 además activa el flag de subtensión cuando la pila reporta Fault_UV. Estos valores no se ven directamente en Mission Planner sin el script Lua opcional; ver configurar Mission Planner.

uavcan.protocol.debug.LogMessage

Mensajes de estado y alertas emitidos por evento bajo distintos tags (h2:fc, h2:hyb, h2:can, h2:health, h2:sd, h2:ota). El catálogo completo, con texto literal, severidad y acción recomendada, está en catálogo completo de mensajes de log.

Mensajes recibidos

Mensaje

Propósito

uavcan.equipment.hardpoint.Command

Comando de inicio/parada de la pila enviado desde el autopiloto a través del relé configurado.

Servicios disponibles

Servicio

Uso

uavcan.protocol.GetNodeInfo

Identificación del nodo Bridge (nombre, versión SW/HW, UID).

uavcan.protocol.RestartNode

Reinicio remoto del Bridge.

uavcan.protocol.param.GetSet

Lectura/escritura de parámetros del Bridge.

uavcan.protocol.param.ExecuteOpcode

Guardar o restaurar parámetros.

uavcan.protocol.file.BeginFirmwareUpdate

Inicio de actualización de firmware (OTA).

uavcan.protocol.file.GetInfo / Read

Acceso a los logs internos en MicroSD (uso interno de soporte).