我使用 EDSDK 来控制佳能 EOS 1200D。
我试试这段代码:
err = EdsOpenSession(_camera); if(err != EDS_ERR_OK) std::cout << "[ERROR] : EdsOpenSession" << std::endl; QThread::sleep(5); err = EdsSetObjectEventHandler(_camera, kEdsObjectEvent_All, handleObjectEvent, (EdsVoid*)&_path); if(err != EDS_ERR_OK) std::cout << "[ERROR] : EdsSetObjectEventHandler" << std::endl; EdsInt32 saveTarget = kEdsSaveTo_Host; err = EdsSetPropertyData(_camera, kEdsPropID_SaveTo, 0, 4, &saveTarget); if(err != EDS_ERR_OK) std::cout << "[ERROR] : EdsSetPropertyData kEdsSaveTo_Host" << std::endl; EdsCapacity newCapacity = {0x7FFFFFFF, 0x1000, 1}; err = EdsSetCapacity(_camera, newCapacity); if(err != EDS_ERR_OK) std::cout << "[ERROR] : EdsSetPropertyData newCapacity" << std::endl; err = EdsSendCommand(_camera, kEdsCameraCommand_TakePicture, 0); if(err != EDS_ERR_OK) std::cout << "[ERROR] : takePicture " << err << std::endl;
随着睡眠,我得到EDS_ERR_TAKE_PICTURE_CARD_NG 0x00008D07L
错误EdsSendCommand(_camera, kEdsCameraCommand_TakePicture, 0)
。没有睡眠,一切都很好。
相机会话是否超时?