DCC-EX Simple Throttle
Simple throttle for a DCC-EX CommandStation
Loading...
Searching...
No Matches
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 CActionMenuItemExtension of the BaseMenuItem class for users to select items that publish an event Each action must generate an event to be published to the AppOrchestrator
 CAppConfigurationClass to perform all application configuration on startup All interfaces, menus, and other application objects are created within this class
 CAppOrchestratorThis class is for the overall application orchestration to coordinate all the user interactions, screens, displays, connection management, and other application states
 CBaseMenuClass for maintaining a linked list of menu items to form a menu
 CBaseMenuItemBase class for all menu item types, and all menu item types must inherit from this. Every menu item has a name, which is what appears on screen for the user to select. Every menu item also needs an index to assist with selecting specific items. All menu items form a linked list associated with a menu
 CButton
 CCommandStationClient
 CCommandStationListenerClass to manage broadcasts and responses from the CommandStation
 CCommandStationMenuItem
 CConnectionManagerClass to manage all WiFi and serial connections used to connect to a CommandStation
 CDisplayInterfaceInterface class to abstract construction of what is displayed on screen from the physical implementations All physical display classes must extend this This allows for different display types and resolutions to be used
 CErrorScreen
 CEventStructure for each Event that is published
 CEventDataStructure to enable supporting EventData that has various different types Byte - caters for 8 bit unsigned integer data (uint8_t x) Integer - caters for signed integer data (int y) Loco - caters for a pointer to a DCCEXProtocol Loco object (Loco *loco) None - caters for events that contain no data and are notification only When adding new data types:
 CEventListenerClass to extend for all other classes that need to respond to events For example: Class <MyClass> : public EventListener () {} The recommended approach is to implement a switch/case in the onEvent() implementation to handle valid event types
 CEventManagerClass to centrally manage all events for the application Exposes methods to register subscribers that need to respond to events, and to publish events Dynamically manages a linked list of subscribers to be notified when a relevant event is published Subscribers must extend the EventListener class and implement the onEvent() virtual method provided
 CEventSubscriberEventSubscriber structure to maintain the linked list of subscribers
 CLocoBroadcastStructure for data from a Loco broadcast
 CLocoMenuItemExtension of the BaseMenuItem class to allow users to select a Loco
 CMenuManager
 CMenuScreen
 CProgressScreen
 CRotary
 CRotaryEncoderClass to implement a physical rotary encoder for user selection activities Clockwise moves down/increases speed, counter clockwise moves up/decreases speed
 CScreenInterface
 CSelectActionMenuMenu to allow for extra actions to be performed For future use, not actually enabled yet
 CSelectCommandStationMenu
 CSelectLocoMenu
 CStartupScreenClass to display startup information on screen and respond to user interactions Displays the DCC-EX Simple Throttle header and the current software version No user actions are implemented on this screen as it is static content
 CSwitch
 CThrottleScreen
 CU8G2SH1106DisplayClass to implement display on an SH1106 based OLED using the U8g2 library
 CUserConfirmationInterfaceInterface class to abstract user confirmation actions from physical implementations All physical user confirmation classes must extend this This allows the use of the button on a rotary encoder, other buttons, touch screens, and other user interface methods that can trigger single click, double click, or long press type actions
 CUserSelectionInterfaceInterface class to abstract user selection actions from physical implementations All physical user selection classes must extend this This allows for the use of physical buttons, rotary encoders, touch screens, and other user interface methods that can move menu selections up and down, and increase or decrease throttle speeds Note if using a rotary encoder, if up is counter clockwise for menu selections, this will also be a decrease in speed, and vice versa for down with clockwise and an increase in speed