summaryrefslogtreecommitdiffstats
path: root/Master/Masterarbeit/src/XorayaPluginExecutor/CInterfaceManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Masterarbeit/src/XorayaPluginExecutor/CInterfaceManager.h')
-rw-r--r--Master/Masterarbeit/src/XorayaPluginExecutor/CInterfaceManager.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/Master/Masterarbeit/src/XorayaPluginExecutor/CInterfaceManager.h b/Master/Masterarbeit/src/XorayaPluginExecutor/CInterfaceManager.h
new file mode 100644
index 0000000..34cff19
--- /dev/null
+++ b/Master/Masterarbeit/src/XorayaPluginExecutor/CInterfaceManager.h
@@ -0,0 +1,68 @@
+/*!
+ * \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 <x2e/Timer.hpp>
+
+/// 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_ */