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:733
virtual void _buttonFrontLeftDoubleClick()
Front left button double click callback.
Definition jbwopr.cpp:685
static void _staticButtonBackTopDoubleClickCallback(void *data)
Back top button internal double click callback.
Definition jbwopr.cpp:609
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:619
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:725
virtual void loop()
JBWoprDevice loop.
Definition jbwopr.cpp:129
JBWoprBoardVariant getBoardVariant()
Get W.O.P.R board variant.
Definition jbwopr.cpp:173
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:614
virtual void _buttonFrontLeftClick()
Front left button click callback.
Definition jbwopr.cpp:677
bool _defconState
DEFCON state.
Definition jbwopr.h:475
std::string _getDefconLevelString(JBDefconLevel level)
Get DEFCON level string from DEFCON level.
Definition jbwopr.cpp:663
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:648
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:584
static void _staticButtonFrontLeftDoubleClickCallback(void *data)
Front left button internal double click callback.
Definition jbwopr.cpp:589
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:693
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:659
uint32_t _defconBrightness
DEFCON brightness.
Definition jbwopr.h:478
static void _staticButtonFrontRightDoubleClickCallback(void *data)
Front right button internal double click callback.
Definition jbwopr.cpp:599
virtual void _buttonBackTopDoubleClick()
Back top button double click callback.
Definition jbwopr.cpp:717
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:709
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:604
static void _staticButtonFrontRightClickCallback(void *data)
Front right button internal click callback.
Definition jbwopr.cpp:594
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:701
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:522
void audioPlayTone(const uint16_t freq)
Play audio tone.
Definition jbwopr.cpp:504
void audioPlayNote(note_t note, uint8_t octave)
Play audio tone.
Definition jbwopr.cpp:513
JBWoprConfiguration * getConfiguration()
Get current JBWoprDevice configuration.
Definition jbwopr.cpp:169
virtual void defconLedsSetState(bool state)
Set DEFCON state.
Definition jbwopr.cpp:421
virtual void defconLedsSetBrightness(uint8_t brightness)
Set DEFCON LED's brightness level.
Definition jbwopr.cpp:460
virtual void defconLedsSetColor(uint32_t color)
Set all DEFCON LED's color.
Definition jbwopr.cpp:448
Adafruit_NeoPixel * getDefconLeds()
Get DEFCON LEDs.
Definition jbwopr.cpp:417
virtual void defconLedSetDefconStateColor(JBDefconLevel level, uint32_t color)
Set color for a DEFCON level.
Definition jbwopr.cpp:489
virtual void defconLedsSetDefconLevel(JBDefconLevel level)
Set DEFCON level.
Definition jbwopr.cpp:430
virtual void defconLedsClear()
Clear all DEFCON LEDs.
Definition jbwopr.cpp:471
virtual void defconLedSetColor(JBDefconLevel level, uint32_t color)
Set individual DEFCON LED's color.
Definition jbwopr.cpp:478
virtual void displaySetState(bool state)
Set display state.
Definition jbwopr.cpp:253
virtual void displayShow()
Force display to show current data.
Definition jbwopr.cpp:279
virtual void displaySetBrightness(uint8_t val)
Set display brightness percentage.
Definition jbwopr.cpp:260
std::array< Adafruit_AlphaNum4, 3 > getDisplay()
Get display.
Definition jbwopr.cpp:249
virtual void displaySetChar(uint8_t index, char chr)
Set individual display character.
Definition jbwopr.cpp:286
virtual void displayShowText(const char *text, JBTextAlignment alignment)
Set display text.
Definition jbwopr.cpp:293
virtual void displayClear()
Clear display.
Definition jbwopr.cpp:269
virtual void displayScrollText(const char *text, uint16_t delay_ms)
Set display scroll text.
Definition jbwopr.cpp:356
bool effectsDefaultEffectIsRunning()
Check if default effect is running.
Definition jbwopr.cpp:184
void effectsRegisterDefaultEffect(JBWoprEffectBase *effect)
Register default effect.
Definition jbwopr.cpp:180
virtual void effectsStartEffect(JBWoprEffectBase *effect)
Start effect.
Definition jbwopr.cpp:223
JBWoprEffectBase * effectsGetCurrentEffect()
Get current effect.
Definition jbwopr.cpp:199
virtual void effectsStartCurrentEffect()
Start current effect.
Definition jbwopr.cpp:203
bool effectsCurrentEffectIsRunning()
Check if current effect is running.
Definition jbwopr.cpp:216
std::vector< JBWoprEffectBase * > effectsGetRegisteredEffects()
Get a list of registered effects.
Definition jbwopr.cpp:195
virtual void effectsStopCurrentEffect()
Stop current effect.
Definition jbwopr.cpp:210
void effectsRegisterEffect(JBWoprEffectBase *effect)
Register effect.
Definition jbwopr.cpp:191
virtual LogLevel getLogLevel()
Get log level.
Definition jbwopr.cpp:633
virtual void setLogLevel(LogLevel level)
Set log level.
Definition jbwopr.cpp:629
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