diff --git a/cam_poo.py b/cam_poo.py index b270301aefbf7ab91e4ad5d95cc873378a09a563..1d365a25ca08c43462151d6b445d977e983fe18d 100644 --- a/cam_poo.py +++ b/cam_poo.py @@ -1,62 +1,69 @@ +import socket + +UDP_IP = "192.168.0.100" +UDP_PORT = 52381 +sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP + + class Camera: - def __init__(self, seq_num : hex): - self.seq_num = seq_num #erreur du capteur UWB (p pour précision...) - self.VV = 09 - self.WW = 09 - - def abs2payload(self, LYZ: list ) -> list #L[0]="YYYY" L[1]="ZZZZ" - payload = "81 01 06 02" #Absolute postition - payload = payload + self.VV + self.WW #add move speed - for i in L: #add position - for j in i: - payload = payload + "0" + j - payload = payload + "FF" #end byte + def __init__(self, seq_num: hex): + self.seq_num = seq_num # erreur du capteur UWB (p pour précision...) + self.VV = "09" + self.WW = "09" + + def abs2payload(self, LYZ: list) -> list: # L[0]="YYYY" L[1]="ZZZZ" + payload = "81 01 06 02" # Absolute postition + payload = payload + self.VV + self.WW # add move speed + for i in LYZ: # add position + for j in i: + payload = payload + "0" + j + payload = payload + "FF" # end byte payloadtype = "01 00" - # nouvelle coordonnée réelle après itération return [payloadtype, payload] - def payload2message(self, payloadL : list) -> string #hex - payloadtype = payload[0] + def payload2message(self, payloadL: list) -> str: # hex + payloadtype = payloadL[0] payload = payloadL[1] - payloadlenght = "0F" # a coder + payloadlenght = "0F" # a coder header = payloadtype + payloadlenght - header = header + ('0'*(8-len(str(seq_num)))+str(seq_num)) + header = header + ('0' * (8 - len(str(self.seq_num))) + str(self.seq_num)) message = header + payload return message - def send(self, message : string): -> bool - sock.sendto(bytes.fromhex(message.replace(' ','')),(UDP_IP,UDP_PORT)) - self.seq_num +=1 #ballec de l'hexa pour l'instant - print("fait "+ seq_num) + def send(self, message: str) -> bool: + sock.sendto(bytes.fromhex(message.replace(' ', '')), (UDP_IP, UDP_PORT)) + self.seq_num += 1 # ballec de l'hexa pour l'instant + print("fait " + self.seq_num) return True - def zqsd2payload(self, x : string) -> string #hex - payload = "FF" #message d'erreur à refaire - if(command=='d'): + def zqsd2payload(self, x: str) -> str: # hex + payload = "FF" # message d'erreur à refaire + if x == 'd': # payload = "81 01 06 03 VV WW 0Y 0Y 0Y 0Y 00 00 00 00 FF YYYY de DE00 à 2200 center 0000 - payload = "81 01 06 03 09 09 00 01 02 02 00 00 00 00 FF" - if(command =='q'): + payload = "81 01 06 03 09 09 00 01 02 02 00 00 00 00 FF" + if x == 'q': payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" - if(command =='z'): - payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" #nonfonctionnel - if(command =='s'): - payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" #nonfonctionnel + if x == 'z': + payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" # nonfonctionnel + if x == 's': + payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" # nonfonctionnel payloadtype = "01 00" return [payloadtype, payload] - def zoom2payload(self, n :int) -> string #hex #faire une version zoom + / zoom - - if(n==0): - payload="81 01 04 47 00 00 00 00 FF" - - if(n==2): - payload="81 01 04 47 01 06 0A 01 FF" - + def zoom2payload(self, n: int) -> str: # hex #faire une version zoom + / zoom - + if n == 0: + payload = "81 01 04 47 00 00 00 00 FF" + + if n == 2: + payload = "81 01 04 47 01 06 0A 01 FF" + payloadtype = "01 00" + return [payloadtype, payload] - def focus(self, b : bool) -> string #hex #focus2payload(0) = autofocus - if bool: - payload="81 01 04 38 02 FF" #autofocus + def focus(self, b: bool) -> str: # hex #focus2payload(0) = autofocus + if b: + payload = "81 01 04 38 02 FF" # autofocus else: - payload="81 01 04 38 03 FF" + payload = "81 01 04 38 03 FF" payloadtype = "01 00" return [payloadtype, payload]