From 0af2873f54fb2fefb58a934cd63c401cb2a41098 Mon Sep 17 00:00:00 2001
From: minssen_pie <pierre.minssen@supelec.fr>
Date: Tue, 4 Dec 2018 11:26:49 +0100
Subject: [PATCH] toute comandes ecrites (enfin je crois) et debut inquiry

---
 viscaoveriplib/commands_library.py | 559 +++++++++++++++++++----------
 viscaoveriplib/inquiry_library.py  | 177 +++++++++
 2 files changed, 543 insertions(+), 193 deletions(-)
 create mode 100644 viscaoveriplib/inquiry_library.py

diff --git a/viscaoveriplib/commands_library.py b/viscaoveriplib/commands_library.py
index 4cba9dc..0de35bc 100644
--- a/viscaoveriplib/commands_library.py
+++ b/viscaoveriplib/commands_library.py
@@ -1,5 +1,6 @@
 from camera import *
 
+
 class Camera:
 
     ####
@@ -17,69 +18,66 @@ class Camera:
         message.pop()
         return message
 
+    def send_command(self, payload: hex):
+        payloadtype = "01 00"
+        self.send_payload(payloadtype, payload)
 
     #CAM_POWER : Power ON/OFF
     def power_on(self):
-        payloadtype='01 00'
-        payload='81 01 04 00 02 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 00 02 FF'
+        self.send_command(payload)
     def power_off(self):
-        payloadtype='01 00'
-        payload='81 01 04 00 02 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 00 02 FF'
+        self.send_command(payload)
 
     #CAM_ZOOM : Zoom Control
     #x from 1 : "0x0000" to 30 : "0x4000"
     def zoom_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 6:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 47 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     #CAM_DZOOM
     def digital_zoom_off(self):
-        payloadtype='01 00'
-        payload='81 01 04 06 02 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 06 02 FF'
+        self.send_command(payload)
 
     def digital_zoom_on(self):
-        payloadtype='01 00'
-        payload="81 01 04 06 03 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 06 03 FF"
+        self.send_command(payload)
 
     #CAM_Focus : Focus Control
     # inf = "0x1000" to 1cm = "0xF000"
     def focus_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 6:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 48 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def autofocus_on(self):
-        payloadtype = '01 00'
+        
         payload = '81 01 04 38 02 FF'
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def autofocus_off(self):
-        payloadtype = '01 00'
+        
         payload = '81 01 04 38 03 FF'
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
 
     #AF Sensitivity : Auto Focus sensitivity high/low
     def autofocus_sensivity_normal(self):
-        payloadtype='01 00'
-        payload='81 01 04 58 02 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 58 02 FF'
+        self.send_command(payload)
 
     def autofocus_sensivity_low(self):
-        payloadtype='01 00'
-        payload='81 01 04 58 03 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 58 03 FF'
+        self.send_command(payload)
 
     #CAM_AFMode : AutoFocus Movement Mode
 
@@ -87,19 +85,17 @@ class Camera:
 
     #CAM_IRCOrrection : Focus IR Correction setting
     def focus_ir_correction_off(self):
-        payloadtype='01 00'
-        payload='81 01 04 11 00 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 11 00 FF'
+        self.send_command(payload)
         
     def focus_ir_correction_on(self):
