//#ifdef __cplusplus // #define EXPORTS "C" __declspec (dllexport) //#else // #define EXPORTS __declspec (dllexport) //#endif // #ifdef __cplusplus #define EXPORTS extern "C" __declspec (dllexport) #else #define EXPORTS #endif //==================== #define CPM100_NoError 0 #define CPM100_DriverError 1 #define CPM100_ActiveBoardError 2 #define CPM100_BoardNumberError 3 #define CPM100_ConfigureErr 102 #define CPM100_DataLenErr 103 #define CPM100_NodeAddErr 104 #define CPM100_StatusErr 106 #define CPM100_SetGuardErr 107 #define CPM100_NodeNumberErr 109 #define CPM100_CobIdErr 110 #define CPM100_SDOSendErr 112 #define CPM100_PDOSendErr 115 #define CPM100_PDOTypeErr 116 #define CPM100_PDOEntryErr 118 #define CPM100_PDORemoveErr 120 #define CPM100_TimeOut 121 #define CPM100_ChannelErr 127 #define CPM100_SYNCSendErr 130 #define CPM100_SYNCSetErr 131 #define CPM100_SDODataLose 140 #define CPM100_PDOFIFOisEmpty 147 #define CPM100_EMCYFIFOisEmpty 148 #define CPM100_SendCmdErr 150 #define CPM100_FirmwareErr 160 #define CPM100_MasterInitErr 162 #define CPM100_MasterShutdownErr 163 #define CPM100_CobIdChangeErr 165 #define CPM100_SetEventTimerErr 167 //--------------------------------------- EXPORTS float CALLBACK CPM100_GetVersion(void); EXPORTS int CALLBACK CPM100_TotalBoard(void); EXPORTS int CALLBACK CPM100_GetBoardSwitchNo(BYTE BoardCntNo, BYTE *BoardSwitchNo); EXPORTS int CALLBACK CPM100_GetBoardInf(BYTE bBoardNo, DWORD *dwVID,DWORD *dwDID, DWORD *dwSVID,DWORD *dwSDID,DWORD *dwSAuxID,DWORD *dwIrqNo); EXPORTS int CALLBACK CPM100_ActiveBoard(BYTE bBoardNo); EXPORTS int CALLBACK CPM100_CloseBoard(BYTE bBoardNo); EXPORTS int CALLBACK CPM100_BoardIsActive(BYTE bBoardNo); EXPORTS int CALLBACK CPM100_GetCANStatus(BYTE bBoardNo, BYTE *bStatus); EXPORTS int CALLBACK CPM100_InitMaster(BYTE bBoardNo, BYTE bBaudrate); //BaudRate 0=10K 1=20K 2=50K 3=125K 4=250K 5=500K 6=800K 7=1Mbps EXPORTS int CALLBACK CPM100_ShutdownMaster(BYTE bBoardNo); EXPORTS int CALLBACK CPM100_AddNode(BYTE bBoardNo,BYTE bNodeID); EXPORTS int CALLBACK CPM100_RemoveNode(BYTE bBoardNo,BYTE bNodeID); EXPORTS int CALLBACK CPM100_NMTChangeState(BYTE bBoardNo, BYTE bNodeID, BYTE bState); EXPORTS int CALLBACK CPM100_NMTGetState(BYTE bBoardNo, BYTE bNodeID, BYTE *bState); EXPORTS int CALLBACK CPM100_NMTGuarding(BYTE bBoardNo,BYTE bNodeID,WORD wGuardTime,BYTE bLifeTimeFactor); EXPORTS int CALLBACK CPM100_SendSYNC(BYTE bBoardNo,WORD wCobid,DWORD dwSyncCycle); EXPORTS int CALLBACK CPM100_GetSYNCingID(BYTE bBoardNo, BYTE *IdNum, WORD *wSYNCIdList, DWORD *dwSYNCCycleList); EXPORTS int CALLBACK CPM100_ChangeSYNCID(BYTE bBoardNo, BYTE bNodeID, WORD wCobId); EXPORTS int CALLBACK CPM100_ChangeEMCYID(BYTE bBoardNo, BYTE bNodeID, WORD wCobId); EXPORTS int CALLBACK CPM100_ReadEMCYCount(BYTE bBoardNo); EXPORTS int CALLBACK CPM100_ReadEMCY(BYTE bBoardNo, BYTE* bNode, WORD* wCobId, BYTE* EMCY_Data, WORD *wYear, WORD *wMonth, WORD *wDayOfWeek, WORD *wDay, WORD *wHour, WORD *wMinute, WORD *wSecond, WORD *wMilliseconds); EXPORTS int CALLBACK CPM100_SDOAbortTransmit(BYTE bBoardNo, BYTE bNodeID, WORD wIndex, BYTE bSubIndex); EXPORTS int CALLBACK CPM100_SDOReadData(BYTE bBoardNo,BYTE bNodeID,WORD wIndex,BYTE bSubIndex,WORD *pRDatalen,BYTE *pRData); EXPORTS int CALLBACK CPM100_SDOWriteData(BYTE bBoardNo,BYTE bNodeID,WORD wIndex,BYTE bSubIndex,WORD wWDatalen,BYTE *pWData,WORD *pRDatalen,BYTE *pRData); EXPORTS int CALLBACK CPM100_DynamicPDO(BYTE bBoardNo,BYTE bNodeID,WORD wCobId,BYTE bRxTxType,BYTE bPDOEntry,BYTE *pbMappingData); EXPORTS int CALLBACK CPM100_InstallPDO(BYTE bBoardNo,BYTE bNodeID,WORD wCobId,WORD wPDOIndex); EXPORTS int CALLBACK CPM100_RemovePDO(BYTE bBoardNo,BYTE bNodeID,WORD wCobId,BYTE RxTxType,BYTE bPDOEntry); EXPORTS int CALLBACK CPM100_PDOTxType(BYTE bBoardNo, BYTE bNodeID, WORD wCobId, BYTE bTxtype); EXPORTS int CALLBACK CPM100_SetEventTimer(BYTE bBoardNo, BYTE bNodeID, WORD wCobId, WORD wEventTimer); EXPORTS int CALLBACK CPM100_ChangePDOCobID(BYTE bBoardNo, BYTE bNodeID, WORD old_CobID, WORD new_CobID); EXPORTS int CALLBACK CPM100_PDORemote(BYTE bBoardNo, WORD wCobId, BYTE *pRDatalen, BYTE *pRData, DWORD *UpperTime, DWORD *LowerTime); EXPORTS int CALLBACK CPM100_PDOWrite(BYTE bBoardNo,WORD wCobId,BYTE bOffset,BYTE bTDataLen,BYTE *pTData); EXPORTS int CALLBACK CPM100_ReadPDOCount(BYTE bBoardNo); EXPORTS int CALLBACK CPM100_ReadPDOMessage(BYTE bBoardNo, WORD* wCobId, BYTE *pRDataLen, BYTE *pRData, DWORD *UpperTime, DWORD *LowerTime); EXPORTS int CALLBACK CPM100_WriteDO(BYTE bBoardNo, BYTE bNodeID, BYTE bDOChannel, BYTE bValue); EXPORTS int CALLBACK CPM100_WriteAO(BYTE bBoardNo, BYTE bNodeID, BYTE bAOChannel, WORD wValue); EXPORTS int CALLBACK CPM100_ReadDI(BYTE bBoardNo, BYTE bNodeID, BYTE bDIChannel, BYTE *bValue); EXPORTS int CALLBACK CPM100_ReadAI(BYTE bBoardNo, BYTE bNodeID, BYTE bAIChannel, WORD *wValue); EXPORTS int CALLBACK CPM100_GetFirmwareVersion(BYTE bBoardNo, WORD *wVersion); EXPORTS int CALLBACK CPM100_COBIDInfo(BYTE bBoardNo, BYTE bNodeID, WORD *wSYNCID, WORD *wEMCYID, BYTE *bRxPDONum, WORD *wRxPDOID, BYTE *bTxPDONum, WORD *wTxPDOID); EXPORTS int CALLBACK CPM100_PDOMappingInfo(BYTE bBoardNo, WORD wCobId, BYTE *bRxTxType, BYTE *bPDONo, BYTE *bPDOEntry, BYTE *bLen, BYTE *bRxData, BYTE *bMappingData); EXPORTS int CALLBACK CPM100_GetNodeList(BYTE bBoardNo, BYTE *bNodeList); // bNodeList is a 16 bytes array, bit=0 means not under control, bit=1 means under control // bNodeList[0] is node 0 ~ 7 , bNodeList[1] is node 8 ~ 15 ,... and so on // example: bNodeList[0] = 0x2A (0010 1100) ==> node 2,3,5 have been added under PISO-CPM100 // example: bNodeList[1] = 0x49 (0100 1001) ==> node 8,11,14 have been added under PISO-CPM100