9#ifndef ARDUINO_JBWOPR_JBWOPR_H
10#define ARDUINO_JBWOPR_WOPR_H
17#include <Adafruit_GFX.h>
18#include <Adafruit_LEDBackpack.h>
19#include <Adafruit_NeoPixel.h>
21#include <ArduinoJson.h>
23#include "jbwoprhelpers.h"
25#define LIBRARY_VERSION "1.0.2";
204 std::array<Adafruit_AlphaNum4, 3>
getDisplay();
234 virtual void displayShowText(
const char* text, JBTextAlignment alignment);
240 virtual void displayShowText(
const std::string& text, JBTextAlignment alignment);
246 virtual void displayShowText(
const String& text, JBTextAlignment alignment);
311 const char* DEFCON_STRINGS[6] {
"DEFCON 1",
"DEFCON 2",
"DEFCON 3",
"DEFCON 4",
"DEFCON 5",
"None" };
474 Adafruit_NeoPixel
_defconLeds = Adafruit_NeoPixel(5, 1, NEO_GRB + NEO_KHZ800);
W.O.P.R. device base class.
Definition jbwopr.h:85
JBWoprEffectBase * _defaultEffect
Default effect.
Definition jbwopr.h:459
virtual void _buttonBackBottomDoubleClick()
Back bottom button double click callback.
Definition jbwopr.cpp:734
virtual void _buttonFrontLeftDoubleClick()
Front left button double click callback.
Definition jbwopr.cpp:686
static void _staticButtonBackTopDoubleClickCallback(void *data)
Back top button internal double click callback.
Definition jbwopr.cpp:610
std::function< void()> _buttonBackTopClickCallback
Back top button click callback.
Definition jbwopr.h:514
uint32_t _defconLedsColor
DEFCON LED's color.
Definition jbwopr.h:479
int _audioResolution
Audio resolution.
Definition jbwopr.h:542
static void _staticButtonBackBottomDoubleClickCallback(void *data)
Back bottom button internal double click callback.
Definition jbwopr.cpp:620
std::function< void()> _buttonFrontRightDoubleClickCallback
Front right button double click callback.
Definition jbwopr.h:513
virtual void _buttonBackBottomClick()
Back bottom button click callback.
Definition jbwopr.cpp:726
virtual void loop()
JBWoprDevice loop.
Definition jbwopr.cpp:130
JBWoprBoardVariant getBoardVariant()
Get W.O.P.R board variant.
Definition jbwopr.cpp:174
uint32_t _defconPixels[5]
DEFCON buffered pixel colors.
Definition jbwopr.h:484
static void _staticButtonBackBottomClickCallback(void *data)
Back bottom button internal click callback.
Definition jbwopr.cpp:615
virtual void _buttonFrontLeftClick()
Front left button click callback.
Definition jbwopr.cpp:678
bool _defconState
DEFCON state.
Definition jbwopr.h:475
std::string _getDefconLevelString(JBDefconLevel level)
Get DEFCON level string from DEFCON level.
Definition jbwopr.cpp:664
bool _displayState
Display state.
Definition jbwopr.h:468
int _audioFreq
Audio frequency.
Definition jbwopr.h:540
uint32_t _displayBrightness
Display brightness.
Definition jbwopr.h:469
OneButton * _buttonBackTop
Back to.
Definition jbwopr.h:507
JBDefconLevel _getDefconLevel(std::string value)
Get DEFCON level from string value.
Definition jbwopr.cpp:649
JBWoprConfiguration _config
JBWoprDevice configuration.
Definition jbwopr.h:453
std::function< void()> _buttonBackTopDoubleClickCallback
Back top button double click callback.
Definition jbwopr.h:515
OneButton * _buttonBackBottom
Back bottom button.
Definition jbwopr.h:508
JBWoprDevice()
JBWoprDevice constructor.
Definition jbwopr.cpp:16
JBDefconLevel _defconLevel
DEFCON level.
Definition jbwopr.h:476
std::function< void()> _buttonBackBottomDoubleClickCallback
Back bottom button double click callback.
Definition jbwopr.h:517
static void _staticButtonFrontLeftClickCallback(void *data)
Front left button internal click callback.
Definition jbwopr.cpp:585
static void _staticButtonFrontLeftDoubleClickCallback(void *data)
Front left button internal double click callback.
Definition jbwopr.cpp:590
JBWoprBoardVariant _woprVariant
W.O.P.R. board version.
Definition jbwopr.h:452
JBWoprBoardPins _pins
W.O.P.R. board pin assignements.
Definition jbwopr.h:454
virtual void _buttonFrontRightClick()
Front right button click callback.
Definition jbwopr.cpp:694
OneButton * _buttonFrontLeft
Front left button.
Definition jbwopr.h:505
Adafruit_NeoPixel _defconLeds
DEFCON LEDs.
Definition jbwopr.h:474
uint32_t _defconColors[5]
DEFCON colors.
Definition jbwopr.h:477
bool _useDAC
Use DAC.
Definition jbwopr.h:539
std::function< void()> _buttonFrontLeftClickCallback
Front left button click callback.
Definition jbwopr.h:510
uint32_t _getDefconLedsPixel(JBDefconLevel level)
Get DEFCON LED strip pixel from DEFCON level.
Definition jbwopr.cpp:660
uint32_t _defconBrightness
DEFCON brightness.
Definition jbwopr.h:478
static void _staticButtonFrontRightDoubleClickCallback(void *data)
Front right button internal double click callback.
Definition jbwopr.cpp:600
virtual void _buttonBackTopDoubleClick()
Back top button double click callback.
Definition jbwopr.cpp:718
std::function< void()> _buttonBackBottomClickCallback
Back bottom button click callback.
Definition jbwopr.h:516
uint32_t _defconBrigthtness
DEFCON brightness.
Definition jbwopr.h:485
virtual void _buttonBackTopClick()
Back top button click callback.
Definition jbwopr.cpp:710
virtual bool begin(JBWoprBoardVariant variant=JBWoprBoardVariant::ORIGINAL)
Initialize JBWoprDevice.
Definition jbwopr.cpp:30
std::vector< JBWoprEffectBase * > _effects
Effects.
Definition jbwopr.h:460
int _audioChannel
Audio channel.
Definition jbwopr.h:541
static void _staticButtonBackTopClickCallback(void *data)
Back top button internal click callback.
Definition jbwopr.cpp:605
static void _staticButtonFrontRightClickCallback(void *data)
Front right button internal click callback.
Definition jbwopr.cpp:595
OneButton * _buttonFrontRight
Front right button.
Definition jbwopr.h:506
JBWoprEffectBase * _currentEffect
Current effect.
Definition jbwopr.h:461
std::function< void()> _buttonFrontLeftDoubleClickCallback
Front left button double click callback.
Definition jbwopr.h:511
virtual void _buttonFrontRightDoubleClick()
Front right button double click callback.
Definition jbwopr.cpp:702
std::function< void()> _buttonFrontRightClickCallback
Front right button click callback.
Definition jbwopr.h:512
uint32_t _effectsCounter
Effects counter.
Definition jbwopr.h:462
std::array< Adafruit_AlphaNum4, 3 > _display
Display.
Definition jbwopr.h:467
Abstract effect base class.
Definition jbwopreffects.h:42
void audioClear()
Stop audio playback.
Definition jbwopr.cpp:523
void audioPlayTone(const uint16_t freq)
Play audio tone.
Definition jbwopr.cpp:505
void audioPlayNote(note_t note, uint8_t octave)
Play audio tone.
Definition jbwopr.cpp:514
JBWoprConfiguration * getConfiguration()
Get current JBWoprDevice configuration.
Definition jbwopr.cpp:170
virtual void defconLedsSetState(bool state)
Set DEFCON state.
Definition jbwopr.cpp:422
virtual void defconLedsSetBrightness(uint8_t brightness)
Set DEFCON LED's brightness level.
Definition jbwopr.cpp:461
virtual void defconLedsSetColor(uint32_t color)
Set all DEFCON LED's color.
Definition jbwopr.cpp:449
Adafruit_NeoPixel * getDefconLeds()
Get DEFCON LEDs.
Definition jbwopr.cpp:418
virtual void defconLedSetDefconStateColor(JBDefconLevel level, uint32_t color)
Set color for a DEFCON level.
Definition jbwopr.cpp:490
virtual void defconLedsSetDefconLevel(JBDefconLevel level)
Set DEFCON level.
Definition jbwopr.cpp:431
virtual void defconLedsClear()
Clear all DEFCON LEDs.
Definition jbwopr.cpp:472
virtual void defconLedSetColor(JBDefconLevel level, uint32_t color)
Set individual DEFCON LED's color.
Definition jbwopr.cpp:479
virtual void displaySetState(bool state)
Set display state.
Definition jbwopr.cpp:254
virtual void displayShow()
Force display to show current data.
Definition jbwopr.cpp:280
virtual void displaySetBrightness(uint8_t val)
Set display brightness percentage.
Definition jbwopr.cpp:261
std::array< Adafruit_AlphaNum4, 3 > getDisplay()
Get display.
Definition jbwopr.cpp:250
virtual void displaySetChar(uint8_t index, char chr)
Set individual display character.
Definition jbwopr.cpp:287
virtual void displayShowText(const char *text, JBTextAlignment alignment)
Set display text.
Definition jbwopr.cpp:294
virtual void displayClear()
Clear display.
Definition jbwopr.cpp:270
virtual void displayScrollText(const char *text, uint16_t delay_ms)
Set display scroll text.
Definition jbwopr.cpp:357
bool effectsDefaultEffectIsRunning()
Check if default effect is running.
Definition jbwopr.cpp:185
void effectsRegisterDefaultEffect(JBWoprEffectBase *effect)
Register default effect.
Definition jbwopr.cpp:181
virtual void effectsStartEffect(JBWoprEffectBase *effect)
Start effect.
Definition jbwopr.cpp:224
JBWoprEffectBase * effectsGetCurrentEffect()
Get current effect.
Definition jbwopr.cpp:200
virtual void effectsStartCurrentEffect()
Start current effect.
Definition jbwopr.cpp:204
bool effectsCurrentEffectIsRunning()
Check if current effect is running.
Definition jbwopr.cpp:217
std::vector< JBWoprEffectBase * > effectsGetRegisteredEffects()
Get a list of registered effects.
Definition jbwopr.cpp:196
virtual void effectsStopCurrentEffect()
Stop current effect.
Definition jbwopr.cpp:211
void effectsRegisterEffect(JBWoprEffectBase *effect)
Register effect.
Definition jbwopr.cpp:192
virtual LogLevel getLogLevel()
Get log level.
Definition jbwopr.cpp:634
virtual void setLogLevel(LogLevel level)
Set log level.
Definition jbwopr.cpp:630
JBDefconLevel
DEFCON levels.
Definition jbwopr.h:34
@ DEFCON_4
DEFCON 4.
Definition jbwopr.h:38
@ DEFCON_NONE
No DEFCON level.
Definition jbwopr.h:40
@ DEFCON_1
DEFCON 1.
Definition jbwopr.h:35
@ DEFCON_3
DEFCON 3.
Definition jbwopr.h:37
@ DEFCON_2
DEFCON 2.
Definition jbwopr.h:36
@ DEFCON_5
DEFCON 5.
Definition jbwopr.h:39
JBWoprBoardVariant
W.O.P.R. board version.
Definition jbwopr.h:28
@ HAXORZ
Haxorz W.O.P.R. board.
Definition jbwopr.h:30
@ ORIGINAL
Original W.O.P.R. board.
Definition jbwopr.h:29
Header file for the JBWopr library.
W.O.P.R. board pin assignments.
Definition jbwopr.h:44
uint8_t buttonBackTopPin
Back top button pin.
Definition jbwopr.h:47
uint8_t buttonBackBottomPin
Back bottom button pin.
Definition jbwopr.h:48
uint8_t dacPin
DAC pin.
Definition jbwopr.h:50
uint8_t defconLedsPin
DEFCON LEDs pin.
Definition jbwopr.h:49
uint8_t buttonFrontRightPin
Front right button pin.
Definition jbwopr.h:46
uint8_t buttonFrontLeftPin
Front left button pin.
Definition jbwopr.h:45
JBWoprDevice configuration.
Definition jbwopr.h:54
uint32_t effectsTimeout
Effects timeout, seconds.
Definition jbwopr.h:59
std::string dateFormat
Date format.
Definition jbwopr.h:56
uint8_t displayBrightness
Display brightness.
Definition jbwopr.h:57
std::string timeFormat
Time format.
Definition jbwopr.h:55
uint32_t defconLedsBrightness
DEFCON LEDs brightness.
Definition jbwopr.h:58