PyCapture2 相机开机 function/method 的 PySpin 等价物是什么?

What is the PySpin equivalent of the PyCapture2 camera Power ON function/method?

我正在寻找一种方法来测试相机是否为 PTG 相机打开。

在 PyCapture2 中,以下代码有效,但假定的 PySpin cam.DeviceConnectionStatus() 将不起作用,因为该函数似乎不存在。

PySpin 相机库版本:1.23.0.27

错误:

Error: Spinnaker: GenICam::AccessException= Feature not present (reference not valid) : AccessException thrown (file 'IEnumerationT.h', line 341) [-2006] (False, SpinnakerException("Spinnaker: GenICam::AccessException= Feature not present (reference not valid) : AccessException thrown (file 'IEnumerationT.h', line 341) [-2006]"))

我也试过 PySpin.Camera.DeviceConnectionStatus() 但无论是在 cam.Init() 之前还是之后都会出现以下错误:

 Traceback (most recent call last):
  File "X.py", line 82, in YZ
    print (PySpin.Camera.DeviceConnectionStatus())
TypeError: 'property' object is not callable

工作 PyCapture2 代码:

    def cameraOn(self, cam):

        # Power on the Camera
        cameraPower = 0x610
        powerVal = 0x80000000

        cam.writeRegister(cameraPower, powerVal)

        # Waiting for camera to power up
        retries = 10
        timeToSleep = 0.1    #seconds
        for i in range(retries):
            sleep(timeToSleep)
            try:
                regVal = cam.readRegister(cameraPower)
            except PyCapture2.Fc2error:    # Camera might not respond to register reads during powerup.
                pass
            awake = True
            if regVal == powerVal:
                break
            awake = False
        if not awake:
            print ("Could not wake Camera. Exiting...")
            exit()

似乎 PySpin/Spinnaker 库中的 CameraBase() class 提供了一个 IsValid() 函数。此函数 returns 布尔值 True 一旦可以建立连接,通信成功并且相机仍然有效,或者 "False"分别。但是,此功能不会将相机 ONOFF。它也不从 sleep/wake 状态供电。

对于未知的重置,IsValid() 函数不会出于日志记录或调试目的报告回溯。因此,请记住为某些方法实施 try/except。

try:
    ... your code ...

except PySpin.SpinnakerException as error:
            print('Error: %s' % error)
            return False, error