#ifndef MPSOC_RETURN_VALUES_IF_H_
#define MPSOC_RETURN_VALUES_IF_H_

#include "fsfw/returnvalues/HasReturnvaluesIF.h"

class MPSoCReturnValuesIF {
 public:
  static const uint8_t INTERFACE_ID = CLASS_ID::MPSOC_RETURN_VALUES_IF;

  //! [EXPORT] : [COMMENT] Space Packet received from PLOC has invalid CRC
  static const ReturnValue_t CRC_FAILURE = MAKE_RETURN_CODE(0xA0);
  //! [EXPORT] : [COMMENT] Received ACK failure reply from PLOC
  static const ReturnValue_t RECEIVED_ACK_FAILURE = MAKE_RETURN_CODE(0xA1);
  //! [EXPORT] : [COMMENT] Received execution failure reply from PLOC
  static const ReturnValue_t RECEIVED_EXE_FAILURE = MAKE_RETURN_CODE(0xA2);
  //! [EXPORT] : [COMMENT] Received space packet with invalid APID from PLOC
  static const ReturnValue_t INVALID_APID = MAKE_RETURN_CODE(0xA3);
  //! [EXPORT] : [COMMENT] Received command with invalid length
  static const ReturnValue_t INVALID_LENGTH = MAKE_RETURN_CODE(0xA4);
  //! [EXPORT] : [COMMENT] Filename of file in OBC filesystem is too long
  static const ReturnValue_t FILENAME_TOO_LONG = MAKE_RETURN_CODE(0xA5);
  //! [EXPORT] : [COMMENT] MPSoC helper is currently executing a command
  static const ReturnValue_t MPSOC_HELPER_EXECUTING = MAKE_RETURN_CODE(0xA6);
  //! [EXPORT] : [COMMENT] Filename of MPSoC file is to long (max. 256 bytes)
  static const ReturnValue_t MPSOC_FILENAME_TOO_LONG = MAKE_RETURN_CODE(0xA7);
  //! [EXPORT] : [COMMENT] Command has invalid parameter
  static const ReturnValue_t INVALID_PARAMETER = MAKE_RETURN_CODE(0xA8);
  //! [EXPORT] : [COMMENT] Received command has file string with invalid length
  static const ReturnValue_t NAME_TOO_LONG = MAKE_RETURN_CODE(0xA9);
};

#endif /* MPSOC_RETURN_VALUES_IF_H_ */