Exemplo n.º 1
0
    def get_num_outputs(self):
        num_outputs = -1
        if self.params.has_key('sensors'):
            sensors = self.params['sensors']
            if type(sensors) in [str, unicode]:
                if type(sensors) == unicode:
                    sensors = sensors.encode()
                sensors = xml_utils.full_clean(sensors)

            assert type(sensors) in [list, tuple], "Problem with the type of sensors: " + str(type(sensors))

            num_outputs = len(sensors)
            return num_outputs

        elif self.params.has_key('output_angles'):
            out_angles = self.params['output_angles']
            if type(out_angles) == str:
                out_angles = xml_utils.full_clean(out_angles)

            num_outputs = len(out_angles)
            return num_outputs

        #I don't know what to do if that didn't work
        return 1
Exemplo n.º 2
0
    def on_show_outputs_change(self):
        print('in on_show_outputs_change')
        show_outs_str = self.get_grid_val('show_outputs')
        show_outs_bool = xml_utils.str_to_bool(show_outs_str)
        if show_outs_bool:
            self.append_rows_if_missing(output_opts)
            #try to determine sensible defaults
            #
            # ? how do I determine info about the active block?
            #
            # output_opts = ['show_output_arrows','output_distances','output_angles']
            output_str = self.get_grid_val('sensors')
            show_arrows = [True]
            out_distances = [1.0]
            out_angles = [0]
            out_labels = ['']

            if output_str:
                my_outputs = xml_utils.full_clean(output_str)
                if type(my_outputs) == list:
                    num_out = len(my_outputs)
                    show_arrows = [True]*num_out
                    out_distances = [1.0]*num_out
                    out_labels = ['']*num_out
                    if num_out == 1:
                        out_angles = [0]
                    elif num_out == 2:
                        out_angles = [-30,30]
                    elif num_out == 3:
                        out_angles = [-45,0,45]
                    elif num_out == 4:
                        out_angles =[-45, -15, 15, 45]

            self.set_grid_val('output_angles', out_angles)
            self.set_grid_val('output_distances', out_distances)
            self.set_grid_val('show_output_arrows', show_arrows)
            self.set_grid_val('output_labels', out_labels)
        else:
            self.delete_grid_rows(output_opts)
    def on_show_outputs_change(self):
        print('in on_show_outputs_change')
        show_outs_str = self.get_grid_val('show_outputs')
        show_outs_bool = xml_utils.str_to_bool(show_outs_str)
        if show_outs_bool:
            self.append_rows_if_missing(output_opts)
            #try to determine sensible defaults
            #
            # ? how do I determine info about the active block?
            #
            # output_opts = ['show_output_arrows','output_distances','output_angles']
            output_str = self.get_grid_val('sensors')
            show_arrows = [True]
            out_distances = [1.0]
            out_angles = [0]
            out_labels = ['']

            if output_str:
                my_outputs = xml_utils.full_clean(output_str)
                if type(my_outputs) == list:
                    num_out = len(my_outputs)
                    show_arrows = [True] * num_out
                    out_distances = [1.0] * num_out
                    out_labels = [''] * num_out
                    if num_out == 1:
                        out_angles = [0]
                    elif num_out == 2:
                        out_angles = [-30, 30]
                    elif num_out == 3:
                        out_angles = [-45, 0, 45]
                    elif num_out == 4:
                        out_angles = [-45, -15, 15, 45]

            self.set_grid_val('output_angles', out_angles)
            self.set_grid_val('output_distances', out_distances)
            self.set_grid_val('show_output_arrows', show_arrows)
            self.set_grid_val('output_labels', out_labels)
        else:
            self.delete_grid_rows(output_opts)
 def build_params_dict(self):
     params_dict = {}
     exit_code = 0
     max_rows = self._get_max_rows()
     for i in range(1,max_rows):
         key = self.params_grid.GetCellValue(i,0)
         val = self.params_grid.GetCellValue(i,1)
         key = key.strip()
         val = val.strip()
         val = xml_utils.full_clean(val)
         if not key:
             break
         elif not val:
             ## msg = 'Empty parameters are not allow: %s' % key
             ## wx.MessageBox(msg, 'Parameter Error', 
             ##               wx.OK | wx.ICON_ERROR)
             ## exit_code = 1
             ## break
             val = None#do I really want to make this explicit, or
                 #just leave it blank?
         params_dict[key] = val
     print('params_dict = %s' % params_dict)
     return params_dict
Exemplo n.º 5
0
 def build_params_dict(self):
     params_dict = {}
     exit_code = 0
     max_rows = self._get_max_rows()
     for i in range(1, max_rows):
         key = self.params_grid.GetCellValue(i, 0)
         val = self.params_grid.GetCellValue(i, 1)
         key = key.strip()
         val = val.strip()
         val = xml_utils.full_clean(val)
         if not key:
             break
         elif not val:
             ## msg = 'Empty parameters are not allow: %s' % key
             ## wx.MessageBox(msg, 'Parameter Error',
             ##               wx.OK | wx.ICON_ERROR)
             ## exit_code = 1
             ## break
             val = None  #do I really want to make this explicit, or
             #just leave it blank?
         params_dict[key] = val
     print('params_dict = %s' % params_dict)
     return params_dict
Exemplo n.º 6
0
 def set_params_as_attrs(self):
     for key, val in self.params.iteritems():
         val = xml_utils.full_clean(val)
         val = xml_utils.try_string_to_number(val)
         setattr(self, key, val)