Example #1
0
 def __init__(self, process, control, meta, block_name, field_name,
              writeable):
     super(PandABoxTablePart, self).__init__(
         process, control, meta, block_name, field_name, writeable)
     # Fill in the meta object with the correct headers
     columns = OrderedDict()
     self.fields = OrderedDict()
     fields = control.get_table_fields(block_name, field_name)
     for field_name, (bits_hi, bits_lo) in fields.items():
         nbits = bits_hi - bits_lo + 1
         if nbits < 1:
             raise ValueError("Bad bits %s:%s" % (bits_hi, bits_lo))
         if nbits == 1:
             column_meta = BooleanArrayMeta(field_name)
             widget_tag = widget("checkbox")
         else:
             if nbits <= 8:
                 dtype = "uint8"
             elif nbits <= 16:
                 dtype = "uint16"
             elif nbits <= 32:
                 dtype = "uint32"
             elif nbits <= 64:
                 dtype = "uint64"
             else:
                 raise ValueError("Bad bits %s:%s" % (bits_hi, bits_lo))
             column_meta = NumberArrayMeta(dtype, field_name)
             widget_tag = widget("textinput")
         label, column_name = make_label_attr_name(field_name)
         column_meta.set_label(label)
         column_meta.set_tags([widget_tag])
         columns[column_name] = column_meta
         self.fields[column_name] = (bits_hi, bits_lo)
     meta.set_elements(TableElementMap(columns))
Example #2
0
 def create_attributes(self):
     label, attr_name = make_label_attr_name(self.field_name)
     self.meta.set_label(label)
     self.attr = self.meta.make_attribute(self.initial_value)
     if self.writeable:
         writeable_func = self.set_field
     else:
         writeable_func = None
     yield attr_name, self.attr, writeable_func
 def create_attributes(self):
     label, attr_name = make_label_attr_name(self.field_name)
     self.meta.set_label(label)
     self.attr = self.meta.make_attribute(self.initial_value)
     if self.writeable:
         writeable_func = self.set_field
     else:
         writeable_func = None
     yield attr_name, self.attr, writeable_func
Example #4
0
 def _make_out_capture(self, field_name, field_data):
     group_tag = self._make_group("outputs")
     meta = ChoiceMeta("Capture %s in PCAP?" % field_name,
                       field_data.labels,
                       tags=[group_tag, widget("combo")])
     self._make_field_part(field_name + ".CAPTURE", meta, writeable=True)
     if self.area_detector:
         from malcolm.parts.ADCore.hdfwriterpart import \
             attribute_dataset_types
         # Make a string part to hold the name of the dataset
         part_name = field_name + ".DATASET_NAME"
         label, attr_name = make_label_attr_name(part_name)
         params = StringPart.MethodMeta.prepare_input_map(
             name=attr_name,
             widget="textinput",
             description="Name of the captured dataset in HDF file",
             writeable=True,
             config=True)
         part = StringPart(self.process, params)
         self._add_part(part_name, part)
         # Make a choice part to hold the type of the dataset
         part_name = field_name + ".DATASET_TYPE"
         label, attr_name = make_label_attr_name(part_name)
         if "INENC" in self.block_name:
             initial = "position"
         else:
             initial = "monitor"
         params = ChoicePart.MethodMeta.prepare_input_map(
             name=attr_name,
             widget="textinput",
             description="Type of the captured dataset in HDF file",
             writeable=True,
             choices=attribute_dataset_types,
             initialValue=initial)
         part = StringPart(self.process, params)
         self._add_part(part_name, part)
    def create_methods(self):
        label, method_name = make_label_attr_name(self.field_name)
        if self.arg_meta:
            self.arg_name = method_name

            # Decorate set_field with a MethodMeta
            @method_takes(self.arg_name, self.arg_meta, REQUIRED)
            def set_field(params):
                self.set_field(params)

            self.method = set_field.MethodMeta
            writeable_func = set_field
        else:
            self.method = MethodMeta()
            writeable_func = None
        self.method.set_description(self.description)
        self.method.set_tags(self.tags)
        self.method.set_label(label)
        yield method_name, self.method, writeable_func
Example #6
0
    def create_methods(self):
        label, method_name = make_label_attr_name(self.field_name)
        if self.arg_meta:
            self.arg_name = method_name

            # Decorate set_field with a MethodMeta
            @method_takes(self.arg_name, self.arg_meta, REQUIRED)
            def set_field(params):
                self.set_field(params)

            self.method = set_field.MethodMeta
            writeable_func = set_field
        else:
            self.method = MethodMeta()
            writeable_func = None
        self.method.set_description(self.description)
        self.method.set_tags(self.tags)
        self.method.set_label(label)
        yield method_name, self.method, writeable_func
 def _make_out_capture(self, field_name, field_data):
     group_tag = self._make_group("outputs")
     meta = ChoiceMeta("Capture %s in PCAP?" % field_name,
                       field_data.labels, tags=[group_tag, widget("combo")])
     self._make_field_part(field_name + ".CAPTURE", meta, writeable=True)
     meta = NumberMeta(
         "uint8", "How many FPGA ticks to delay data capture",
         tags=[group_tag, widget("textinput")])
     self._make_field_part(field_name + ".DATA_DELAY", meta, writeable=True)
     if self.area_detector:
         # Make a string part to hold the name of the dataset
         field_name += ".DATASET_NAME"
         label, attr_name = make_label_attr_name(field_name)
         params = StringPart.MethodMeta.prepare_input_map(
             name=attr_name, widget="textinput",
             description="Name of the captured dataset in HDF file",
             writeable=True)
         part = StringPart(self.process, params)
         self._add_part(field_name, part)