Súbor 2

import socket
import threading
import time
from stats import Stats

class Tello:
def __init__(self):
self.local_ip = ''
self.local_port = 8889
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # socket for sending cmd
self.socket.bind((self.local_ip, self.local_port))

# thread for receiving cmd ack
self.receive_thread = threading.Thread(target=self._receive_thread)
self.receive_thread.daemon = True
self.receive_thread.start()

self.tello_ip = '192.168.10.1'#Itt kell átírni a Tello IP címét
self.tello_port = 8889#Itt pedig a port számát
self.tello_adderss = (self.tello_ip, self.tello_port)
self.log = []

self.MAX_TIME_OUT = 15.0

def send_command(self, command):
#"""
#Send a command to the ip address. Will be blocked until
#the last command receives an 'OK'.
#If the command fails (either b/c time out or error),
#will try to resend the command
#:param command: (str) the command to send
#:param ip: (str) the ip of Tello
#:return: The latest command response
#"""
self.log.append(Stats(command, len(self.log)))

self.socket.sendto(command.encode('utf-8'), self.tello_adderss)
print('sending command: %s to %s' % (command, self.tello_ip))

start = time.time()
while not self.log[-1].got_response():
now = time.time()
diff = now - start
if diff > self.MAX_TIME_OUT:
print('Max timeout exceeded... command %s' % command)
# TODO: is timeout considered failure or next command still get executed
# now, next one got executed
return
print('Done!!! sent command: %s to %s' % (command, self.tello_ip))

def _receive_thread(self):
#"""Listen to responses from the Tello.
#Runs as a thread, sets self.response to whatever the Tello last returned.
#"""
while True:
try:
self.response, ip = self.socket.recvfrom(1024)
print('from %s: %s' % (ip, self.response))

self.log[-1].add_response(self.response)
except socket.error:
print("Caught exception socket.error : %s" % exc)

def on_close(self):
pass
#for ip in self.tello_ip_list:
#self.socket.sendto('land'.encode('utf-8'), (ip, 8889))
#self.socket.close()

def get_log(self):
return self.log

Mobirise site maker - Get more