 |
RSeries astromech firmware
|
|
Go to the documentation of this file. 1 #ifndef CommandScreen_h
2 #define CommandScreen_h
6 #ifdef USE_SCREEN_DEBUG
7 #define MENU_SCREEN_DEBUG_PRINTLN(s) DEBUG_PRINTLN(s)
8 #define MENU_SCREEN_DEBUG_PRINT(s) DEBUG_PRINT(s)
9 #define MENU_SCREEN_DEBUG_PRINTLN_HEX(s) DEBUG_PRINTLN_HEX(s)
10 #define MENU_SCREEN_DEBUG_PRINT_HEX(s) DEBUG_PRINT_HEX(s)
11 #define MENU_SCREEN_DEBUG_FLUSH(s) DEBUG_FLUSH()
13 #define MENU_SCREEN_DEBUG_PRINTLN(s)
14 #define MENU_SCREEN_DEBUG_PRINT(s)
15 #define MENU_SCREEN_DEBUG_PRINTLN_HEX(s)
16 #define MENU_SCREEN_DEBUG_PRINT_HEX(s)
17 #define MENU_SCREEN_DEBUG_FLUSH(s)
37 return &(fCommands[index % fSize]);
47 while ((ix = strchr(ix,
' ')) !=
nullptr)
56 const char*
getLabel(
int index,
char* buf,
size_t maxSize)
62 const char*
getCommand(
int index,
char* buf,
size_t maxSize)
65 size_t len = strlen(buf);
68 maxSize = (len + 1 < maxSize) ? len : maxSize-2;
70 buf[maxSize+1] =
'\0';
123 if (selection > 0 && selection < fSize)
125 fSelected = selection-1;
133 fCommands = newCommands;
286 inline ScreenID
ID()
const
299 virtual void render() = 0;
339 if (newValue > oldValue)
352 if ((mask & bit) == 0)
359 if ((mask & bit) == 0)
525 if (
fHead ==
nullptr)
527 if (
fTail !=
nullptr)
528 fTail->fNext = screen;
Definition: CommandScreen.h:273
static void toggleMaskBit(uint8_t &mask, uint8_t bit)
Definition: CommandScreen.h:350
virtual void buttonLeftPressed(bool repeat=false)
Definition: CommandScreen.h:328
void process()
Definition: CommandScreen.h:429
void append(CommandScreen *screen)
Definition: CommandScreen.h:523
void switchToScreen(ScreenID id, bool popStack=true)
Definition: CommandScreen.h:175
CommandScreen * getScreenAt(unsigned index)
Definition: CommandScreen.h:406
uint32_t fScreenBlankDelay
Definition: CommandScreen.h:250
virtual void sleepDevice()
Definition: CommandScreen.h:258
unsigned fKeyRepeatRateMS
Definition: CommandScreen.h:375
virtual bool handleEvent()
Definition: CommandScreen.h:264
#define MENU_SCREEN_DEBUG_PRINTLN(s)
Definition: CommandScreen.h:13
CommandScreen * current()
Definition: CommandScreen.h:154
uint8_t getSelected()
Definition: CommandScreen.h:116
virtual bool handleEvent()
Definition: CommandScreen.h:300
virtual void buttonInReleased()
Definition: CommandScreen.h:336
CommandScreen * fCurrentScreen
Definition: CommandScreen.h:245
uint8_t fScreenIDSP
Definition: CommandScreen.h:253
uint32_t elapsed()
Definition: CommandScreen.h:230
uint32_t fLastMillis
Definition: CommandScreen.h:248
void setKeyRepeatRate(unsigned ms)
Definition: CommandScreen.h:323
uint8_t fLastTag
Definition: CommandScreen.h:374
char label[30]
Definition: CommandScreen.h:21
virtual void wakeDevice()
Definition: CommandScreen.h:257
void clearSelection()
Definition: CommandScreen.h:364
CommandScreenHandler(uint32_t screenBlankDelay=15000)
Definition: CommandScreen.h:150
virtual bool isActive()
Definition: CommandScreen.h:301
void restoreScreen()
Definition: CommandScreen.h:417
virtual void saveContext()
Definition: CommandScreen.h:259
CommandScreen * findScreen(ScreenID id)
Definition: CommandScreen.h:388
CommandMenu(SerialCommand *cmds, uint8_t siz)
Definition: CommandScreen.h:28
void changeCommands(SerialCommand *newCommands, uint8_t newSize)
Definition: CommandScreen.h:131
SerialCommand * getSerialCommand(int index)
Definition: CommandScreen.h:35
virtual void handleSelection(uint8_t selection)
Definition: CommandScreen.h:298
ScreenID currentID()
Definition: CommandScreen.h:383
Definition: CommandScreen.h:147
virtual void restoreContext()
Definition: CommandScreen.h:260
void switchToScreen(ScreenID id)
Definition: CommandScreen.h:303
bool isEnabled() const
Definition: CommandScreen.h:235
CommandMenu fMenu
Definition: CommandScreen.h:373
void setEnabled(bool enabled)
Definition: CommandScreen.h:236
virtual bool isStatus()
Definition: CommandScreen.h:302
#define MENU_SCREEN_DEBUG_PRINT(s)
Definition: CommandScreen.h:14
uint32_t getScreenSleepDuration()
Definition: CommandScreen.h:170
virtual void buttonRightPressed(bool repeat=false)
Definition: CommandScreen.h:330
void draw(int x, int y)
Definition: CommandScreen.h:80
const char * getButtonLabel(int index, char *buf, size_t maxSize)
Definition: CommandScreen.h:40
void restoreScreen()
Definition: CommandScreen.h:315
bool fEnabled
Definition: CommandScreen.h:252
uint8_t fScreenState
Definition: CommandScreen.h:246
virtual void buttonLeftReleased()
Definition: CommandScreen.h:333
ScreenID ID() const
Definition: CommandScreen.h:286
void resetBlankingTimer()
Definition: CommandScreen.h:266
bool isSleeping() const
Definition: CommandScreen.h:223
ScreenID fID
Definition: CommandScreen.h:372
unsigned getNumScreens()
Definition: CommandScreen.h:398
unsigned getKeyRepeatRate() const
Definition: CommandScreen.h:319
uint8_t getSelected() const
Definition: CommandScreen.h:291
const char * getCommand(int index, char *buf, size_t maxSize)
Definition: CommandScreen.h:62
CommandScreen(CommandScreenHandler &handler, ScreenID id, SerialCommand *cmds=nullptr, uint8_t siz=0)
Definition: CommandScreen.h:276
CommandScreen * fHead
Definition: CommandScreen.h:243
virtual void buttonDial(long newValue, long oldValue=0)
Definition: CommandScreen.h:337
bool handleSelection(uint8_t selection)
Definition: CommandScreen.h:121
virtual bool isTouching()
Definition: CommandScreen.h:261
void setScreenBlankDelay(uint32_t millis)
Definition: CommandScreen.h:165
void pushScreen(ScreenID id)
Definition: CommandScreen.h:190
virtual void buttonUpPressed(bool repeat=false)
Definition: CommandScreen.h:327
void popScreen()
Definition: CommandScreen.h:311
void popScreen()
Definition: CommandScreen.h:203
bool fScreenTouched
Definition: CommandScreen.h:251
const struct SerialCommand_t SerialCommand
void blankScreen()
Definition: CommandScreen.h:212
virtual uint8_t currentSelection()
Definition: CommandScreen.h:263
static void toggleMaskBit(uint16_t &mask, uint16_t bit)
Definition: CommandScreen.h:357
Definition: CommandScreen.h:20
uint32_t fScreenStartMillis
Definition: CommandScreen.h:247
virtual void exit()
Definition: CommandScreen.h:297
CommandScreen * fLastScreen
Definition: CommandScreen.h:249
#define UNUSED_ARG(arg)
Definition: ReelTwo.h:25
virtual void buttonDownReleased()
Definition: CommandScreen.h:334
virtual void clearContext()
Definition: CommandScreen.h:256
ScreenID fScreenIDStack[5]
Definition: CommandScreen.h:254
virtual void buttonUpReleased()
Definition: CommandScreen.h:332
bool hasMenu()
Definition: CommandScreen.h:368
const char * getLabel(int index, char *buf, size_t maxSize)
Definition: CommandScreen.h:56
virtual void buttonRightReleased()
Definition: CommandScreen.h:335
void pushScreen(ScreenID id)
Definition: CommandScreen.h:307
virtual void buttonInPressed(bool repeat=false)
Definition: CommandScreen.h:331
#define SizeOfArray(arr)
Definition: ReelTwo.h:213
virtual void buttonDownPressed(bool repeat=false)
Definition: CommandScreen.h:329
char cmd[15]
Definition: CommandScreen.h:22
virtual void swapDevice()
Definition: CommandScreen.h:262
CommandScreen * fTail
Definition: CommandScreen.h:244
Definition: CommandScreen.h:25
virtual void init()
Definition: CommandScreen.h:296
uint8_t getSize()
Definition: CommandScreen.h:75