|
|
@@ -171,6 +171,14 @@ func GetSupportedCameraCount() int {
|
|
|
return GetHKCameraCount() + GetDHCameraCount()
|
|
|
}
|
|
|
|
|
|
+// 单次拍照时, 如果相机处于自动曝光模式, 是否等待曝光稳定后再拍照
|
|
|
+// 参数: waitAE: 0=不等待, 1=等待(默认)
|
|
|
+func SetWaitAEDoneForTakePhoto(waitAE int) int {
|
|
|
+ hk_takephoto.SetWaitAEDoneForTakePhoto(waitAE)
|
|
|
+ dh_takephoto.SetWaitAEDoneForTakePhoto(waitAE)
|
|
|
+ return 0
|
|
|
+}
|
|
|
+
|
|
|
// 单次执行相机拍照, 并保存到文件, 成功返回: 本次拍照图像的水印信息, 失败返回: 错误原因和空的水印信息
|
|
|
// 参数说明:
|
|
|
// "imgType" - 图像保存类型: 1-".bmp", 2-".jpg"
|
|
|
@@ -184,25 +192,33 @@ func TakePhoto(imgType int, saveImgPath string, timeout int) (SImgMark, error) {
|
|
|
return SImgMark{}, fmt.Errorf("invalid arguments")
|
|
|
}
|
|
|
|
|
|
- hkMark, err := hk_takephoto.TakePhoto(imgType, saveImgPath, timeout)
|
|
|
- if err == nil {
|
|
|
- return SImgMark{
|
|
|
- CamModelName: hkMark.CamModelName,
|
|
|
- CamSerialNum: hkMark.CamSerialNum,
|
|
|
- ImgExposureTime: hkMark.ImgExposureTime,
|
|
|
- }, nil
|
|
|
+ if GetHKCameraCount() > 0 {
|
|
|
+ hkMark, err := hk_takephoto.TakePhoto(imgType, saveImgPath, timeout)
|
|
|
+ if err == nil {
|
|
|
+ return SImgMark{
|
|
|
+ CamModelName: hkMark.CamModelName,
|
|
|
+ CamSerialNum: hkMark.CamSerialNum,
|
|
|
+ ImgExposureTime: hkMark.ImgExposureTime,
|
|
|
+ }, nil
|
|
|
+ }
|
|
|
+ errs = append(errs, fmt.Errorf("HK: %w", err))
|
|
|
}
|
|
|
- errs = append(errs, fmt.Errorf("HK: %w", err))
|
|
|
|
|
|
- dhMark, err := dh_takephoto.TakePhoto(imgType, saveImgPath, timeout)
|
|
|
- if err == nil {
|
|
|
- return SImgMark{
|
|
|
- CamModelName: dhMark.CamModelName,
|
|
|
- CamSerialNum: dhMark.CamSerialNum,
|
|
|
- ImgExposureTime: dhMark.ImgExposureTime,
|
|
|
- }, nil
|
|
|
+ if GetDHCameraCount() > 0 {
|
|
|
+ dhMark, err := dh_takephoto.TakePhoto(imgType, saveImgPath, timeout)
|
|
|
+ if err == nil {
|
|
|
+ return SImgMark{
|
|
|
+ CamModelName: dhMark.CamModelName,
|
|
|
+ CamSerialNum: dhMark.CamSerialNum,
|
|
|
+ ImgExposureTime: dhMark.ImgExposureTime,
|
|
|
+ }, nil
|
|
|
+ }
|
|
|
+ errs = append(errs, fmt.Errorf("DH: %w", err))
|
|
|
}
|
|
|
- errs = append(errs, fmt.Errorf("DH: %w", err))
|
|
|
|
|
|
- return SImgMark{}, errors.Join(errs...)
|
|
|
+ if len(errs) == 0 {
|
|
|
+ return SImgMark{}, fmt.Errorf("no camera available")
|
|
|
+ } else {
|
|
|
+ return SImgMark{}, errors.Join(errs...)
|
|
|
+ }
|
|
|
}
|