// SPDX-License-Identifier: Apache-2.0 // Copyright (c) 2012-2024 Scott Penrose and WII5 Buoy contributors // // This file is part of WII5 Buoy firmware. // See LICENSE for full terms. /** * @file WII5Mode.h * @brief Base class for run-time operating modes (Capture, Sleep, Position, etc.). */ // NOTE: This is a base class for all modes and not really used #ifndef WII5Mode_h #define WII5Mode_h #include #include #include #include /** * @brief Base class for run-time operating modes. * * Each subclass owns a small state machine that is ticked by * WII5Controller::loop() while that mode is active. Concrete modes * include WII5ModeCapture, WII5ModeSleep, WII5ModePosition, * WII5ModeManualTest, WII5ModeSelfTest, and WII5ModeLowBattery. */ class WII5Mode { public: /** @brief One-time bring-up. */ virtual void begin(); /** @brief State-machine tick while this mode is active. */ virtual void loop(); protected: elapsedMillis wait; }; #endif