美文网首页
CCTl连接问题的总结

CCTl连接问题的总结

作者: 清亮2015 | 来源:发表于2020-12-09 12:39 被阅读0次

    为了解决N21项目的四颗摄像头连接cct的问题,通过MTK的帮助我做一下总结。
    现在是能解决cct的连接问题,连接的时候只能选择main,必须手机单独接上摄像头,才能连接上CCT,解决方法如下,在路径mediatek\proprietary\hadware\mtkcam\aaa\source\isp_40\cct_svr下的cct_op_handle.cpp改成这样:

    init(std::function<void(void*, MINT32)> capCB)
    {
        MY_LOGD("CctHandle init +");
    
        capturCallBack = capCB;
        MY_LOGD("save capturCallBack function");
    
        /*if (m_eSensorEnum == DUAL_CAMERA_MAIN_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(0, "CctHandle");
        } else if (m_eSensorEnum == DUAL_CAMERA_SUB_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(1, "CctHandle");
        } else if (m_eSensorEnum == DUAL_CAMERA_MAIN_2_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(2, "CctHandle");
        else if (m_eSensorEnum == DUAL_CAMERA_SUB_2_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(3, "CctHandle");
        else if (m_eSensorEnum == DUAL_CAMERA_MAIN_3_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(4, "CctHandle");
        } else {
            m_pIHal3A = MAKE_Hal3A(5, "CctHandle");
        }*/
    
        MUINT iSensorNum, iOpenIdx;
    
       iSensorNum = pHalSensorList->queryNumberOfSensors();
    
    for (iOpenIdx = iSensorNum-1; iOpenIdx==0; iOpenIdx--)
    {
        if (m_eSensorEnum == pHalSensorList->querySensorDevIdx(iOpenIdx))
        {
            break;
        }
    }
    MY_LOGD("CctHandle init , sensorNum=,OpenIdx=",iSensorNum,iOpenIdx);
    m_pIHal3A = MAKE_Hal3A(iOpenIdx, "CctHandle");
        m_pIHal3A->send3ACtrl(E3ACtrl_Enable3ASetParams, MFALSE, 0);
        //m_pIHal3A->send3ACtrl(E3ACtrl_SetOperMode, NSIspTuning::EOperMode_Meta, 0);
    
        MY_LOGD("CctHandle init -");
    }
    

    在路径mediatek\proprietary\hadware\mtkcam\aaa\source\MT6765\cct_svr路径下的下的cct_op_handle.cpp改成这样:

    init(std::function<void(void*, MINT32)> capCB)
    {
        MY_LOGD("CctHandle init +");
    
        capturCallBack = capCB;
        MY_LOGD("save capturCallBack function");
    
        /*if (m_eSensorEnum == DUAL_CAMERA_MAIN_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(0, "CctHandle");
        } else if (m_eSensorEnum == DUAL_CAMERA_SUB_SENSOR ) {
            m_pIHal3A = MAKE_Hal3A(1, "CctHandle");
        } 
        } else {
            m_pIHal3A = MAKE_Hal3A(5, "CctHandle");
        }*/
    
        MUINT iSensorNum, iOpenIdx;
    IHalSensorList*const pHalSensorList= MAKE_HalSensorList();
    if(pHalSensorList == NULL)
    
    {
        MY_LOGE("[AAA sensor mgr] can not creat halsensorlist\n");
    }
    if(pHalSensorList != NULL)
    {
        iSensorNum = pHalSensorList->queryNumberOfSensors();
    
    for (iOpenIdx = iSensorNum-1; iOpenIdx==0; iOpenIdx--)
    {
        if (m_eSensorEnum == pHalSensorList->querySensorDevIdx(iOpenIdx))
        {
            break;
        }
    }
    MY_LOGD("CctHandle init , sensorNum=,OpenIdx=",iSensorNum,iOpenIdx);
    m_pIHal3A = MAKE_Hal3A(iOpenIdx, "CctHandle");
    }
     
       if(NULL ==m_PIHal3A)
    {
    MY_LOGE("get handle failed:m_pIHal3A");
    
    
    }//这句话保持与源代码相同就行了
    else
    {
      m_pIHal3A->send3ACtrl(E3ACtrl_Enable3ASetParams,MFALSE,0);
    
    }
    MY_LOGD("Ccthandle init -");
    }
    

    要全部摄像头安装能连接cct必须更改代码:

    changeSensor(CT_SENSOR_T sensor_type)中
     system_call("input keyevent
    KEYCODE_C"); //switch sensor
    usleep(2000*1000);
    #if 0
     if ( 0 != ReOpenFifo() )
     {
          
    return -2;
      
    }
    #endif
     CAMTOOL_LOGD("disable ZSD");
    system_call("input keyevent
    KEYCODE_E"); //ZSD off
    return ret;
    改成
      
    system_call("input keyevent
    KEYCODE_C"); //switch sensor
      
    usleep(2000*1000);
      
    CAMTOOL_LOGD("disable ZSD");
      
    system_call("input keyevent
    KEYCODE_E"); //ZSD off
     
    usleep(1000*1000);
    #if
    0
      
    if ( 0 != ReOpenFifo() ) {
          
    return -2;
       
    }
    
    #endif
    
       
    return ret;
    
    2,parseCommandFile(char *infname, char *outfname)中
    2415      if (reStartApkFlag) {
    2416          CAMTOOL_LOGD("camera re-start");
    2417          //system_call("am force-stop com.mediatek.camera");
    2418          //usleep(1000*1000);
    2419          //system_call("am start com.mediatek.camera");
    2420          //usleep(3*1000*1000);
    2421  
    2422          system_call("input keyevent KEYCODE_C"); //switch sensor
    2423          usleep(1000*1000);
    2424          CAMTOOL_LOGD("disable ZSD");
    2425          system_call("input keyevent KEYCODE_E"); //ZSD off
    2426      }
    
    Mark掉
    /*
    2415      if (reStartApkFlag) {
    2416          CAMTOOL_LOGD("camera re-start");
    2417          //system_call("am force-stop com.mediatek.camera");
    2418          //usleep(1000*1000);
    2419          //system_call("am start com.mediatek.camera");
    2420          //usleep(3*1000*1000);
    2421  
    2422          system_call("input keyevent KEYCODE_C"); //switch sensor
    2423          usleep(1000*1000);
    2424          CAMTOOL_LOGD("disable ZSD");
    2425          system_call("input keyevent KEYCODE_E"); //ZSD off
    2426      }
    */
    
    
    
    
    

    相关文章

      网友评论

          本文标题:CCTl连接问题的总结

          本文链接:https://www.haomeiwen.com/subject/wxmyvctx.html