diff --git a/cam_poo.py b/cam_poo.py
index 1d365a25ca08c43462151d6b445d977e983fe18d..e5d5bec3a10b731560b08fc24f4e0799cc4ad463 100644
--- a/cam_poo.py
+++ b/cam_poo.py
@@ -1,42 +1,53 @@
 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 payload2header(self, payload: str) -> str:  # hex
+        lenght = hex(len(payload.replace(' ', '')))
+        payloadlenght = lenght[2:]
+        if len(lenght) == 1:
+            payloadlenght = '0' + payloadlenght
 
-    def payload2message(self, payloadL: list) -> str:  # hex
-        payloadtype = payloadL[0]
-        payload = payloadL[1]
-        payloadlenght = "0F"  # a coder
-        header = payloadtype + 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
+