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