/*! * \file CInterfaceManager.h * \author S. Eisenhauer * \date 25.10.2011 * \brief Header of CInterfaceManager */ #ifndef CINTERFACEMANAGER_H_ #define CINTERFACEMANAGER_H_ #include "interface_manager.h" #include /// number of CAN interfaces on the used XORAYA #define nNUMBER_OF_CAN_INTERFACES 8 /// identifier meaning all interfaces #define nALL_CAN_INTERFACES 0 /// Implementation of IInterfaceManager class CInterfaceManager : public IInterfaceManager { public: CInterfaceManager(); virtual ~CInterfaceManager(); virtual x2e::status_t enWriteCanMessage( int32_t i32InterfaceHandle, uint32_t u32MsgId, bool boIsExtended, bool boIsRtrFrame, const uint8_t* pu8Data, uint32_t u32DataLength); virtual x2e::status_t enGetQueueFillLevel(x2e::Log::queueFillLevel& stFillLevel); virtual x2e::status_t enPeekMessage( x2e::Log::queueFillLevel& stFillLevel, x2e::Log::messageDescription* pstMsgDescr, x2e::Log::framePayload* pstMsgPayload); virtual x2e::status_t enEnableInterface(int32_t i32RequestedInterface); virtual x2e::status_t enDisableInterface(int32_t i32RequestedInterface); virtual x2e::status_t enEnableAllInterfaces(); virtual x2e::status_t enGetTimestamp( uint32_t* pu32TsHigh, uint32_t* pu32TsLow ); virtual x2e::status_t enWait(); void vDeinit(); virtual int32_t i32GetInterfaceByLogIfId(x2e::Log::InterfaceId::ifid_t u16LogIfId) { return x2e::Log::InterfaceId::getGlobalIfInstanceNumber(u16LogIfId); } private: x2e::System::Driver* m_pxDrv; x2e::System::Timer::hardwareTimer m_enTimer; enum m_tenState { nenOff = 0, nenOn = 1 }; }; #endif /* CINTERFACEMANAGER_H_ */