123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- #ifndef _SAPRTPRO_H_
- #define _SAPRTPRO_H_
- // SapRTProXferNode.h : header file
- //
- #include "SapClassBasicDef.h"
- //labels assigned to type of rtpro device.
- #define BASE_RTPRO_LABEL "Base RtPro" // base onboard RtPro device
- #define EXPANSION_RTPRO_LABEL "Expansion RtPro" // expansion rtpro device
- #define CPU_RTPRO_LABEL "Cpu RtPro" // cpu based rtpro device
- #define SAPRTPRO_MAX_NAME_SIZE 128
- typedef CORPIXPRO_REG_SET SAPRTPRO_REG_SET, *PSAPRTPRO_REG_SET;
- //obsolete SapRTPro class is defined as SapRTProXferNode
- #define SapRTPro SapRTProXferNode
- //
- // SapCommCallbackInfo class declaration
- //
- class SAPCLASSBASIC_CLASS SapRTProMsgCallbackInfo
- {
- public:
- SapRTProMsgCallbackInfo(int command, void *inData= NULL, int inDataSize= 0, void *outData= NULL, int outDataSize= 0, void *context= NULL)
- {
- m_command = command;
- m_inData = inData;
- m_inDataSize = inDataSize;
- m_outData = outData;
- m_outDataSize = outDataSize;
- m_context = context;
- }
- virtual ~SapRTProMsgCallbackInfo() {}
- int GetCommand() const { return m_command; }
- void * GetInData() const { return m_inData; }
- int GetInDataSize() const { return m_inDataSize; }
- void * GetOutData() const { return m_outData; }
- int GetOutDataSize() const { return m_outDataSize; }
- void * GetContext() const { return m_context; }
- protected:
- int m_command;
- void * m_inData;
- int m_inDataSize;
- void * m_outData;
- int m_outDataSize;
- void * m_context;
- };
- class SAPCLASSBASIC_CLASS SapRTProEventCallbackInfo
- {
- public:
- SapRTProEventCallbackInfo( void *context, COREVENTINFO eventInfo);
- ~SapRTProEventCallbackInfo();
- // Attributes
- void *GetContext() const { return m_Context; }
- COREVENTINFO GetEventInfo() const { return m_EventInfo; } // Direct Access (internal)
- // Common Parameters
- BOOL GetEventCount(int *eventCount);
- BOOL GetEventIndex(int *eventIndex);
- BOOL GetEventType( int *eventType);
- BOOL GetHostTimeStamp(UINT64 *hostTimeStamp);
- BOOL GetAuxiliaryTimeStamp(UINT64 *auxTimeStamp);
- // Custom Parameters
- BOOL GetCustomData(void **customData);
- BOOL GetCustomSize(int *customSize);
- // Unnamed Parameters
- BOOL GetGenericParam0(int *paramValue);
- BOOL GetGenericParam1(int *paramValue);
- BOOL GetGenericParam2(int *paramValue);
- BOOL GetGenericParam3(int *paramValue);
- // Event-specific Parameters
- BOOL GetFeatureIndex(int *featureIndex); // Used by "FeatureChanged" event
- protected:
- void *m_Context;
- COREVENTINFO m_EventInfo;
- };
- typedef SAPSTATUS (CCONV *SapRTProEventCallback)(SapRTProEventCallbackInfo*);
- typedef SAPSTATUS (CCONV *SapRTProMsgCallback)(SapRTProMsgCallbackInfo *);
- //
- // SapRTProXferNode class declaration
- //
- class SAPCLASSBASIC_CLASS SapRTProXferNode : public SapXferNode
- {
- public:
- // Buffer types
- enum RegAccessMode
- {
- RegAccessModeAutoIncrement = CORPIXPRO_REGISTER_AUTO_INCREMENT,
- RegAccessModeNoIncrement = CORPIXPRO_REGISTER_NO_INCREMENT,
- };
- enum RegAccessType
- {
- RegAccessTypeUint8 = CORPIXPRO_REGISTER_ACCESS_TYPE_UINT8,
- RegAccessTypeUint16 = CORPIXPRO_REGISTER_ACCESS_TYPE_UINT16,
- RegAccessTypeUint32 = CORPIXPRO_REGISTER_ACCESS_TYPE_UINT32,
- RegAccessTypeUint32_8 = CORPIXPRO_REGISTER_ACCESS_TYPE_UINT32_UINT8,
- };
- enum MsgPriority
- {
- MsgPriorityLow = CORPIXPRO_VAL_MESSAGE_PRIORITY_LOW,
- MsgPriorityNormal = CORPIXPRO_VAL_MESSAGE_PRIORITY_NORMAL,
- MsgPriorityHigh = CORPIXPRO_VAL_MESSAGE_PRIORITY_HIGH,
- };
- enum MsgFlag
- {
- MsgFlagSynchronous = CORPIXPRO_VAL_MESSAGE_FLAG_SYNCHRONOUS,
- MsgFlagAsynchornous = CORPIXPRO_VAL_MESSAGE_FLAG_ASYNCHRONOUS,
- };
- enum MemAccessFlags
- {
- MemAccessAutoAddressIncrement = CORPIXPRO_MEMACCESS_AUTO_ADDRESS_INCREMENT,
- MemAccessNoAddressIncrement = CORPIXPRO_MEMACCESS_NO_ADDRESS_INCREMENT,
- };
- // Constructor/Destructor
- SapRTProXferNode(SapLocation loc = SapLocation::ServerSystem,
- SapRTProMsgCallback pCallback = NULL,
- void *pContext = NULL);
- SapRTProXferNode(const SapRTProXferNode &pixpro);
- virtual ~SapRTProXferNode();
- SapRTProXferNode &operator=(const SapRTProXferNode &pixpro);
- // SapXferNode type information
- XferNodeType GetXferNodeType() { return NodeTypeRTPro; }
- //messaging functions
- virtual BOOL SendMessage( int cmd,
- void *inData,
- int inDataSize,
- void *outData,
- int outDataSize,
- MsgPriority priority = MsgPriorityNormal ,
- MsgFlag flag = MsgFlagSynchronous );
- virtual BOOL SetMsgCallbackInfo( SapRTProMsgCallback pCallback, void *context);
- BOOL SetEventCallbackInfo( int eventType, SapRTProEventCallback pCallback, void *context);
-
- //register read/write access.
- virtual BOOL WriteRegisterBlock( int deviceId,
- int nbReg,
- int regOffset,
- void *pValues,
- RegAccessMode mode = RegAccessModeNoIncrement,
- RegAccessType accessType = RegAccessTypeUint32);
- virtual BOOL WriteRegisters( int deviceId, int nbReg, SAPRTPRO_REG_SET *pRegs);
- //register read/write access.
- virtual BOOL ReadRegisterBlock( int deviceId,
- int nbReg,
- int regOffset,
- void *pValues,
- RegAccessMode mode = RegAccessModeNoIncrement,
- RegAccessType accessType = RegAccessTypeUint32);
- virtual BOOL ReadRegisters( int deviceId, int nbReg, SAPRTPRO_REG_SET *pRegs);
- virtual BOOL LoadFirmwareFromFile( int deviceId, char *filename);
- virtual BOOL GetLabel( char *label, UINT32 maxSize);
- virtual BOOL GetDesignName( char *pName, UINT32 size);
- //override base implmentation.
- //removed init check, because rtpro parameters can be changed if object has been created.
- virtual BOOL SetSrcNode(SapXferNode *pSrcNode, int srcPort = 0) { m_pSrcNode = pSrcNode; m_SrcPort = srcPort; return TRUE;}
- virtual BOOL SetXferParams(SapXferParams xferParams, int portIndex = 0) { m_XferParams[portIndex] = xferParams; return TRUE;}
- // Direct capability/parameter access
- virtual BOOL GetCapability(int cap, void *pValue);
- virtual BOOL GetParameter(int param, void *pValue);
- virtual BOOL SetParameter(int param, int value);
- virtual BOOL SetParameter(int param, void *pValue);
-
- // Module create/destroy
- virtual BOOL Create();
- virtual BOOL Destroy();
- //
- virtual BOOL ReadMemory( int deviceId, int address, void *pData, int dataSize, MemAccessFlags flags);
- virtual BOOL WriteMemory( int deviceId, int address, void *pData, int dataSize, MemAccessFlags flags);
- protected:
- static SAPSTATUS CCONV OnRTProMsgCallback(UINT32 command, void *inData, UINT32 inDataSize, void *outData, UINT32 outDataSize, void *context);
- static SAPSTATUS CCONV OnEventCallback( void *context, COREVENTINFO eventInfo);
- int GetBytesPerReg( RegAccessType accessType);
- SapRTProMsgCallback m_pRTProMsgCallback;
- void *m_pMsgContext;
- SapRTProEventCallback m_pEventCallback;
- void *m_pEventContext;
- int m_EventType; //events that have been enabled.
- };
- #endif // _SAPRTPRO_H_
|