python-onvif-zeep icon indicating copy to clipboard operation
python-onvif-zeep copied to clipboard

ONVIF camera ignores speed parameters

Open kolyan288 opened this issue 9 months ago • 0 comments

 def make_relative_move(self, move: Moves, pan_offset=0.1, tilt_offset=0.1, zoom_offset=0.1):
        """
        Perform a relative move based on the specified move type.
        :param move: The type of move (from Moves enum).
        :param pan_offset: Relative pan offset (default: 0.1).
        :param tilt_offset: Relative tilt offset (default: 0.1).
        :param zoom_offset: Relative zoom offset (default: 0.1).
        """
        # Set relative move parameters
        
        match move:
            case Moves.Up:      
                               
                print('Up action...')
                self.relative_move_request.Translation = {'PanTilt': {'x': 0, 'y': tilt_offset}, 'Zoom': 0}
                self.relative_move_request.Speed = {'PanTilt': {'x': 0, 'y': 0}}
                            
            case Moves.Down:

                print('Down action...')
                self.relative_move_request.Translation = {'PanTilt': {'x': 0, 'y': -tilt_offset}, 'Zoom': 0}
                self.relative_move_request.Speed = {'PanTilt': {'x': 0, 'y': 0}}

            case Moves.Left:    

                print('Left action...')
                self.relative_move_request.Translation = {"PanTilt": {"x": -pan_offset, "y": 0}}
                self.relative_move_request.Speed = {'PanTilt': {'x': 0, 'y': 0}}

            case Moves.Right:   

                print('Right action...')
                self.relative_move_request.Translation = {"PanTilt": {"x": pan_offset, "y": 0}}
                self.relative_move_request.Speed = {'PanTilt': {'x': 0, 'y': 0}}

            case Moves.ZoomIn:  

                print('Zoom in action...')
                self.relative_move_request.Translation = {"Zoom": zoom_offset}
                self.relative_move_request.Speed = {'Zoom': 0}

            case Moves.ZoomOut: 
                
                print('Zoom out action...')
                self.relative_move_request.Translation = {"Zoom": -zoom_offset}
                self.relative_move_request.Speed = {'Zoom': 0}

            case _: print('Неопознанная команда')

        # Perform the relative move
        
        self.ptz.RelativeMove(self.relative_move_request)

I have a function for relative movements of the ONVIF camera, however, the code ignores the values of the speed parameters. Even if you write zero values everywhere, the camera will move in the specified direction. How can I fix this?

kolyan288 avatar Mar 21 '25 13:03 kolyan288