/*
 * Copyright (c) 2024 Markus Lehr.
 * 
 *
 * SPDX-License-Identifier: Owend property of Markus Lehr
 * 
 */

#ifndef RTS_INCLUDE_RTSCOPROHELPER_H_
#define RTS_INCLUDE_RTSCOPROHELPER_H_

#include <string>


class RTSCoproHelper
{
private:
    /* data */
    //lock Element
    int mFdRpmsg[2] = {-1, -1};

public:
    
    RTSCoproHelper(/* args */);   
    ~RTSCoproHelper();
   
   int Init(std::string fwPath, std::string fwName);

   int Copro_isFwRunning(void);
   
   int Copro_openTtyRpmsg(int ttyNb, int modeRaw);
   int Copro_closeTtyRpmsg(int ttyNb);
   int Copro_writeTtyRpmsg(int ttyNb, int len, char* pData);
   int Copro_readTtyRpmsg(int ttyNb, int len, char* pData);
   int Copro_stopFw(void);
   int Copro_startFw(void);

private:

   int Copro_getFwPath(char* pathStr);
   int Copro_setFwPath(const char* pathStr);
   int Copro_getFwName(char* pathStr);
   int Copro_setFwName(const char* nameStr);

};

#endif /* RTS_INCLUDE_RTSCOPROHELPER_H_ */