Skip to content

File PanelGroup.h

FileList > Firmware > Libraries > PanelGroup > PanelGroup.h

Go to the source code of this file

CAN sub-node domain layer for OpenSkyhawk panel boards.More...

  • #include <Arduino.h>
  • #include <Wire.h>
  • #include <MCP23017.h>
  • #include "ADS1115.h"
  • #include "PinRef.h"
  • #include <CANProtocol.h>

Namespaces

Type Name
namespace OpenSkyhawk
namespace PanelGroup
Static singleton for CAN sub-node ( PanelGroup ) firmware.

Classes

Type Name
class InputBase
Abstract base for all hardware-polled input objects.
class OutputBase
Abstract base for all DCS-driven output objects.

Detailed Description

Provides the PanelGroup namespace (expander registration, setup, loop, MCP cache bridge) and the OpenSkyhawk base classes that input and output objects inherit from. All input/output objects are declared at global scope in a sketch so their constructors self-register before setup() runs.

Sketch pattern:

#include <Wire.h>
#include <MCP23017.h>
#include <PanelGroup.h>
#include <Outputs/LED/LED.h>
#include <A4EC_OutputIds.h>

MCP23017 exp1(0x20, Wire);
ADS1115  adc1;

const PinRef PIN_MASTER_ARM  = PinRef(exp1, PORT_A, 3);
const PinRef PIN_CAUTION_LED = PinRef(PB0);

OpenSkyhawk::LED masterCaution(A_4E_C_MASTER_CAUTION, A_4E_C_MASTER_CAUTION_AM,
                               PIN_CAUTION_LED);

void setup() {
    Wire.begin();
    PanelGroup::registerExpander(exp1, PB3, PB4);  // INTA→PB3, INTB→PB4
    PanelGroup::registerADC(adc1, 0x48, Wire);
    PanelGroup::setup();
}
void loop() { PanelGroup::loop(); }

Version:

0.3.0

Copyright:

GPL-2.0-only — see Firmware/LICENSE


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