Program Listing for File can_dl.h#

Return to documentation for file (sdv_dbc_util\can_dl.h)

#ifndef CAN_DL_H
#define CAN_DL_H

#include "../global/dbcparser/dbcparser.h"
#include <fstream>
#include "codegen_base.h"

class CCanDataLinkGen : public CCodeGeneratorBase
{
public:
    CCanDataLinkGen(const std::filesystem::path& rpathOutputDir, const dbc::CDbcParser& rparser, const std::string& rssVersion,
        const std::string& rssIfcName, size_t nIfcIdx, const std::vector<std::string>& rvecNodes);

private:
    typedef std::map<std::string, std::string> CKeywordMap;

    static std::string ReplaceKeywords(const std::string& rssStr, const CKeywordMap& rmapKeywords, char cMarker = '%');

   std::string StringMustBeFloatValue(const std::string& rssInput);

    std::string CodeDBCFileVersion(const std::string& rssVersion);

    std::string CodeInitInterfaceIndex(const std::string& rssIfcName);

    std::string CodeRxMessageDefinition(const dbc::SMessageDef& rsMsg);

    std::string CodeTxMessageDefinition(const dbc::SMessageDef& rsMsg);

    std::string CodeSignalDecl(const dbc::SSignalDef& rsSig);

    std::string CodeInitVarRxMessage(const dbc::SMessageDef& rsMsg);

    std::string CodeInitVarTxMessage(const dbc::SMessageDef& rsMsg);

    std::string CodeInitRxMessage(const dbc::SMessageDef& rsMsg);

    std::string CodeInitTxMessage(const dbc::SMessageDef& rsMsg);

    std::string CodeTermRxMessage(const dbc::SMessageDef& rsMsg);

    std::string CodeTermTxMessage(const dbc::SMessageDef& rsMsg);

    std::string CodeRxMessageFunctions(const dbc::SMessageDef& rsMsg);

    std::string CodeTxMessageFunctions(const dbc::SMessageDef& rsMsg);

    std::string CodeRegisterRxSignal(const dbc::SMessageDef& rsMsg, const dbc::SSignalDef& rsSig);

    std::string CodeRegisterTxSignal(const dbc::SMessageDef& rsMsg, const dbc::SSignalDef& rsSig);

    std::string CodeUnregisterSignal(const dbc::SMessageDef& rsMsg, const dbc::SSignalDef& rsSig);

    std::string CodeProcessRxSignal(const dbc::SMessageDef& rsMsg, const dbc::SSignalDef& rsSig);

    std::string InitTrigger(const dbc::SMessageDef& rsMsg, const dbc::SSignalDef& rsSig);

    std::string CodeComposeTxSignal(const dbc::SMessageDef& rsMsg, const dbc::SSignalDef& rsSig);

    std::filesystem::path       m_pathProject;
    std::filesystem::path       m_pathHeader;
    std::filesystem::path       m_pathCpp;
    std::ofstream               m_fstreamHeader;
    std::ofstream               m_fstreamCpp;
    const dbc::CDbcParser&      m_rparser;
};



#endif // !defined CAN_DL_H