Untitled

 avatar
unknown
plain_text
a year ago
2.2 kB
5
Indexable
from ptz_control import PTZController
import time

def main():
    # ONVIF kamera bilgileri
    ip = "192.168.4.64"  # Kamera IP adresinizi buraya ekleyin
    port = 80             # Kamera portunu buraya ekleyin
    user = "admin"        # Kamera kullanıcı adınızı buraya ekleyin
    passwd = "Admin8503"      # Kamera şifrenizi buraya ekleyin

    ptz = PTZController(ip, port, user, passwd)

    # PTZ hareketlerini test et
    print("Moving up")
    ptz.move_up()
    time.sleep(2)
    ptz.stop()

    print("Moving down")
    ptz.move_down()
    time.sleep(2)
    ptz.stop()

    print("Moving left")
    ptz.move_left()
    time.sleep(2)
    ptz.stop()

    print("Moving right")
    ptz.move_right()
    time.sleep(2)
    ptz.stop()

    print("Zooming in")
    ptz.zoom_in()
    time.sleep(2)
    ptz.stop()

    print("Zooming out")
    ptz.zoom_out()
    time.sleep(2)
    ptz.stop()

if __name__ == "__main__":
    main()


from onvif import ONVIFCamera

class PTZController:
    def __init__(self, ip, port, user, passwd):
        self.mycam = ONVIFCamera(ip, port, user, passwd)
        self.media = self.mycam.create_media_service()
        self.ptz = self.mycam.create_ptz_service()
        self.media_profile = self.media.GetProfiles()[0]
        self.token = self.media_profile.token

    def move(self, pan, tilt, zoom):
        request = self.ptz.create_type('ContinuousMove')
        request.ProfileToken = self.token

        if request.Velocity is None:
            request.Velocity = self.ptz.GetStatus({'ProfileToken': self.token}).Position

        request.Velocity.PanTilt.x = pan
        request.Velocity.PanTilt.y = tilt
        request.Velocity.Zoom.x = zoom
        self.ptz.ContinuousMove(request)

    def stop(self):
        request = self.ptz.create_type('Stop')
        request.ProfileToken = self.token
        self.ptz.Stop(request)

    def move_up(self):
        self.move(0, 0.1, 0)

    def move_down(self):
        self.move(0, -0.1, 0)

    def move_left(self):
        self.move(-0.1, 0, 0)

    def move_right(self):
        self.move(0.1, 0, 0)

    def zoom_in(self):
        self.move(0, 0, 0.1)

    def zoom_out(self):
        self.move(0, 0, -0.1)
Editor is loading...
Leave a Comment