-        payloadtype='01 00'
-        payload='81 01 04 11 00 FF'
-        self.send_payload(payloadtype,payload)
+        payload = '81 01 04 11 00 FF'
+        self.send_command(payload)
 
     #CAM_ZoomFocus
 
     def zoom_focus_direct(self, x: hex, y: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 6:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         if len(y) != 6:     # x n'est pas bon a voir si on check avant
@@ -107,374 +103,517 @@ class Camera:
         message_x = self.hex_2_message(x)
         message_y = self.hex_2_message(y)
         payload = "81 01 04 47 " + message_x + " " + message_y + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
 
     #CAM_WB : White Balance
     def wb_auto(self): #Normal Auto
-        payloadtype='01 00'
-        payload="81 01 04 35 00 FF"
+        payload ="81 01 04 35 00 FF"
 
     def wb_indoor(self): #Indoor Mode
-        payloadtype='01 00'
-        payload="81 01 04 35 01 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 35 01 FF"
+        self.send_command(payload)
 
     def wb_outdoor(self): #Outdoor Mode
-        payloadtype='01 00'
-        payload="81 01 04 35 02 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 35 02 FF"
+        self.send_command(payload)
 
     def wb_one_push(self): #One push white balance
-        payloadtype='01 00'
-        payload="81 01 04 35 03 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 35 03 FF"
+        self.send_command(payload)
 
     def wb_auto_tracing(self): #Auto tracing white balance
-        payloadtype='01 00'
-        payload="81 01 04 35 04 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 35 04 FF"
+        self.send_command(payload)
 
     def wb_manual(self): #Manual Control
-        payloadtype='01 00'
-        payload="81 01 04 35 05 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 35 05 FF"
+        self.send_command(payload)
 
     def wb_one_push_trigger(self): #One Push WB trigger
-        payloadtype='01 00'
-        payload="81 01 04 10 05 FF"
-        self.send_payload(payloadtype,payload)
-
-    #TOTERMINER
+        payload ="81 01 04 10 05 FF"
+        self.send_command(payload)
 
     #CAM_RGain and BGain
     def rgain_reset(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 03 00 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def rgain_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 03 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def rgain_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 03 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def rgain_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 43 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def bgain_reset(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 04 00 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def bgain_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 04 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def bgain_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 04 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def bgain_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 44 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     #CAM_AE : Exposure settings
 
     def ae_full_auto(self): #Automatic Exposure mode
-        payloadtype='01 00'
-        payload="81 01 04 39 00 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 39 00 FF"
+        self.send_command(payload)
 
     def ae_manual(self): #Manual Control mode
-        payloadtype='01 00'
-        payload="81 01 04 39 03 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 39 03 FF"
+        self.send_command(payload)
 
     def ae_shutter_priority(self): #Shutter priority exposure mode
-        payloadtype='01 00'
-        payload="81 01 04 39 0A FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 39 0A FF"
+        self.send_command(payload)
 
     def ae_iris_priority(self): #Iris priority exposure mode
-        payloadtype='01 00'
-        payload="81 01 04 39 0B FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 39 0B FF"
+        self.send_command(payload)
 
     def ae_bright(self):  # Bright mode (manual control)
-        payloadtype='01 00'
-        payload="81 01 04 39 0D FF"
-        self.send_payload(payloadtype,payload)
+
+        payload ="81 01 04 39 0D FF"
+        self.send_command(payload)
 
     #CAM_Slowshutter : auto slow shutter ON/OFF
     def slow_shutter_on(self):
-        payloadtype='01 00'
-        payload="81 01 04 5A 02 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 5A 02 FF"
+        self.send_command(payload)
 
     def slow_shutter_off(self):
-        payloadtype='01 00'
-        payload="81 01 04 5A 03 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 5A 03 FF"
+        self.send_command(payload)
 
     #CAM_shutter
     def shutter_reset(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0A 00 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def shutter_on(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0A 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def shutter_off(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0A 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def shutter_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 4A 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
 
     #CAM_Iris
     def iris_reset(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0B 00 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def iris_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0B 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def iris_down(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0B 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def iris_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 4B 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     #CAM_GAIN
     def gain_reset(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0C 00 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def gain_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0C 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def gain_down(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0C 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def gain_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 4C 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     # CAM_Bright
 
     def brigth_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0D 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def brigth_down(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 0D 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def brigth_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 4D 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     # CAM_ExpComp
     def expcomp_reset(self):
-        payloadtype='01 00'
-        payload="81 01 04 0E 00 FF"
-        self.send_payload(payloadtype, payload)
+        payload ="81 01 04 0E 00 FF"
+        self.send_command(payload)
 
     def expcomp_on(self):
-        payloadtype = '01 00'
-        payload="81 01 04 3E 02 FF"
-        self.send_payload(payloadtype, payload)
+        
+        payload ="81 01 04 3E 02 FF"
+        self.send_command(payload)
 
     def expcomp_off(self):
-        payloadtype = '01 00'
-        payload="81 01 04 3E 03 FF"
-        self.send_payload(payloadtype, payload)
+        
+        payload ="81 01 04 3E 03 FF"
+        self.send_command(payload)
 
     def expcomp_up(self):
-        payloadtype = '01 00'
-        payload="81 01 04 0E 02 FF"
-        self.send_payload(payloadtype, payload)
+        
+        payload ="81 01 04 0E 02 FF"
+        self.send_command(payload)
 
     def expcomp_down(self):
-        payloadtype = '01 00'
-        payload="81 01 04 0E 03 FF"
-        self.send_payload(payloadtype, payload)
+        
+        payload ="81 01 04 0E 03 FF"
+        self.send_command(payload)
 
     def expcomp_direct(self, x: hex):
-        payloadtype = '01 00'
+        
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 4E 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     #CAM_Backlight : Back Light Comp ON/OFF
     def backlight_on(self):
-        payloadtype='01 00'
-        payload="81 01 04 33 02 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 33 02 FF"
+        self.send_command(payload)
 
     def backlight_off(self):
-        payloadtype='01 00'
-        payload="81 01 04 33 03 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 33 03 FF"
+        self.send_command(payload)
 
     #CAM_WD : Wide Dynamic Range Mode :
     def wide_dynamic_off(self):
-        payloadtype='01 00'
-        payload="81 01 7E 04 00 00 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 7E 04 00 00 FF"
+        self.send_command(payload)
 
     def wide_dynamic_low(self):
-        payloadtype='01 00'
-        payload="81 01 7E 04 00 01 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 7E 04 00 01 FF"
+        self.send_command(payload)
 
     def wide_dynamic_mid(self):
-        payloadtype='01 00'
-        payload="81 01 7E 04 00 02 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 7E 04 00 02 FF"
+        self.send_command(payload)
 
     def wide_dynamic_high(self):
-        payloadtype='01 00'
-        payload="81 01 7E 04 00 03 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 7E 04 00 03 FF"
+        self.send_command(payload)
 
     #CAM_defog : defog mode : ça enlève le brouillard #WTF
     def defog_on(self):
-        payloadtype='01 00'
-        payload="81 01 04 37 02 00 FF"
-        self.send_payload(payloadtype,payload)
+        payload ="81 01 04 37 02 00 FF"
+        self.send_command(payload)
 
     def defog_off(self):
-        payloadtype='01 00'
-        payload="81 01 04 37 03 00 FF"
-        self.send_payload(payloadtype,payload)
+
+        payload = "81 01 04 37 03 00 FF"
+        self.send_command(payload)
 
     #CAM_Aperture
 
     def aperture_reset(self):
-        payloadtype = '01 00'
         payload = "81 01 04 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def aperture_direct(self, x: hex):
-        payloadtype = '01 00'
         if len(x) != 4:     # x n'est pas bon a voir si on check avant
             x = "0x0000"
         message = self.hex_2_message(x)
         payload = "81 01 04 42 00 00 " + message + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def aperture_up(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 42 02 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def aperture_down(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 04 42 02 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     #CAM_HR : High resolution mode
+    def hr_on(self):
+        
+        payload = "81 01 04 52 02 FF"
+        self.send_command(payload)
+
+    def hr_off(self):
+        
+        payload = "81 01 04 52 03 FF"
+        self.send_command(payload)
 
     #CAM_NR : Noise reduction
-    def noise_reduction_level(self,parameter): #entier entre 0= OFF et puis entre 1 et 5
-        payloadtype='01 00'
-        payload="81 01 04 53 0"+str(parameter) +  " FF"
-        self.send_payload(payloadtype,payload)
+    def noise_reduction_level(self, parameter: int):  # entier entre 0= OFF et puis entre 1 et 5
+        
+        payload = "81 01 04 53 0"+str(parameter) + " FF"
+        self.send_command(payload)
 
+    def gamma_level(self, parameter: int): # entier 0 = off, 1 = standard
+        
+        payload = "81 01 04 5B 0" + str(parameter) + " FF"
+        self.send_command(payload)
 
-    #Pan-tiltDrive
+    # High Sensitivity On/off
+    def high_sensitivity_on(self):
+        
+        payload = "81 01 04 5E 02 FF"
+        self.send_command(payload)
+
+    def high_sensitivity_off(self):
+        
+        payload = "81 01 06 5E 03 FF"
+        self.send_command(payload)
+
+    def picture_effect_off(self):
+        
+        payload = "81 01 04 63 00 FF"
+        self.send_command(payload)
+
+    def picture_effect_BW(self):
+        
+        payload = "81 01 04 63 04 FF"
+        self.send_command(payload)
+
+    def picture_effect_negatif(self):
+        
+        payload = "81 01 04 63 02 FF"
+        self.send_command(payload)
+
+    def irc_on(self):
+        
+        payload = "81 01 04 01 02 FF"
+        self.send_command(payload)
+
+    def irc_off(self):
+        
+        payload = "81 01 04 01 03 FF"
+        self.send_command(payload)
+
+    def irc_auto_on(self):
+        
+        payload = "81 01 04 51 02 FF"
+        self.send_command(payload)
+
+    def irc_auto_off(self):
+        
+        payload = "81 01 04 51 03 FF"
+        self.send_command(payload)
+
+    def irc_auto_threshold(self, x: hex):
+        
+        message_x = self.hex_2_message(x)
+        payload = "81 01 04 21 00 00 " + message_x + " FF"
+        self.send_command(payload)
+
+    def stabilizer_on(self):
+        
+        payload = "81 01 04 34 02 FF"
+        self.send_command(payload)
+
+    def stabilizer_off(self):
+        
+        payload = "81 01 04 34 03 FF"
+        self.send_command(payload)
+
+    def stabilizer_hold(self):
+        
+        payload = "81 01 04 34 00 FF"
+        self.send_command(payload)
+
+    def memory_reset(self, x: hex):
+        
+        payload = "81 01 04 3F 00 0" + x[2] + " FF"
+        self.send_command(payload)
+
+    def memory_set(self, x: hex):
+        
+        payload = "81 01 04 3F 01 0" + x[2] + " FF"
+        self.send_command(payload)
+
+    def memory_recall(self, x: hex):
+        
+        payload = "81 01 04 3F 02 0" + x[2] + " FF"
+        self.send_command(payload)
+
+    def idwrite(self, x: hex):
+        
+        payload = "81 01 04 22 " + self.hex_2_message(x) + " FF"
+        self.send_command(payload)
+
+    def chroma_suppress(self, x: hex):
+        
+        payload = "81 01 04 5F " + x[2:] + " FF"
+        self.send_command(payload)
+
+    def color_gain(self, x: hex):
+        
+        payload = "81 01 04 5F 00 00 " + self.hex_2_message(x) + " FF"
+        self.send_command(payload)
+
+    def color_hue(self, x: hex):
+        
+        payload = "81 01 04 4F 00 00 " + self.hex_2_message(x) + " FF"
+        self.send_command(payload)
+
+    def low_latency_low(self):
+        
+        payload = "81 01 7E 01 5A 02 FF"
+        self.send_command(payload)
+
+    def low_latency_normal(self):
+        
+        payload = "81 01 7E 01 5A 03 FF"
+        self.send_command(payload)
+
+    def video_format(self, x: hex):
+        
+        payload = "81 01 7E 01 1E " + self.hex_2_message(x) + " FF"
+        self.send_command(payload)
+
+    def color_system_set(self, x: hex):
+        
+        payload = "81 01 7E 01 03 00 " + self.hex_2_message(x) + " FF"
+        self.send_command(payload)
+
+    def ir_receive_on(self):
+        
+        payload = "81 01 06 08 02 FF"
+        self.send_command(payload)
+
+    def ir_receive_off(self):
+        
+        payload = "81 01 06 08 03 FF"
+        self.send_command(payload)
+
+    def ir_receive_on_off(self):
+        
+        payload = "81 01 06 08 10 FF"
+        self.send_command(payload)
+
+    def ir_receive_return_on(self):
+        
+        payload = "81 01 7D 01 03 00 00 FF"
+        self.send_command(payload)
+
+    def ir_receive_return_off(self):
+        
+        payload = "81 01 7D 01 13 00 00 FF"
+        self.send_command(payload)
+
+    def information_display_on(self):
+        
+        payload = "81 01 7E 01 18 02 FF"
+        self.send_command(payload)
+
+    def information_display_off(self):
+        
+        payload = "81 01 7E 01 18 03 FF"
+        self.send_command(payload)
 
     def pan_tiltDrive_reset(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 06 05 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_home(self):
-        payloadtype = '01 00'
+        
         payload = "81 01 06 04 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_up(self):
         VV = self.VV
         WW = self.WW
-        payloadtype = '01 00'
+        
         payload = "81 01 06 01 " + VV + WW + " 03 01 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_down(self):
         VV = self.VV
         WW = self.WW
-        payloadtype = '01 00'
+        
         payload = "81 01 06 01 " + VV + WW + " 03 02 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_left(self):
         VV = self.VV
         WW = self.WW
-        payloadtype = '01 00'
+        
         payload = "81 01 06 01 " + VV + WW + " 01 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_right(self):
         VV = self.VV
         WW = self.WW
-        payloadtype = '01 00'
+        
         payload = "81 01 06 01 " + VV + WW + " 02 03 FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_absolute(self, y: hex, z: hex):
         """
@@ -485,13 +624,13 @@ class Camera:
         """
         VV=self.VV
         WW=self.WW
-        payloadtype = '01 00'
+        
         payload = "81 01 06 02"  # Absolute position moove
         payload = payload + VV + WW  # add move speed
         messagey = self.hex_2_message(y)
         messagez = self.hex_2_message(z)
         payload = payload + messagey + " " + messagez + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
 
     def pan_tiltDrive_relavtive(self, y: hex, z: hex):
         """
@@ -502,10 +641,44 @@ class Camera:
         """
         VV = self.VV
         WW = self.WW
-        payloadtype = '01 00'
+        
         payload = "81 01 06 03"  # Absolute position moove
         payload = payload + VV + WW  # add move speed
         messagey = self.hex_2_message(y)
         messagez = self.hex_2_message(z)
         payload = payload + messagey + " " + messagez + " FF"
-        self.send_payload(payloadtype, payload)
+        self.send_command(payload)
+
+    def limit_set(self, y: hex, z: hex, w: hex):
+        """
+        set limit position (in absolute)
+        :param y: from DE01 to 2200
+        :param z: from EE01 to 0400
+        :param w: 1 Up right, 0 down left
+        :return:
+        """
+        
+        payload = "81 01 07 00 0" + w[2] + self.hex_2_message(y) + " " + self.hex_2_message(z) + " FF"
+        self.send_command(payload)
+
+    def limit_clear(self, y: hex, z: hex, w: hex):
+        """
+        clear limit position (in absolute)
+        :param y: from DE01 to 2200
+        :param z: from EE01 to 0400
+        :param w: 1 Up right, 0 down left
+        :return:
+        """
+        
+        payload = "81 01 07 00 0" + w[2] + self.hex_2_message(y) + " " + self.hex_2_message(z) + " FF"
+        self.send_command(payload)
+
+    def pantiltset_slow_pantilt_on(self):
+        
+        payload = "81 01 06 44 02 FF"
+        self.send_command(payload)
+
+    def pantiltset_slow_pantilt_off(self):
+        
+        payload = "81 01 06 44 03 FF"
+        self.send_command(payload)
diff --git a/viscaoveriplib/inquiry_library.py b/viscaoveriplib/inquiry_library.py
new file mode 100644
index 0000000..5353ab3
--- /dev/null
+++ b/viscaoveriplib/inquiry_library.py
@@ -0,0 +1,177 @@
+from camera import *
+
+
+class Camera:
+
+    ####
+    ####### FONCTIONS COMMANDES D'EXECUTIONS
+    ####
+
+    def send_inquiry(self, payload: hex):
+        payloadtype = "01 10"
+        self.send_payload(payloadtype, payload)
+
+    #CAM_POWER : Power ON/OFF
+    def power(self):
+        payload = '81 09 04 00 FF'
+        self.send_inquiry(payload)
+
+    def zoom_pos(self):
+        payload = '81 09 04 47 FF'
+        self.send_inquiry(payload)
+
+    def d_zoom(self):
+        payload = '81 09 04 06 FF'
+        self.send_inquiry(payload)
+
+    def focus_mode(self):
+        payload = '81 09 04 38 FF'
+        self.send_inquiry(payload)
+
+    def focus_pos(self):
+        payload = '81 09 04 48 FF'
+        self.send_inquiry(payload)
+
+    def focus_near_limit(self):
+        payload = '81 09 04 28 FF'
+        self.send_inquiry(payload)
+
+    def af_sensitivity(self):
+        payload = '81 09 04 58 FF'
+        self.send_inquiry(payload)
+
+    def af_mode(self):
+        payload = '81 09 04 57 FF'
+        self.send_inquiry(payload)
+
+    def af_time(self):
+        payload = '81 09 04 27 FF'
+        self.send_inquiry(payload)
+
+    def ir_correction(self):
+        payload = '81 09 04 11 FF'
+        self.send_inquiry(payload)
+
+    def wb_mode(self):
+        payload = '81 09 04 35 FF'
+        self.send_inquiry(payload)
+
+    def r_gain(self):
+        payload = '81 09 04 43 FF'
+        self.send_inquiry(payload)
+
+    def b_gain(self):
+        payload = '81 09 04 44 FF'
+        self.send_inquiry(payload)
+
+    def ae_mode(self):
+        payload = '81 09 04 39 FF'
+        self.send_inquiry(payload)
+
+    def slow_shutter_mode(self):
+        payload = '81 09 04 5A FF'
+        self.send_inquiry(payload)
+
+    def shutter_pos(self):
+        payload = '81 09 04 4A FF'
+        self.send_inquiry(payload)
+
+    def iris_pos(self):
+        payload = '81 09 04 4B FF'
+        self.send_inquiry(payload)
+
+    def gain_pos(self):
+        payload = '81 09 04 4C FF'
+        self.send_inquiry(payload)
+
+    def gain_limit(self):
+        payload = '81 09 04 2C FF'
+        self.send_inquiry(payload)
+
+    def expcomp_mode(self):
+        payload = '81 09 04 3E FF'
+        self.send_inquiry(payload)
+
+    def expcomp_pos(self):
+        payload = '81 09 04 4E FF'
+        self.send_inquiry(payload)
+
+    def black_light_mode(self):
+        payload = '81 09 04 33 FF'
+        self.send_inquiry(payload)
+
+    def wd_mode(self):
+        payload = '81 09 7E 04 00 FF'
+        self.send_inquiry(payload)
+
+    def defog(self):
+        payload = '81 09 04 37 FF'
+        self.send_inquiry(payload)
+
+    def apperture(self):
+        payload = '81 09 04 42 FF'
+        self.send_inquiry(payload)
+
+    def hr_mode(self):
+        payload = '81 09 04 52 FF'
+        self.send_inquiry(payload)
+
+    def nr(self):
+        payload = '81 09 04 53 FF'
+        self.send_inquiry(payload)
+
+    def gamma(self):
+        payload = '81 09 04 5B FF'
+        self.send_inquiry(payload)
+
+    def high_sensitivity(self):
+        payload = '81 09 04 5E FF'
+        self.send_inquiry(payload)
+
+    def picture_effect_mode(self):
+        payload = '81 09 04 63 FF'
+        self.send_inquiry(payload)
+
+    def icr_mode(self):
+        payload = '81 09 04 01 FF'
+        self.send_inquiry(payload)
+
+    def auto_icr_mode(self):
+        payload = '81 09 04 51 FF'
+        self.send_inquiry(payload)
+
+    def auto_icr_threshold(self):
+        payload = '81 09 04 21 FF'
+        self.send_inquiry(payload)
+
+    def stabilizer_mode(self):
+        payload = '81 09 04 34 FF'
+        self.send_inquiry(payload)
+
+    def id(self):
+        payload = '81 09 04 22 FF'
+        self.send_inquiry(payload)
+
+    def version(self):
+        payload = '81 09 00 02 FF'
+        self.send_inquiry(payload)
+
+    def chroma_suppress(self):
+        payload = '81 09 04 5F FF'
+        self.send_inquiry(payload)
+
+    def color_gain(self):
+        payload = '81 09 04 49 FF'
+        self.send_inquiry(payload)
+
+    def color_hue(self):
+        payload = '81 09 04 4F FF'
+        self.send_inquiry(payload)
+
+    def low_latency(self):
+        payload = '81 09 7E 01 5A FF'
+        self.send_inquiry(payload)
+
+    def sys_menu_mode(self):
+        payload = '81 09 06 06 FF'
+        self.send_inquiry(payload)
-- 
GitLab