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

Struturation du code

parent 720b63f3
No related branches found
No related tags found
No related merge requests found
import socket
UDP_IP = "192.168.0.100"
"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):
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.VV = "09"
self.WW = "09"
self.VV = VV
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"
payload = "81 01 06 02" # Absolute postition
def move_to_absolute_position(YCoordinates, ZCoordinates):
payload = "81 01 06 02" # Absolute position moove
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"
return [payloadtype, payload]
header = self.payload2header(self, payload)
payloadtype = '01 00'
message = payloadtype + header + payload
return message
def payload2message(self, payloadL: list) -> str: # hex
payloadtype = payloadL[0]
payload = payloadL[1]
payloadlenght = "0F" # a coder
header = payloadtype + payloadlenght
def payload2header(self, payload: str) -> str: # hex
lenght = hex(len(payload.replace(' ', '')))
payloadlenght = lenght[2:]
if len(lenght) == 1:
payloadlenght = '0' + payloadlenght
header = payloadlenght
header = header + ('0' * (8 - len(str(self.seq_num))) + str(self.seq_num))
message = header + payload
return message
return header
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
print("fait " + self.seq_num)
return True
def zqsd2payload(self, x: str) -> str: # hex
def zqsd(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
......@@ -44,26 +55,32 @@ class Camera:
if x == 'q':
payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF"
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':
payload = "81 01 06 03 09 09 0F 0E 0D 0E 00 00 00 00 FF" # nonfonctionnel
payloadtype = "01 00"
return [payloadtype, payload]
payload = "81 01 06 03 09 09 0F 0E 0D 0E 0F 0F 06 06 FF"
header = self.payload2header(self, 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:
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]
header = self.payload2header(self, payload)
message = payloadtype + header + payload
return message
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"
header = self.payload2header(self, payload)
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