using ec = ComiLib.EtherCAT.SafeNativeMethods; bool IsVersionMatch(ref string message) { ec.TEcFileVerInfo_SDK sdkInfo = new ec.TEcFileVerInfo_SDK(); ec.TEcFileVerInfo_WDM driverInfo = new ec.TEcFileVerInfo_WDM(); ec.TEcFileVerInfo_FW fwInfo = new ec.TEcFileVerInfo_FW(); bool isVersionMatch = ec.ecNet_GetVerInfo(0, ref sdkInfo, ref driverInfo, ref fwInfo, ref errorCode); if (isVersionMatch) { message = "OK"; return true; } // Firmware Verion 확인 string ver_Fw = string.Format("{0}.{1}.{2}.{3}", fwInfo.CurVer.MajorVer, fwInfo.CurVer.MinorVer, fwInfo.CurVer.BuildNo, fwInfo.CurVer.RevNo); string comp_Fw_Drv = string.Empty; string comp_Fw_Lib = string.Empty; string comp_Drv_Lib = string.Empty; //FW - SDK 호환성 결과 switch ((ec.EEcVerCompatResult)sdkInfo.nFwCompResult) { case ec.EEcVerCompatResult.ecVER_MISMATCH_LOWER: comp_Fw_Lib = "Library version is higher than the Firmware"; break; case ec.EEcVerCompatResult.ecVER_MISMATCH_HIGHER: comp_Fw_Lib = "Library version is lower than the Firmware"; break; case ec.EEcVerCompatResult.ecVER_MATCH: comp_Fw_Lib = "OK"; break; default: comp_Fw_Lib = "Firmware Version is invalid"; break; } //FW-WDM 호환성 결과 switch ((ec.EEcVerCompatResult)driverInfo.nFwCompResult) { case ec.EEcVerCompatResult.ecVER_MISMATCH_LOWER: comp_Fw_Drv = "Driver version is higher than the Firmware"; break; case ec.EEcVerCompatResult.ecVER_MISMATCH_HIGHER: comp_Fw_Drv = "Driver version is lower than the Firmware"; break; case ec.EEcVerCompatResult.ecVER_MATCH: comp_Fw_Drv = "OK"; break; default: comp_Fw_Drv = "Firmware Version is invalid"; break; } //SDK-WDM switch ((ec.EEcVerCompatResult)sdkInfo.nWdmCompResult) { case ec.EEcVerCompatResult.ecVER_MISMATCH_LOWER: comp_Drv_Lib = "Driver version is lower than the Library"; break; case ec.EEcVerCompatResult.ecVER_MISMATCH_HIGHER: comp_Drv_Lib = "Library version is lower than the Driver"; break; case ec.EEcVerCompatResult.ecVER_MATCH: comp_Drv_Lib = "OK"; break; default: comp_Drv_Lib = "Driver Version is invalid"; break; } message = string.Format("FW-WDM : {0}. WDM-DLL : {1}. FW-DLL : {2}", comp_Fw_Drv, comp_Drv_Lib, comp_Fw_Lib); return false; }
bool IsVersionMatch() { TEcFileVerInfo_SDK SdkVerInfo; TEcFileVerInfo_WDM WdmVerInfo; TEcFileVerInfo_FW FwVerInfo; int nErrCode; return ecNet_GetVerInfo(NETID, &SdkVerInfo, &WdmVerInfo, &FwVerInfo, &nErrCode); }