Skip to content

File NodeStatus.h

FileList > Firmware > Libraries > NodeStatus > NodeStatus.h

Go to the source code of this file

Neutral node-status contract for every OpenSkyhawk node (PanelGroup ,PanelBridge , PDU).More...

  • #include <stdint.h>

Namespaces

Type Name
namespace OpenSkyhawk
Thin wrapper over Adafruit_ADS1115; see ADS1115.h .

Classes

Type Name
class FaultSource
A source of node faults — implemented by any object that can fault (#163).

Public Types

Type Name
enum uint8_t NodeFaultCode
HEALTH_n faultId dictionary (#163) — cross-node fault codes.
enum uint8_t NodeHealthFlag
HEALTH_n flags bits — node-level health conditions (maps to NodeHealthPayload.flags).

Macros

Type Name
define NODE_STATUS_END_MSG_NAME "\_NODE\_STATUS\_END"
define NODE_STATUS_MSG_NAME "\_NODE\_STATUS"
define NODE_STATUS_PROTO_VERSION 2
define NODE_STATUS_REQ_ADDR 0x86FE

Detailed Description

Owns the cross-node status API — not just health: * the _NODE_STATUS DCS-BIOS host-reporting contract (proto version, request address, message names) — the canonical source the client's sync-a4ec.ts parses; * NodeHealthFlag (HEALTH_n flag bits) and NodeFaultCode (the compact wire faultId dictionary the client maps to labels); * FaultSource — the interface a fault-producing object implements so a node-level aggregator can roll it up. A FaultSource is one piece of node status, not the whole story.

This is the neutral home for node-status vocabulary so it isn't shaped around any one node flavour (PanelGroup/OutputBase) or the HID namespace. NodeHealthPayload (the CAN HEALTH_n frame struct) stays in CANProtocol.h; the fault detail strings stay local (DiagSerial), never on the wire. Header-only contract + a tiny FaultSource registry (NodeStatus.cpp).

Version:

0.1.0

Copyright:

GPL-2.0-only — see Firmware/LICENSE

Public Types Documentation

enum NodeFaultCode

HEALTH_n faultId dictionary (#163) — cross-node fault codes.

enum NodeFaultCode {
    NONE = 0x00,
    I2C_PERIPHERAL = 0x01,
    OVER_VOLTAGE = 0x02,
    UNDER_VOLTAGE = 0x03,
    SHORT_CIRCUIT = 0x04,
    HOST_LINK_LOST = 0x05
};

Coarse, one active at a time on the wire; the exact device is logged locally on DiagSerial, not the frame. The client maps id → human label (SkyHawkClient#40). Each node type contributes the codes relevant to its fault sources; append as new sources appear.


enum NodeHealthFlag

HEALTH_n flags bits — node-level health conditions (maps to NodeHealthPayload.flags).

enum NodeHealthFlag {
    OVERHEAT = 0x01,
    DEGRADED = 0x02
};

Macro Definition Documentation

define NODE_STATUS_END_MSG_NAME

#define NODE_STATUS_END_MSG_NAME `"_NODE_STATUS_END"`

define NODE_STATUS_MSG_NAME

#define NODE_STATUS_MSG_NAME `"_NODE_STATUS"`

define NODE_STATUS_PROTO_VERSION

#define NODE_STATUS_PROTO_VERSION `2`

define NODE_STATUS_REQ_ADDR

#define NODE_STATUS_REQ_ADDR `0x86FE`


The documentation for this class was generated from the following file Firmware/Libraries/NodeStatus/NodeStatus.h