ZT/sources/ExtModules/Externaliomodule.h

64 lines
1.4 KiB
C++

#ifndef EXTERNALIOMODULE_H
#define EXTERNALIOMODULE_H
#include "GlobalDefine.h"
#ifndef WINDOWS_OS
#include "seamaxlin.h"
#endif
#include "IOModule.h"
typedef enum eExternalModuleType
{
EXT_IO_TYPE_430 = 430,
EXT_IO_TYPE_440 = 440,
EXT_IO_TYPE_470 = 470,
EXT_IO_TYPE_INVALID = 0
}eExternalModuleType_t;
enum eExternalModuleRetValue
{
EXT_MOD_RET_OK,
EXT_MOD_RET_ERR_INVALID_POINTER,
EXT_MOD_RET_ERR_MODULE_OFFLINE,
EXT_MOD_RET_ERR_MODULE_TYPE_MISMATCH,
EXT_MOD_RET_MODULE_ALREADY_OPENED,
EXT_MOD_RET_WRONG_ANALOG_CONFIGURATION
};
class CExternalIOModule
{
public:
CExternalIOModule();
virtual ~CExternalIOModule();
#ifndef WINDOWS_OS
unsigned int SetModuleDriverPtr(CSeaMaxLin *DriverPtr);
virtual unsigned int OpenModule(unsigned int SlaveAddress,CSeaMaxLin *DriverPtr, unsigned int ModuleID);
// unsigned int OpenModule(unsigned int SlaveAddress,SeaMaxLin *DriverPtr, unsigned int ModuleID);
eExternalModuleType_t GetType(void){return mModuleType;}
unsigned int GetID(void){return mModuleID;}
#endif
protected:
bool mIsOpened;
#ifndef WINDOWS_OS
CSeaMaxLin *mModuleDriverPtr;
unsigned int mModuleAddress;
unsigned int mModuleID;
eExternalModuleType_t mModuleType;
seaio_type_t mSeaIOModuleType;
address_loc_t mRegisterStart;
address_range_t mRegisterRange;
#endif
// pseaMaxModule->Read(2,type,start,range,&data[0]);
};
#endif // EXTERNALIOMODULE_H