add,计划采集16:
解决切换相机时的图片不切换问题 解决设置高光谱相机帧率和积分时间失效问题 拷贝航线路径文件到数据文件夹 单反弹窗报错:添加描述 图像控制添加2%拉伸
This commit is contained in:
@ -6,6 +6,124 @@
|
||||
// 全局变量用于回调函数访问
|
||||
static SingleLensReflexCameraOperation* g_cameraOperation = nullptr;
|
||||
|
||||
// 将Canon EDSDK错误码转换为中文描述
|
||||
QString getEDSDKErrorMessage(EdsError err)
|
||||
{
|
||||
switch (err)
|
||||
{
|
||||
case EDS_ERR_OK:
|
||||
return QString::fromLocal8Bit("操作成功,错误码:%1").arg(err);
|
||||
case EDS_ERR_UNIMPLEMENTED:
|
||||
return QString::fromLocal8Bit("功能未实现,错误码:%1").arg(err);
|
||||
case EDS_ERR_INTERNAL_ERROR:
|
||||
return QString::fromLocal8Bit("内部错误,错误码:%1").arg(err);
|
||||
case EDS_ERR_MEM_ALLOC_FAILED:
|
||||
return QString::fromLocal8Bit("内存分配失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_MEM_FREE_FAILED:
|
||||
return QString::fromLocal8Bit("内存释放失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_OPERATION_CANCELLED:
|
||||
return QString::fromLocal8Bit("操作已取消,错误码:%1").arg(err);
|
||||
case EDS_ERR_INCOMPATIBLE_VERSION:
|
||||
return QString::fromLocal8Bit("版本不兼容,错误码:%1").arg(err);
|
||||
case EDS_ERR_NOT_SUPPORTED:
|
||||
return QString::fromLocal8Bit("不支持该操作,错误码:%1").arg(err);
|
||||
case EDS_ERR_UNEXPECTED_EXCEPTION:
|
||||
return QString::fromLocal8Bit("意外异常,错误码:%1").arg(err);
|
||||
case EDS_ERR_PROTECTION_VIOLATION:
|
||||
return QString::fromLocal8Bit("保护违规,错误码:%1").arg(err);
|
||||
case EDS_ERR_MISSING_SUBCOMPONENT:
|
||||
return QString::fromLocal8Bit("缺少子组件,错误码:%1").arg(err);
|
||||
case EDS_ERR_SELECTION_UNAVAILABLE:
|
||||
return QString::fromLocal8Bit("选择不可用,错误码:%1").arg(err);
|
||||
case EDS_ERR_FILE_IO_ERROR:
|
||||
return QString::fromLocal8Bit("文件IO错误,错误码:%1").arg(err);
|
||||
case EDS_ERR_FILE_NOT_FOUND:
|
||||
return QString::fromLocal8Bit("文件未找到,错误码:%1").arg(err);
|
||||
case EDS_ERR_FILE_OPEN_ERROR:
|
||||
return QString::fromLocal8Bit("文件打开失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_NOT_FOUND:
|
||||
return QString::fromLocal8Bit("设备未找到,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_BUSY:
|
||||
return QString::fromLocal8Bit("设备忙,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_INVALID:
|
||||
return QString::fromLocal8Bit("设备无效,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_MEMORY_FULL:
|
||||
return QString::fromLocal8Bit("设备内存已满,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_INTERNAL_ERROR:
|
||||
return QString::fromLocal8Bit("设备内部错误,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_NO_DISK:
|
||||
return QString::fromLocal8Bit("设备无存储介质,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_DISK_ERROR:
|
||||
return QString::fromLocal8Bit("设备磁盘错误,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_CF_GATE_CHANGED:
|
||||
return QString::fromLocal8Bit("CF卡仓已改变,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_DIAL_CHANGED:
|
||||
return QString::fromLocal8Bit("拨盘已改变,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICE_NOT_INSTALLED:
|
||||
return QString::fromLocal8Bit("设备未安装,错误码:%1").arg(err);
|
||||
case EDS_ERR_SESSION_NOT_OPEN:
|
||||
return QString::fromLocal8Bit("会话未打开,错误码:%1").arg(err);
|
||||
case EDS_ERR_INVALID_TRANSACTIONID:
|
||||
return QString::fromLocal8Bit("无效的事务ID,错误码:%1").arg(err);
|
||||
case EDS_ERR_INCOMPLETE_TRANSFER:
|
||||
return QString::fromLocal8Bit("传输不完整,错误码:%1").arg(err);
|
||||
case EDS_ERR_INVALID_STRAGEID:
|
||||
return QString::fromLocal8Bit("无效的存储ID,错误码:%1").arg(err);
|
||||
case EDS_ERR_DEVICEPROP_NOT_SUPPORTED:
|
||||
return QString::fromLocal8Bit("设备属性不支持,错误码:%1").arg(err);
|
||||
case EDS_ERR_INVALID_OBJECTFORMATCODE:
|
||||
return QString::fromLocal8Bit("无效的对象格式代码,错误码:%1").arg(err);
|
||||
case EDS_ERR_SELF_TEST_FAILED:
|
||||
return QString::fromLocal8Bit("自检失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_UNKNOWN_VENDOR_CODE:
|
||||
return QString::fromLocal8Bit("未知的厂商代码,错误码:%1").arg(err);
|
||||
case EDS_ERR_CAPTURE_ALREADY_TERMINATED:
|
||||
return QString::fromLocal8Bit("拍摄已终止,错误码:%1").arg(err);
|
||||
case EDS_ERR_PTP_DEVICE_BUSY:
|
||||
return QString::fromLocal8Bit("PTP设备忙,错误码:%1").arg(err);
|
||||
case EDS_ERR_UNKNOWN_COMMAND:
|
||||
return QString::fromLocal8Bit("未知命令,错误码:%1").arg(err);
|
||||
case EDS_ERR_OPERATION_REFUSED:
|
||||
return QString::fromLocal8Bit("操作被拒绝,错误码:%1").arg(err);
|
||||
case EDS_ERR_LENS_COVER_CLOSE:
|
||||
return QString::fromLocal8Bit("镜头盖未关闭,错误码:%1").arg(err);
|
||||
case EDS_ERR_LOW_BATTERY:
|
||||
return QString::fromLocal8Bit("电池电量低,错误码:%1").arg(err);
|
||||
case EDS_ERR_OBJECT_NOTREADY:
|
||||
return QString::fromLocal8Bit("对象未就绪,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_AF_NG:
|
||||
return QString::fromLocal8Bit("自动对焦失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_MIRROR_UP_NG:
|
||||
return QString::fromLocal8Bit("反光镜升起失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_SENSOR_CLEANING_NG:
|
||||
return QString::fromLocal8Bit("传感器清洁失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_SILENCE_NG:
|
||||
return QString::fromLocal8Bit("静音拍摄失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_NO_CARD_NG:
|
||||
return QString::fromLocal8Bit("未检测到存储卡,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_CARD_NG:
|
||||
return QString::fromLocal8Bit("存储卡错误,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_CARD_PROTECT_NG:
|
||||
return QString::fromLocal8Bit("存储卡被保护,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_MOVIE_CROP_NG:
|
||||
return QString::fromLocal8Bit("短片裁切模式不支持,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_STROBO_CHARGE_NG:
|
||||
return QString::fromLocal8Bit("闪光灯充电失败,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_NO_LENS_NG:
|
||||
return QString::fromLocal8Bit("未安装镜头,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_SPECIAL_MOVIE_MODE_NG:
|
||||
return QString::fromLocal8Bit("特殊短片模式不支持,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_LV_REL_PROHIBIT_MODE_NG:
|
||||
return QString::fromLocal8Bit("实时显示释放被禁止,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_MOVIE_MODE_NG:
|
||||
return QString::fromLocal8Bit("短片模式下不支持,错误码:%1").arg(err);
|
||||
case EDS_ERR_TAKE_PICTURE_RETRUCTED_LENS_NG:
|
||||
return QString::fromLocal8Bit("伸缩镜头不支持,错误码:%1").arg(err);
|
||||
default:
|
||||
return QString::fromLocal8Bit("未知错误: 0x%1").arg(err, 8, 16, QChar('0'));
|
||||
}
|
||||
}
|
||||
|
||||
SingleLensReflexCameraWindow::SingleLensReflexCameraWindow(QWidget* parent)
|
||||
: QDialog(parent)
|
||||
, m_isCapturing(false)
|
||||
@ -192,7 +310,7 @@ void SingleLensReflexCameraWindow::onImageCaptured(const QString& filePath)
|
||||
|
||||
void SingleLensReflexCameraWindow::onError(const QString& errorMsg)
|
||||
{
|
||||
QMessageBox::warning(this, QString::fromLocal8Bit("相机错误"), errorMsg);
|
||||
QMessageBox::warning(this, QString::fromLocal8Bit("单反相机错误"), errorMsg);
|
||||
}
|
||||
|
||||
void SingleLensReflexCameraWindow::onStartCapture()
|
||||
@ -764,7 +882,7 @@ void SingleLensReflexCameraOperation::OpenSLRCamera()
|
||||
err = initializeSDK();
|
||||
if (err != EDS_ERR_OK)
|
||||
{
|
||||
emit ErrorSignal(QString::fromLocal8Bit("初始化SDK失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("初始化SDK失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -773,7 +891,7 @@ void SingleLensReflexCameraOperation::OpenSLRCamera()
|
||||
if (err != EDS_ERR_OK)
|
||||
{
|
||||
terminateSDK();
|
||||
emit ErrorSignal(QString::fromLocal8Bit("打开相机失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("打开相机失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -783,7 +901,7 @@ void SingleLensReflexCameraOperation::OpenSLRCamera()
|
||||
{
|
||||
closeCamera();
|
||||
terminateSDK();
|
||||
emit ErrorSignal(QString::fromLocal8Bit("设置保存位置失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("设置保存位置失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -829,7 +947,7 @@ void SingleLensReflexCameraOperation::OpenAndTakePhotoSLRCamera()
|
||||
err = initializeSDK();
|
||||
if (err != EDS_ERR_OK)
|
||||
{
|
||||
emit ErrorSignal(QString::fromLocal8Bit("初始化SDK失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("初始化SDK失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -838,7 +956,7 @@ void SingleLensReflexCameraOperation::OpenAndTakePhotoSLRCamera()
|
||||
if (err != EDS_ERR_OK)
|
||||
{
|
||||
terminateSDK();
|
||||
emit ErrorSignal(QString::fromLocal8Bit("打开相机失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("打开相机失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -848,7 +966,7 @@ void SingleLensReflexCameraOperation::OpenAndTakePhotoSLRCamera()
|
||||
{
|
||||
closeCamera();
|
||||
terminateSDK();
|
||||
emit ErrorSignal(QString::fromLocal8Bit("设置保存位置失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("设置保存位置失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -934,7 +1052,7 @@ void SingleLensReflexCameraOperation::onCaptureTimer()
|
||||
// 如果是设备忙,不发送错误信号,等待下次重试
|
||||
if (err != EDS_ERR_DEVICE_BUSY)
|
||||
{
|
||||
emit ErrorSignal(QString::fromLocal8Bit("拍照失败,错误码: %1").arg(err));
|
||||
emit ErrorSignal(QString::fromLocal8Bit("拍照失败: %1").arg(getEDSDKErrorMessage(err)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user