#ifdef __CM100U_PMAPIFUNCTION #define EXP extern "C" __declspec (dllexport) #else #define EXP extern "C" __declspec (dllimport) #endif //Board Functions EXP DWORD CALLBACK CM100PM_GetBoardInf(BYTE BoardNo, DWORD *dwVID,DWORD *dwDID, DWORD *dwSVID,DWORD *dwSDID,DWORD *dwSAuxID,DWORD *dwIrqNo); EXP DWORD CALLBACK CM100PM_TotalCM100Board(BYTE *TotalBoards ,BYTE *BoardIDList); EXP DWORD CALLBACK CM100PM_ActiveBoard(BYTE BoardNo); EXP DWORD CALLBACK CM100PM_CloseBoard(BYTE BoardNo); EXP DWORD CALLBACK CM100PM_GetDLLVersion(void); //Firmware Functions EXP DWORD CALLBACK CM100PM_GetFirmwareVersion(BYTE BoardNo); EXP DWORD CALLBACK CM100PM_ResetFirmware(BYTE BoardNo); //Master Operating Functions EXP DWORD CALLBACK CM100PM_GetPMIDs(BYTE BoardNo,BYTE *PMIDCount,BYTE *PMIDArray); EXP DWORD CALLBACK CM100PM_SetPMIDs(BYTE BoardNo,BYTE PMIDCount,BYTE *PMIDArray); EXP DWORD CALLBACK CM100PM_GetBaudRate(BYTE BoardNo,BYTE *BaudRate); EXP DWORD CALLBACK CM100PM_SetBaudRate(BYTE BoardNo,BYTE BaudRate); EXP DWORD CALLBACK CM100PM_SetAutoRespTime(BYTE BoardNo,DWORD AutoRespTime); EXP DWORD CALLBACK CM100PM_GetAutoRespTime(BYTE BoardNo,DWORD *AutoRespTime); EXP DWORD CALLBACK CM100PM_StartAutoResp(BYTE BoardNo); EXP DWORD CALLBACK CM100PM_StopAutoResp(BYTE BoardNo); EXP DWORD CALLBACK CM100PM_GetCANStatus(BYTE BoardNo, BYTE *CANStatus); //Power Meter Function EXP DWORD CALLBACK CM100PM_GetPowerMeterStatus(BYTE BoardNo,BYTE PMID,BYTE *Status); EXP DWORD CALLBACK CM100PM_ReadData(BYTE BoardNo,BYTE PMID,WORD DataName,float *fData); EXP DWORD CALLBACK CM100PM_ReadAllData_BYTE(BYTE BoardNo,BYTE PMID,WORD *DataLen,BYTE *DataArray); EXP DWORD CALLBACK CM100PM_ReadAllData_FLOAT(BYTE BoardNo,BYTE PMID,WORD *DataLen,float *fDataArray); //Board Error Code #define CM100PM_NoError 0 #define CM100PM_DriverError 10001 #define CM100PM_ActiveBoardError 10002 #define CM100PM_BoardNumberError 10003 #define CM100PM_PortNumberError 10004 #define CM100PM_InitError 10007 #define CM100PM_SoftBufferIsEmpty 10021 #define CM100PM_SoftBufferIsFull 10022 #define CM100PM_TimeOut 10023 #define CM100PM_SetCyclicMsgFailure 10024 #define CM100PM_DpramOverRange 10025 #define CM100PM_NoDpramCmd 10026 #define CM100PM_ModeError 10027 #define CM100PM_NoFileInside 10030 #define CM100PM_DownloadFailure 10031 #define CM100PM_EEPROMDamage 10032 #define CM100PM_NotEnoughSpace 10033 #define CM100PM_StillDownloading 10034 #define CM100PM_BoardModeError 10035 #define CM100PM_CardTypeError 10036 //Power Meter #define CM100PM_PMIDNotExist 1000 //for GetCANStatus function #define CANSTA_NoError 0x00 #define CANSTA_BusOff 0x01 #define CANSTA_Error 0x02 #define CANSTA_DataOverRun 0x03 #define CANSTA_TxIncomplete 0x04 #define CANSTA_TxLocket 0x05 //for GetPowerMeterStatus function #define PMSTA_NoError 0x00 #define PMSTA_Timeout 0x01 //DataName #define DataName_V_a 0x0000 #define DataName_I_a 0x0001 #define DataName_kW_a 0x0002 #define DataName_kvar_a 0x0003 #define DataName_kVA_a 0x0004 #define Dataname_PF_a 0x0005 #define DataName_kWh_a 0x0006 #define DataName_kvarh_a 0x0007 #define DataName_kVAh_a 0x0008 #define DataName_V_b 0x0009 #define DataName_I_b 0x000A #define DataName_kW_b 0x000B #define DataName_kvar_b 0x000C #define DataName_kVA_b 0x000D #define Dataname_PF_b 0x000E #define DataName_kWh_b 0x000F #define DataName_kvarh_b 0x0010 #define DataName_kVAh_b 0x0011 #define DataName_V_c 0x0012 #define DataName_I_c 0x0013 #define DataName_kW_c 0x0014 #define DataName_kvar_c 0x0015 #define DataName_kVA_c 0x0016 #define Dataname_PF_c 0x0017 #define DataName_kWh_c 0x0018 #define DataName_kvarh_c 0x0019 #define DataName_kVAh_c 0x001A #define DataName_V_d 0x001B #define DataName_I_d 0x001C #define DataName_kW_d 0x001D #define DataName_kvar_d 0x001E #define DataName_kVA_d 0x001F #define Dataname_PF_d 0x0020 #define DataName_kWh_d 0x0021 #define DataName_kvarh_d 0x0022 #define DataName_kVAh_d 0x0023