Q&A

라이브러리 초기화 실패

  • 현창원
  • 2025-01-17
  • 178

업체 정보는 상위에 등록되므로, 별도 기재하시지 않으셔도 됩니다.

현재 사용중인  보드및 Ezconfig/라이브러리 버전 정보입니다.

Initialize library  fail 이발생하고있습니다. 

 1. 라이브러리 초기화가 안되는 경우가 어떤때 발생할수있나요? 

 

BOOL CIoCardEzUC::InitDIO()
{
    // Initialize library 
    DWORD Code = AxlOpenNoReset(7);

    if (Code == AXT_RT_SUCCESS)
    {
        TRACE("Library is initialized . ");
        DWORD dwStatus;

        // Inspect if DIO module exsits
        Code = AxdInfoIsDIOModule(&dwStatus);
        if (dwStatus == STATUS_EXIST)
        {
            TRACE(_T("DIO module exists. "));
            long IModuleCounts;
            Code = AxdInfoGetModuleCount(&IModuleCounts);
            if (Code == AXT_RT_SUCCESS)
                TRACE(_T("Number of DIO module: %d "), IModuleCounts);
            else
                TRACE(_T("AxdInfoGetModuleCount() : ERROR code Ox%x "), Code);

            long IInputCounts;
            long IOutputCounts;

            long IBoardNo;
            long IModulePos;
            DWORD dwModuleID;

            CString strData;
            for (int ModuleNo = 0; ModuleNo < IModuleCounts; ModuleNo++)
            {
                // Grasp IO channel
                AxdInfoGetInputCount(ModuleNo, &IInputCounts);
                AxdInfoGetOutputCount(ModuleNo, &IOutputCounts);

                if (AxdInfoGetModule(ModuleNo, &IBoardNo, &IModulePos, &dwModuleID) == AXT_RT_SUCCESS)
                {
                    m_nModuleNo = ModuleNo;
                    switch (dwModuleID)
                    {
                    case AXT_SIO_RDI32MLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDI32MLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDI32MSMLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDI32MSMLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDI32PMLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDI32PMLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDI32RTEX:            strData.Format(_T("[BD No:%d - MD No:%d],RDI32RTEX"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DI32_P:            strData.Format(_T("[BD No:%d - MD No:%d],DI32_P"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDI32:                strData.Format(_T("[BD No:%d - MD No:%d],RDI32"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DI32:                strData.Format(_T("[BD No:%d - MD No:%d],DI32"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO32MLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDO32MLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO32AMSMLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDO32AMSMLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO32PMLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDO32PMLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO16AMLII:        strData.Format(_T("[BD No:%d - MD No:%d],RDO16AMLII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO16BMLII:        strData.Format(_T("[BD No:%d - MD No:%d],RDO16BMLII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO32RTEX:            strData.Format(_T("[BD No:%d - MD No:%d],RDO32RTEX"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DO32T_P:            strData.Format(_T("[BD No:%d - MD No:%d],DO32T_P"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDO32:                strData.Format(_T("[BD No:%d - MD No:%d],RDO32"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DO32P:                strData.Format(_T("[BD No:%d - MD No:%d],DO32P"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DO32T:                strData.Format(_T("[BD No:%d - MD No:%d],DO32T"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB32MLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDB32MLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB32PMLIII:        strData.Format(_T("[BD No:%d - MD No:%d],RDB32PMLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB128MLIIIAI:        strData.Format(_T("[BD No:%d - MD No:%d],RDB128MLIIIAI"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB96MLII:            strData.Format(_T("[BD No:%d - MD No:%d],RDB96MLII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB32RTEX:            strData.Format(_T("[BD No:%d - MD No:%d],RDB32RTEX"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB128MLII:        strData.Format(_T("[BD No:%d - MD No:%d],RDB128MLII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DB32P:                strData.Format(_T("[BD No:%d - MD No:%d],DB32P"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RDB32T:            strData.Format(_T("[BD No:%d - MD No:%d],RDB32T"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_DB32T:                strData.Format(_T("[BD No:%d - MD No:%d],DB32T"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_UNDEFINEMLIII:        strData.Format(_T("[BD No:%d - MD No:%d],UNDEFINEMLIII"), IBoardNo, ModuleNo); break;
                    case AXT_SIO_RSIMPLEIOMLII:        strData.Format(_T("[BD No:%d - MD No:%d],RSIMPLEIOMLII"), IBoardNo, ModuleNo); break;
                    default:
                        strData.Format(_T("[BD No:%d - MD No:%d] Unknown"), IBoardNo, ModuleNo);
                        break;
                    }
                    CString strLog = _T("");
                    strLog.Format(_T("[DIO],%s"), strData);
                    g_ShareDlg.LogProcess(enLog_SYSTEM, strLog);
                }
            }
        }
        else
        {
            AfxMessageBox(_T("Module not exist."));
            return FALSE;
        }
    }
    else
    {
        AfxMessageBox(_T("Failed initialization."));
        return FALSE;
    }
    return TRUE;
}

안녕하십니까 아진엑스텍입니다.

안녕하십니까 아진엑스텍입니다.
문의주신 Q&A는 메일로 답변드렸습니다. 확인부탁드립니다