Skip to content
Snippets Groups Projects
Commit e179d781 authored by Pierre Minssen's avatar Pierre Minssen
Browse files

Struturation du code

parent 720b63f3
Branches
No related tags found
No related merge requests found
import socket import socket
UDP_IP = "192.168.0.100" "192.168.0.100"
UDP_PORT = 52381 UDP_PORT = 52381
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
class Camera: class Camera:
def __init__(self, seq_num: hex): def __init__(self, UDP_IP,UDP_PORT, seq_num: hex ="0", VV= "09", WW= "09"):
"""
Création d'une caméra
:param UDP_IP: IP de la caméra (192.168.0.100 par défaut)
:param UDP_PORT: Port de la caméra (52381 par défaut)
:param seq_num: sequence number de départ
:param VV: Vitesse
:param WW: Vitesse
"""
self.seq_num = seq_num # erreur du capteur UWB (p pour précision...) self.seq_num = seq_num # erreur du capteur UWB (p pour précision...)
self.VV = "09" self.VV = VV
self.WW = "09" self.WW = WW
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
self.UDP_IP = UDP_IP
def abs2payload(self, LYZ: list) -> list: # L[0]="YYYY" L[1]="ZZZZ" def move_to_absolute_position(YCoordinates, ZCoordinates):
payload = "81 01 06 02" # Absolute postition payload = "81 01 06 02" # Absolute position moove
payload = payload + self.VV + self.WW # add move speed payload = payload + self.VV + self.WW # add move speed
for i in LYZ: # add position for i in LYZ: # add position
for j in i: for j in i:
payload = payload + "0" + j payload = payload + "0" + j
payload = payload + "FF" # end byte payload = payload + "FF" # end byte
payloadtype = "01 00" header = self.payload2header(self, payload)
return [payloadtype, payload] payloadtype = '01 00'
message = payloadtype + header + payload
return message
def payload2message(self, payloadL: list) -> str: # hex def payload2header(self, payload: str) -> str: # hex
payloadtype = payloadL[0] lenght = hex(len(payload.replace(' ', '')))
payload = payloadL[1] payloadlenght = lenght[2:]
payloadlenght = "0F" # a coder if len(lenght) == 1:
header = payloadtype + payloadlenght payloadlenght = '0' + payloadlenght
header = payloadlenght
header = header + ('0' * (8 - len(str(self.seq_num))) + str(self.seq_num)) header = header + ('0' * (8 - len(str(self.seq_num))) + str(self.seq_num))
message = header + payload return header
return message
def send(self, message: str) -> bool: def send(self, message: str) -> bool:
sock.sendto(bytes.fromhex(message.replace(' ', '')), (UDP_IP, UDP_PORT)) self.sock.sendto(bytes.fromhex(message.replace(' ', '')), (self.UDP_IP, self.UDP_PORT))
self.seq_num += 1 # ballec de l'hexa pour l'instant self.seq_num += 1 # ballec de l'hexa pour l'instant
print("fait " + self.seq_num) print("fait " + self.seq_num)
return True return True
def zqsd2payload(self, x: str) -> str: # hex def zqsd(self, x: str) -> str: # hex
payload = "FF" # message d'erreur à refaire payload = "FF" # message d'erreur à refaire
if x == 'd': 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 VV WW 0Y 0Y 0Y 0Y 00 00 00 00 FF YYYY de DE00 à 2200 center 0000
...@@ -44,26 +55,32 @@ class Camera: ...@@ -44,26 +55,32 @@ class Camera:
if x == 'q': if x == 'q':
payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF"
if x == 'z': if x == 'z':
payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" # nonfonctionnel payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 09 0A FF"
if x == 's': if x == 's':
payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" # nonfonctionnel payload = "81 01 06 03 09 09 0F 0E 0D 0E 0F 0F 06 06 FF"
payloadtype = "01 00" header = self.payload2header(self, payload)
return [payloadtype, payload] payloadtype = '01 00'
message = payloadtype + header + payload
return message
def zoom2payload(self, n: int) -> str: # hex #faire une version zoom + / zoom - def zoom(self, n: int) -> str: # hex #faire une version zoom + / zoom -
if n == 0: if n == 0:
payload = "81 01 04 47 00 00 00 00 FF" payload = "81 01 04 47 00 00 00 00 FF"
if n == 2: if n == 2:
payload = "81 01 04 47 01 06 0A 01 FF" payload = "81 01 04 47 01 06 0A 01 FF"
payloadtype = "01 00" payloadtype = "01 00"
header = self.payload2header(self, payload)
return [payloadtype, payload] message = payloadtype + header + payload
return message
def focus(self, b: bool) -> str: # hex #focus2payload(0) = autofocus def focus(self, b: bool) -> str: # hex #focus2payload(0) = autofocus
if b: if b:
payload = "81 01 04 38 02 FF" # autofocus payload = "81 01 04 38 02 FF" # autofocus
else: else:
payload = "81 01 04 38 03 FF" payload = "81 01 04 38 03 FF"
header = self.payload2header(self, payload)
payloadtype = "01 00" payloadtype = "01 00"
return [payloadtype, payload] message = payloadtype + header + payload
return message
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment