#ifdef __I8124APIFUNCTION #define EXP extern "C" __declspec (dllexport) #else #define EXP extern "C" __declspec (dllimport) #endif //Board Functions EXP DWORD CALLBACK I8124_TotalI8124Module(BYTE *TotalModules ,BYTE *SlotNoList); EXP DWORD CALLBACK I8124_ActiveModule(BYTE SlotNo); EXP DWORD CALLBACK I8124_CloseModule(BYTE SlotNo); EXP DWORD CALLBACK I8124_GetDLLVersion(void); //Firmware Functions EXP DWORD CALLBACK I8124_GetFirmwareVersion(BYTE SlotNo); EXP DWORD CALLBACK I8124_ResetFirmware(BYTE SlotNo); //Master Operating Functions EXP DWORD CALLBACK I8124_GetMasterMACID(BYTE SlotNo); EXP DWORD CALLBACK I8124_SetMasterMACID(BYTE SlotNo,BYTE MasterMACID); EXP DWORD CALLBACK I8124_GetBaudRate(BYTE SlotNo); EXP DWORD CALLBACK I8124_SetBaudRate(BYTE SlotNo,BYTE BaudRate); EXP DWORD CALLBACK I8124_GetMasterStatus(BYTE SlotNo); EXP DWORD CALLBACK I8124_GetSlaveStatus(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_StartDevice(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_StopDevice(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_StartAllDevice(BYTE SlotNo); EXP DWORD CALLBACK I8124_StopAllDevice(BYTE SlotNo); EXP DWORD CALLBACK I8124_AddDevice(BYTE SlotNo,BYTE DesMACID,WORD Explicit_EPR); EXP DWORD CALLBACK I8124_RemoveDevice(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_AddIOConnection(BYTE SlotNo,BYTE DesMACID,BYTE ConType,WORD DeviceInputLen,WORD DeviceOutputLen,WORD EPR); EXP DWORD CALLBACK I8124_RemoveIOConnection(BYTE SlotNo,BYTE DesMACID,BYTE ConType); EXP DWORD CALLBACK I8124_GetAttribute(BYTE SlotNo,BYTE DesMACID,BYTE ClassID,BYTE InstanceID,BYTE AttributeID); EXP DWORD CALLBACK I8124_GetAttributeW(BYTE SlotNo,BYTE DesMACID,WORD ClassID,BYTE InstanceID,BYTE AttributeID); EXP DWORD CALLBACK I8124_IsGetAttributeOK(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_GetAttributeValue(BYTE SlotNo,BYTE DesMACID,WORD *DataLen,BYTE *DATA); EXP DWORD CALLBACK I8124_SetAttribute(BYTE SlotNo,BYTE DesMACID,BYTE ClassID,BYTE InstanceID,BYTE AttributeID,WORD DataLen,BYTE *DATA); EXP DWORD CALLBACK I8124_SetAttributeW(BYTE SlotNo,BYTE DesMACID,WORD ClassID,WORD InstanceID,BYTE AttributeID,WORD DataLen,BYTE *DATA); EXP DWORD CALLBACK I8124_IsSetAttributeOK(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_ClearAllConfig(BYTE SlotNo); EXP DWORD CALLBACK I8124_SearchAllDevices(BYTE SlotNo); EXP DWORD CALLBACK I8124_SearchSpecificDevice(BYTE SlotNo,WORD ListCount,BYTE *DesMACIDList); EXP DWORD CALLBACK I8124_IsSearchOK(BYTE SlotNo); EXP DWORD CALLBACK I8124_GetSearchedDevices(BYTE SlotNo,WORD *TotalDevices,BYTE *DesMACID,BYTE *Type,WORD *DeviceInputLen,WORD *DeviceOutputLen); EXP DWORD CALLBACK I8124_GetDeviceInfoFromScanList(BYTE SlotNo,BYTE DesMACID,WORD *ListCount,BYTE *ConnectionTypeList,WORD *InputDataLenList,WORD *OutputDataLenList,WORD *EPRList); EXP DWORD CALLBACK I8124_GetScanList(BYTE SlotNo,WORD *TotalDevices,BYTE *DesMACIDList,BYTE *ConnectionTypeList,WORD *InputDataLenList,WORD *OutputDataLenList,WORD *EPR_List); EXP DWORD CALLBACK I8124_ImportEEPROM(BYTE SlotNo,WORD ListCount,BYTE *DesMACIDList,BYTE *ConnectionTypeList,WORD *InputDataLenList,WORD *OutputDataLenList,WORD *EPR_List); // I/O Configuring Functions EXP DWORD CALLBACK I8124_ReadInputData(BYTE SlotNo,BYTE DesMACID,BYTE ConType,WORD *IOLen,BYTE *IODATA); EXP DWORD CALLBACK I8124_WriteOutputData(BYTE SlotNo,BYTE DesMACID,BYTE ConType,WORD IOLen,BYTE *IODATA); EXP DWORD CALLBACK I8124_SendExplicitMSG(BYTE SlotNo,BYTE DesMACID,BYTE ServiceID,BYTE ClassID,BYTE InstanceID,WORD DataLen,BYTE *DATA); EXP DWORD CALLBACK I8124_SendExplicitMSG_W(BYTE SlotNo,BYTE DesMACID,BYTE ServiceID,WORD ClassID,WORD InstanceID,WORD DataLen,BYTE *DATA); EXP DWORD CALLBACK I8124_IsExplicitMSGRespOK(BYTE SlotNo,BYTE DesMACID); EXP DWORD CALLBACK I8124_GetExplicitMSGRespValue(BYTE SlotNo,BYTE DesMACID,WORD *DataLen,BYTE *DATA); EXP DWORD CALLBACK I8124_ReadbackOutputData(BYTE SlotNo,BYTE DesMACID,BYTE ConType,WORD *IOLen,BYTE *IODATA); //for Firmware V1.3 or newer EXP DWORD CALLBACK I8124_ReadInputArea(BYTE SlotNo,WORD Offset,WORD DataLen,BYTE *DataArray); EXP DWORD CALLBACK I8124_WriteOutputArea(BYTE SlotNo,WORD Offset,WORD DataLen,BYTE *DataArray); EXP DWORD CALLBACK I8124_ReadbackOutputArea(BYTE SlotNo,WORD Offset,WORD DataLen,BYTE *DataArray); //ConnectionType #define ConType_Explicit 0 #define ConType_Poll 1 #define ConType_BitStrobe 2 #define ConType_COS 3 #define ConType_Cyclic 4 #define ConType_MultiPoll 5 //Board Error Code #define I8124_NoError 0 #define I8124_SlotNumberError 10003 #define I8124_InitError 10007 #define I8124_SoftBufferIsEmpty 10021 #define I8124_SoftBufferIsFull 10022 #define I8124_TimeOut 10023 #define I8124_SetCyclicMsgFailure 10024 #define I8124_DpramOverRange 10025 #define I8124_NoDpramCmd 10026 #define I8124_ModeError 10027 #define I8124_NoFileInside 10030 #define I8124_DownloadFailure 10031 #define I8124_EEPROMDamage 10032 #define I8124_NotEnoughSpace 10033 #define I8124_StillDownloading 10034 #define I8124_BoardModeError 10035 #define I8124_SetDateTimeFailure 10036 #define I8124_SlotNotConfig 10040 #define I8124_SlotNotInit 10041 #define I8124_ReplyError 10042 //Firmware Error Code #define DNMXS_NoError 0 #define DNMXS_UnKnowError 5000 //Master Status Error Code #define DNMXS_BoardNotActive 1000 #define DNMXS_OnlineError 1001 #define DNMXS_CANBusError 1002 #define DNMXS_Booting 1003 //General Error Code #define DNMXS_MACIDError 1050 #define DNMXS_BaudRateError 1051 #define DNMXS_ConnectionTypeError 1052 #define DNMXS_DuplicMasterMACID 1053 //DesMACID»PMaster MACID¬Û¦P #define DNMXS_EEPROMError 1054 #define DNMXS_NowScanning 1055 #define DNMXS_ScanListError 1056 #define DNMXS_DeviceExist 1057 #define DNMXS_DeviceNotExist 1058 #define DNMXS_MapTableError 1059 //IOConnection Error #define DNMXS_ExplicitNotAllocate 1100 #define DNMXS_PollNotAllocate 1101 #define DNMXS_BitStrobeNotAllocate 1102 #define DNMXS_COSNotAllocate 1103 #define DNMXS_CyclicNotAllocate 1104 #define DNMXS_PollAlreadyExist 1105 #define DNMXS_BitStrobeAlreadyExist 1106 #define DNMXS_COSAlreadyExist 1107 #define DNMXS_CyclicAlreadyExist 1108 #define DNMXS_CommunicationPause 1109 //Slave Error Code #define DNMXS_SlaveNoResp 1150 #define DNMXS_WaitForSlaveResp 1151 #define DNMXS_SlaveRespError 1152 #define DNMXS_OutputDataLenError 1153 #define DNMXS_InputDataLenError 1154 //Input / Output Area #define DNMXS_OutofRange 1200