code: def set_value(self, complete_name, value):
          
          element = self.toc.get_element_by_complete_name(complete_name)
  
          if not element:
              logger.warning("Cannot set value for [%s], it's not in the TOC!",
                             complete_name)
              raise KeyError('{} not in param TOC'.format(complete_name))
          elif element.access == ParamTocElement.RO_ACCESS:
              logger.debug('[%s] is read only, no trying to set value',
                           complete_name)
              raise AttributeError('{} is read-only!'.format(complete_name))
          else:
              varid = element.ident
              pk = CRTPPacket()
              pk.set_header(CRTPPort.PARAM, WRITE_CHANNEL)
              if self._useV2:
                  pk.data = struct.pack('<H', varid)
              else:
                  pk.data = struct.pack('<B', varid)
  
              try:
                  value_nr = eval(value)
              except TypeError:
                  value_nr = value
  
              pk.data += struct.pack(element.pytype, value_nr)
              self.param_updater.request_param_setvalue(pk)
docs: Set the value for the supplied parameter.