/***************************************************************************** ****************************************************************************** ****************************************************************************** IIIIIIII CCC PPPPPPPP DDDDDDD AA SSS II CC CC PP PP DD DD AAAA SS SS II CC PP PP DD DD AA AA SS II CC PP PP DD DD AA AA SS II CC PPPPPPPPP DD DD AAAAAAAAAA SS II CC PP DD DD AA AA SS II CC CC PP DD DD AA AA SS SS IIIIIIII CCC PP DDDDDDD AA AA SSS ****************************************************************************** ****************************************************************************** ****************************************************************************** ****************************************************************************** ****************************************************************************** Version: V3.0 Date: 2009.05.02 Author: Johney Hu ****************************************************************************** ****************************************************************************** */ #include #ifdef __PISOCANDNMAPIFUNCTION #define __EXP extern "C" DWORD __declspec(dllexport) __stdcall #else #define __EXP extern "C" DWORD __declspec(dllimport) __stdcall #endif //Board Functions __EXP CALLBACK CANDNM_GetBoardInf(BYTE BoardNo, DWORD *dwVID,DWORD *dwDID,DWORD *dwSVID,DWORD *dwSDID,DWORD *dwSAuxID,DWORD *dwIrqNo); __EXP CALLBACK CANDNM_TotalPISOCANDNMBoard(BYTE *TotalBoards ,BYTE *BoardIDList,BYTE *PortNumList); __EXP CALLBACK CANDNM_Active(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_Close(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_GetDLLVersion(void); //DeviceNet XServer Version __EXP CALLBACK CANDNM_GetDNMXSPCVersion(void); //Master Operating Functions __EXP CALLBACK CANDNM_GetMasterMACID(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_SetMasterMACID(BYTE BoardNo,BYTE PortNo,BYTE MasterMACID); __EXP CALLBACK CANDNM_GetBaudRate(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_SetBaudRate(BYTE BoardNo,BYTE PortNo,BYTE BaudRate); __EXP CALLBACK CANDNM_GetMasterStatus(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_GetSlaveStatus(BYTE BoardNo,BYTE PortNo,BYTE DesMACID); __EXP CALLBACK CANDNM_StartDevice(BYTE BoardNo,BYTE PortNo,BYTE DesMACID); __EXP CALLBACK CANDNM_StopDevice(BYTE BoardNo,BYTE PortNo,BYTE DesMACID); __EXP CALLBACK CANDNM_StartAllDevice(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_StopAllDevice(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_AddDevice(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,WORD Explicit_EPR); __EXP CALLBACK CANDNM_RemoveDevice(BYTE BoardNo,BYTE PortNo,BYTE DesMACID); __EXP CALLBACK CANDNM_AddIOConnection(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE ConType,WORD DeviceInputLen,WORD DeviceOutputLen,WORD EPR); __EXP CALLBACK CANDNM_RemoveIOConnection(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE ConType); __EXP CALLBACK CANDNM_GetAttribute(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE ClassID,BYTE InstanceID,BYTE AttributeID); __EXP CALLBACK CANDNM_IsGetAttributeOK(BYTE BoardNo,BYTE PortNo,BYTE DesMACID); __EXP CALLBACK CANDNM_GetAttributeValue(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE *DATA,WORD *DataLen); __EXP CALLBACK CANDNM_SetAttribute(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE ClassID,BYTE InstanceID,BYTE AttributeID,WORD DataLen,BYTE *DATA); __EXP CALLBACK CANDNM_IsSetAttributeOK(BYTE BoardNo,BYTE PortNo,BYTE DesMACID); __EXP CALLBACK CANDNM_ClearAllConfig(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_SearchAllDevices(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_SearchSpecificDevice(BYTE BoardNo,BYTE PortNo,WORD ListCount,BYTE *DesMACIDList); __EXP CALLBACK CANDNM_IsSearchOK(BYTE BoardNo,BYTE PortNo); __EXP CALLBACK CANDNM_GetSearchedDevices(BYTE BoardNo,BYTE PortNo,WORD *TotalDevices,BYTE *DesMACID,BYTE *Type,WORD *DeviceInputLen,WORD *DeviceOutputLen); __EXP CALLBACK CANDNM_GetDeviceInfoFromScanList(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,WORD *ListCount,BYTE *ConnectionTypeList,WORD *InputDataLenList,WORD *OutputDataLenList,WORD *EPRList); __EXP CALLBACK CANDNM_GetScanList(BYTE BoardNo,BYTE PortNo,WORD *TotalDevices,BYTE *DesMACIDList,BYTE *ConnectionTypeList,WORD *InputDataLenList,WORD *OutputDataLenList,WORD *EPR_List); __EXP CALLBACK CANDNM_ImportScanList(BYTE BoardNo,BYTE PortNo,WORD ListCount,BYTE *DesMACIDList,BYTE *ConnectionTypeList,WORD *InputDataLenList,WORD *OutputDataLenList,WORD *EPR_List); // I/O Configuring Functions __EXP CALLBACK CANDNM_ReadInputData(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE ConType,WORD *IOLen,BYTE *IODATA); __EXP CALLBACK CANDNM_WriteOutputData(BYTE BoardNo,BYTE PortNo,BYTE DesMACID,BYTE ConType,WORD IOLen,BYTE *IODATA); //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 DNM_NoError 0 #define CAN_DriverError 1 #define CAN_ActiveBoardError 2 #define CAN_BoardNumberError 3 #define CAN_PortNumberError 4 #define CAN_ResetError 5 #define CAN_SoftResetError 6 #define CAN_InitError 7 #define CAN_ConfigError 8 #define CAN_SetACRError 9 #define CAN_SetAMRError 10 #define CAN_SetBaudRateError 11 #define CAN_EnableRxIrqFailure 12 #define CAN_DisableRxIrqFailure 13 #define CAN_InstallIrqFailure 14 #define CAN_RemoveIrqFailure 15 #define CAN_TransmitBufferLocked 16 #define CAN_TransmitIncomplete 17 #define CAN_ReceiveBufferEmpty 18 #define CAN_DataOverrun 19 #define CAN_ReceiveError 20 #define CAN_SoftBufferIsEmpty 21 #define CAN_SoftBufferIsFull 22 #define CAN_TimeOut 23 #define CAN_InstallIsrError 24 //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 #define DNMXS_ConfigError 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