81 lines
2.4 KiB
C
81 lines
2.4 KiB
C
|
#ifndef MISSION_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_
|
||
|
#define MISSION_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_
|
||
|
|
||
|
#include "../devicehandlers/DeviceCommunicationIF.h"
|
||
|
|
||
|
/**
|
||
|
* @brief This class is a implementation of a DeviceCommunicationIF for RMAP calls. It expects RMAPCookies or a derived class of RMAPCookies
|
||
|
*
|
||
|
* @details The open, close and reOpen calls are mission specific
|
||
|
* The open call might return any child of RMAPCookies
|
||
|
*
|
||
|
* \ingroup rmap
|
||
|
*/
|
||
|
class RmapDeviceCommunicationIF: public DeviceCommunicationIF {
|
||
|
|
||
|
public:
|
||
|
virtual ~RmapDeviceCommunicationIF();
|
||
|
|
||
|
|
||
|
/**
|
||
|
* This method is mission specific as the open call will return a mission specific cookie
|
||
|
*
|
||
|
* @param cookie A cookie, can be mission specific subclass of RMAP Cookie
|
||
|
* @param address The address of the RMAP Cookie
|
||
|
* @param maxReplyLen Maximum length of expected reply
|
||
|
* @return
|
||
|
*/
|
||
|
virtual ReturnValue_t open(CookieIF **cookie, uint32_t address,
|
||
|
uint32_t maxReplyLen) = 0;
|
||
|
|
||
|
/**
|
||
|
* Use an existing cookie to open a connection to a new DeviceCommunication.
|
||
|
* The previous connection must not be closed.
|
||
|
* If the returnvalue is not RETURN_OK, the cookie is unchanged and
|
||
|
* can be used with the previous connection.
|
||
|
*
|
||
|
* @param cookie
|
||
|
* @param address
|
||
|
* @param maxReplyLen
|
||
|
* @return
|
||
|
*/
|
||
|
virtual ReturnValue_t reOpen(CookieIF *cookie, uint32_t address,
|
||
|
uint32_t maxReplyLen) = 0;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Closing call of connection and memory free of cookie. Mission dependent call
|
||
|
* @param cookie
|
||
|
*/
|
||
|
virtual void close(CookieIF *cookie) = 0;
|
||
|
|
||
|
//SHOULDDO can data be const?
|
||
|
/**
|
||
|
*
|
||
|
*
|
||
|
* @param cookie Expects an RMAPCookie or derived from RMAPCookie Class
|
||
|
* @param data Data to be send
|
||
|
* @param len Length of the data to be send
|
||
|
* @return - Return codes of RMAP::sendWriteCommand()
|
||
|
*/
|
||
|
virtual ReturnValue_t sendMessage(CookieIF *cookie, uint8_t *data,
|
||
|
uint32_t len);
|
||
|
|
||
|
virtual ReturnValue_t getSendSuccess(CookieIF *cookie);
|
||
|
|
||
|
virtual ReturnValue_t requestReceiveMessage(CookieIF *cookie);
|
||
|
|
||
|
virtual ReturnValue_t readReceivedMessage(CookieIF *cookie, uint8_t **buffer,
|
||
|
uint32_t *size);
|
||
|
|
||
|
virtual ReturnValue_t setAddress(CookieIF *cookie, uint32_t address);
|
||
|
|
||
|
virtual uint32_t getAddress(CookieIF *cookie);
|
||
|
|
||
|
virtual ReturnValue_t setParameter(CookieIF *cookie, uint32_t parameter);
|
||
|
|
||
|
virtual uint32_t getParameter(CookieIF *cookie);
|
||
|
};
|
||
|
|
||
|
#endif /* MISSION_RMAP_RMAPDEVICECOMMUNICATIONINTERFACE_H_ */
|