alliedvision / VimbaPython

Old Allied Vision Vimba Python API. The successor to this API is VmbPy
BSD 2-Clause "Simplified" License
93 stars 40 forks source link

use softwere trigger by command #148

Open shaizae10 opened 1 year ago

shaizae10 commented 1 year ago

hi i use that code

import time
import numpy as np
from HW.vimba import *

def handler(cam, frame):
    print('Frame acquired: {}'.format(frame), flush=True)
    cam.queue_frame(frame)

class alvium1800api:
    def __init__(self):
        with Vimba.get_instance() as vimba:
            self.cam = vimba.get_all_cameras()[0]
            with self.cam:
                self.cam.TriggerSource.set('Software')
                self.cam.TriggerSelector.set('FrameStart')
                self.cam.TriggerMode.set('On')
                self.cam.AcquisitionMode.set('Continuous')

    def initialize_communication(self):
        pass

    def take_single_measurement(self) -> np.ndarray:

        with self.cam:

            self.cam.start_streaming(handler)
            time.sleep(1)
            frame=self.cam.TriggerSoftware.run()

            self.cam.stop_streaming()
            return frame.as_numpy_ndarray()

if __name__ == "__main__":
    example = alvium1800api()
    example.take_single_measurement()

and it is return to my the result

`Traceback (most recent call last): File "D:\Repos\Diamonds\HW\vimba\camera.py", line 907, in _open call_vimba_c('VmbCameraOpen', self.info.cameraIdString, self.access_mode, File "D:\Repos\Diamonds\HW\vimba\util\tracer.py", line 134, in wrapper return func(*args, *kwargs) File "D:\Repos\Diamonds\HW\vimba\c_binding\vimba_c.py", line 757, in call_vimba_c getattr(_lib_instance, func_name)(args) File "D:\Repos\Diamonds\HW\vimba\c_binding\vimba_c.py", line 675, in _eval_vmberror raise VimbaCError(result) HW.vimba.c_binding.vimba_common.VimbaCError: VimbaCError(<VmbError.ApiNotStarted: -2>)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "D:\Repos\Diamonds\Common\alvium_1800\alvium1800api.py", line 40, in example.take_single_measurement() File "D:\Repos\Diamonds\Common\alvium_1800\alvium1800api.py", line 28, in take_single_measurement with self.cam: File "D:\Repos\Diamonds\HW\vimba\util\tracer.py", line 134, in wrapper return func(*args, kwargs) File "D:\Repos\Diamonds\HW\vimba\camera.py", line 362, in enter self._open() File "D:\Repos\Diamonds\HW\vimba\util\tracer.py", line 134, in wrapper return func(*args, *kwargs) File "D:\Repos\Diamonds\HW\vimba\util\context_decorator.py", line 44, in wrapper return func(args, kwargs) File "D:\Repos\Diamonds\HW\vimba\camera.py", line 924, in _open raise exc from e HW.vimba.error.VimbaCameraError: <VmbError.ApiNotStarted: -2>

Process finished with exit code 1 `

I am not understending why that can't run :(

arunprakash-avt commented 1 year ago

Thank you for reporting this issue. I would request you to check the Vimba Python Manual. We have a software trigger example code.