/** * @file Farm1StateIF.h * @brief This file defines the Farm1StateIF class. * @date 24.04.2013 * @author baetz */ #ifndef FARM1STATEIF_H_ #define FARM1STATEIF_H_ #include "CCSDSReturnValuesIF.h" class VirtualChannelReception; class TcTransferFrame; class ClcwIF; /** * This is the interface for states of the FARM-1 state machine. * Classes implementing this interface can be used as FARM-1 states. This is a simple implementation * of the state pattern. */ class Farm1StateIF : public CCSDSReturnValuesIF { public: /** * A method that shall handle an incoming frame as AD Frame. * @param frame The frame to handle. * @param clcw Any changes to the CLCW shall be done with the help of this interface. * @return If forwarding to a MAP Channel is required, the return value shall be #FRAME_OK. * Otherwise, an appropriate return value or error code shall be generated. */ virtual ReturnValue_t handleADFrame( TcTransferFrame* frame, ClcwIF* clcw ) = 0; /** * This method shall handle frames that have been successfully identified as BC Unlock frames. * @param clcw Any changes to the CLCW shall be done with the help of this interface. * @return If forwarding to a MAP Channel is required, the return value shall be #FRAME_OK. * Otherwise, an appropriate return value or error code shall be generated. */ virtual ReturnValue_t handleBCUnlockCommand( ClcwIF* clcw ) = 0; /** * This method shall handle frames that have been successfully identified as BC Set VR frames. * @param clcw Any changes to the CLCW shall be done with the help of this interface. * @param vr The V(r) value found in the frame. * @return If forwarding to a MAP Channel is required, the return value shall be #FRAME_OK. * Otherwise, an appropriate return value or error code shall be generated. */ virtual ReturnValue_t handleBCSetVrCommand( ClcwIF* clcw, uint8_t vr ) = 0; /** * Empty virtual destructor. */ virtual ~Farm1StateIF() { } }; #endif /* FARM1STATEIF_H_ */