#ifdef __I8120W_PMAPIFUNCTION #define EXP extern "C" __declspec (dllexport) #else #define EXP extern "C" __declspec (dllimport) #endif //Board Functions EXP DWORD CALLBACK I8120PM_TotalModule(BYTE *TotalModules ,BYTE *SlotNoList); EXP DWORD CALLBACK I8120PM_ActiveModule(BYTE SlotNo); EXP DWORD CALLBACK I8120PM_CloseModule(BYTE SlotNo); EXP DWORD CALLBACK I8120PM_GetDLLVersion(void); //Firmware Functions EXP DWORD CALLBACK I8120PM_GetFirmwareVersion(BYTE SlotNo); EXP DWORD CALLBACK I8120PM_ResetFirmware(BYTE SlotNo); //Master Operating Functions EXP DWORD CALLBACK I8120PM_GetPMIDs(BYTE SlotNo,BYTE *PMIDCount,BYTE *PMIDArray); EXP DWORD CALLBACK I8120PM_SetPMIDs(BYTE SlotNo,BYTE PMIDCount,BYTE *PMIDArray); EXP DWORD CALLBACK I8120PM_GetBaudRate(BYTE SlotNo,BYTE *BaudRate); EXP DWORD CALLBACK I8120PM_SetBaudRate(BYTE SlotNo,BYTE BaudRate); EXP DWORD CALLBACK I8120PM_SetAutoRespTime(BYTE SlotNo,DWORD AutoRespTime); EXP DWORD CALLBACK I8120PM_GetAutoRespTime(BYTE SlotNo,DWORD *AutoRespTime); EXP DWORD CALLBACK I8120PM_StartAutoResp(BYTE SlotNo); EXP DWORD CALLBACK I8120PM_StopAutoResp(BYTE SlotNo); EXP DWORD CALLBACK I8120PM_GetCANStatus(BYTE SlotNo, BYTE *CANStatus); //Power Meter Function EXP DWORD CALLBACK I8120PM_GetPowerMeterStatus(BYTE SlotNo,BYTE PMID,BYTE *Status); EXP DWORD CALLBACK I8120PM_ReadData(BYTE SlotNo,BYTE PMID,WORD DataName,float *fData); EXP DWORD CALLBACK I8120PM_ReadAllData_BYTE(BYTE SlotNo,BYTE PMID,WORD *DataLen,BYTE *DataArray); EXP DWORD CALLBACK I8120PM_ReadAllData_FLOAT(BYTE SlotNo,BYTE PMID,WORD *DataLen,float *fDataArray); //V1.02 EXP DWORD CALLBACK I8120PM_GetRatioCMD(BYTE SlotNo,BYTE PMID); EXP DWORD CALLBACK I8120PM_GetRatioValue(BYTE SlotNo,BYTE PMID,WORD *MeterRatio,WORD *PTRatio,WORD *CTRatio); EXP DWORD CALLBACK I8120PM_SetRatioCMD(BYTE SlotNo,BYTE PMID,WORD MeterRatio,WORD PTRatio,WORD CTRatio); EXP DWORD CALLBACK I8120PM_SetRatioResp(BYTE SlotNo,BYTE PMID,DWORD *RespValue); EXP DWORD CALLBACK I8120PM_GetPMFirmVerCMD(BYTE SlotNo,BYTE PMID); EXP DWORD CALLBACK I8120PM_GetPMFirmVerValue(BYTE SlotNo,BYTE PMID,WORD *PMFirmVer); EXP DWORD CALLBACK I8120PM_SetNewPMIDCMD(BYTE SlotNo,BYTE OldPMID,BYTE NewPMID); EXP DWORD CALLBACK I8120PM_SetNewPMIDResp(BYTE SlotNo,BYTE NewPMID,DWORD *RespValue); //Module Error Code #define I8120PM_NoError 0 #define I8120PM_SlotNumberError 10003 #define I8120PM_InitError 10007 #define I8120PM_SoftBufferIsEmpty 10021 #define I8120PM_SoftBufferIsFull 10022 #define I8120PM_TimeOut 10023 #define I8120PM_SetCyclicMsgFailure 10024 #define I8120PM_DpramOverRange 10025 #define I8120PM_NoDpramCmd 10026 #define I8120PM_ModeError 10027 #define I8120PM_NoFileInside 10030 #define I8120PM_DownloadFailure 10031 #define I8120PM_EEPROMDamage 10032 #define I8120PM_NotEnoughSpace 10033 #define I8120PM_StillDownloading 10034 #define I8120PM_BoardModeError 10035 #define I8120PM_SetDateTimeFailure 10036 #define I8120PM_SlotNotConfig 10040 #define I8120PM_SlotNotInit 10041 #define I8120PM_ReplyError 10042 #define I8120PM_WaitForReply 10043 //for I8120PM_SetBaudRate #define PMXS_BaudRateError 1051 //for I8120PM_GetPowerMeterStatus #define I8120PM_PMIDNotExist 1000 #define I8120PM_DataNameError 1001 //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_TxLocked 0x05 //for GetPowerMeterStatus function #define PMSTA_NoError 0x00 #define PMSTA_Timeout 0x01 //for Get/Set Ratio #define RatioError_NoGetCMD 1010 #define RatioError_NoSetCMD 1011 #define RatioError_NoResp 1012 //for Get Firmware #define FirmError_NoGetCMD 1020 #define FirmError_NoResp 1021 //for Set New PMID #define PMError_NoSetCMD 1030 #define PMError_NoResp 1031 //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