예제 #1
0
 def _create_params(self):
     self.dct_params = {}
     if not self.camera:
         return
     lst_ignore_prop = ["Trigger"]
     dct_prop = self.camera.get_dict_available_features()
     for name, value in dct_prop.items():
         if name in lst_ignore_prop:
             continue
         try:
             if name == "White Balance":
                 param = Param("%s%s" % (name, self.key_auto_param), False)
                 param.add_notify_reset(self.update_property_param)
                 self.dct_params[param.get_name()] = param
                 param = Param("%s-red" % name, value["RV_value"], min_v=value["min"], max_v=value["max"])
                 param.add_notify_reset(self.update_property_param)
                 self.dct_params[param.get_name()] = param
                 param = Param("%s-blue" % name, value["BU_value"], min_v=value["min"], max_v=value["max"])
                 param.add_notify_reset(self.update_property_param)
                 self.dct_params[param.get_name()] = param
                 continue
             elif name == "Shutter" or name == "Gain":
                 param = Param("%s%s" % (name, self.key_auto_param), False)
                 param.add_notify_reset(self.update_property_param)
                 self.dct_params[param.get_name()] = param
             param = Param(name, value["value"], min_v=value["min"], max_v=value["max"])
             param.add_notify_reset(self.update_property_param)
             self.dct_params[param.get_name()] = param
         except Exception as e:
             log.printerror_stacktrace(logger, "%s - name: %s, value: %s" % (e, name, value))
예제 #2
0
 def _deserialize_param(params_ser):
     if type(params_ser) is dict:
         value = {}
         for name, param_ser in params_ser.items():
             param = Param(name, None, serialize=param_ser)
             value[param.get_name()] = param
         return value
     elif type(params_ser) is list:
         return [Param("temp", None, serialize=param_ser) for param_ser in
                 params_ser]
     return []
예제 #3
0
 def _deserialize_param(params_ser):
     if type(params_ser) is dict:
         value = {}
         for name, param_ser in params_ser.items():
             param = Param(name, None, serialize=param_ser)
             value[param.get_name()] = param
         return value
     elif type(params_ser) is list:
         return [
             Param("temp", None, serialize=param_ser)
             for param_ser in params_ser
         ]
     return []
예제 #4
0
 def deserialize(self, data):
     if not data:
         return False
     for uno_data in data:
         if not uno_data:
             continue
         try:
             param = Param(None, None, serialize=uno_data)
             own_param = self.dct_params.get(param.get_name(), None)
             if own_param:
                 own_param.merge(param)
         except Exception as e:
             log.printerror_stacktrace(logger, e)
             return False
     return True