Пример #1
0
 def doConfigDialog(self, Locomotif):
     print "open configuration dialog"
     dialog = ConfigDialog(self)
     dialog.setModal(1)
     ret = dialog.exec_()
     # transfer some values
     mapWidth = configData.getMapWidth()
     rundata.setMapWidth(mapWidth)
     self.ui.cmdMapWidth.setText(str(mapWidth))
     mapHeight = configData.getMapHeight()
     rundata.setMapHeight(mapHeight)
     self.ui.cmdMapHeight.setText(str(mapHeight))
Пример #2
0
    def __init__(self, desktop_control, configure_glade_file, shell, plugin):
        Gtk.Menu.__init__(self)
        self.shell = shell

        self.show_player = Gtk.CheckMenuItem.new_with_label('Show Music Player')
        self.show_player.set_active(True)
        self.show_player.connect('activate', self.toggle_player_visibility)
        self.add(self.show_player)

        self.add(Gtk.SeparatorMenuItem.new())

        #preferences = Gtk.ImageMenuItem(Gtk.STOCK_PREFERENCES)
        preferences = Gtk.MenuItem.new_with_label('Preferences')
        #preferences.set_label('gtk-properties')
        self.conf_dialog = ConfigDialog(configure_glade_file, GConf_plugin_path, self, plugin)
        preferences.connect('activate', self.show_preferences_dialog, desktop_control, configure_glade_file)
        self.add(preferences)

        self.show_all()
Пример #3
0
    def onclick_open_txt(self, list_num):
        print("num of list", list_num)
        fname = QFileDialog.getOpenFileName(self, 'Open File', '', 'Data File (*.txt)')[0]
        try:
            f = open(fname, 'rb')
        except:
            print("error reading file")
            return
        rawData = bytearray()
        byte = f.read(1)
        while byte != b'':
            rawData.append(int.from_bytes(byte, byteorder='big'))
            byte = f.read(1)
        f.close()
        print("Len of file:", len(rawData))

        self.data[list_num] = dict(timings=[], accX=[], accY=[], accZ=[], LF=[], RF=[],
                                   LR=[], RR=[], vLF=[], vRF=[], vLR=[], vRR=[],
                                   LFMax='0', LFRef='0', RFMax='0', RFRef='0',
                                   LRMax='0', LRRef='0', RRMax='0', RRRef='0')

        rawData = rawData[rawData.index(127):]
        if rawData[17] == 10:
            print("Найдена калибровочная позиция")
            self.data[list_num]['LFMax'] = struct.unpack(">H", rawData[1:3])[0]
            self.data[list_num]['LFRef'] = struct.unpack(">H", rawData[3:5])[0]
            self.data[list_num]['RFMax'] = struct.unpack(">H", rawData[5:7])[0]
            self.data[list_num]['RFRef'] = struct.unpack(">H", rawData[7:9])[0]
            self.data[list_num]['LRMax'] = struct.unpack(">H", rawData[9:11])[0]
            self.data[list_num]['LRRef'] = struct.unpack(">H", rawData[11:13])[0]
            self.data[list_num]['RRMax'] = struct.unpack(">H", rawData[13:15])[0]
            self.data[list_num]['RRRef'] = struct.unpack(">H", rawData[15:17])[0]

            print("Калибровка:", self.data[list_num]['LFMax'],
                  self.data[list_num]['LFRef'],
                  self.data[list_num]['RFMax'],
                  self.data[list_num]['RFRef'],
                  self.data[list_num]['LRMax'],
                  self.data[list_num]['LRRef'],
                  self.data[list_num]['RRMax'],
                  self.data[list_num]['RRRef'])

        rawData = rawData[18:]
        progressList = [i for i in range(1, len(rawData), int(len(rawData) / 100))]
        intData = []
        curProgressBar = 0
        for i in range(0, len(rawData), self.messageLength):
            tempStruct = []
            for j in range(1, self.messageLength - 1, 2):
                if j < 5:
                    tempStruct.append(struct.unpack(">H", rawData[i + j:i + j + 2])[0])
                else:
                    tempStruct.append(struct.unpack(">h", rawData[i + j:i + j + 2])[0])
            intData.append(tempStruct)

            if i > progressList[curProgressBar] and curProgressBar < (len(progressList) - 1):
                curProgressBar += 1
                print(curProgressBar, '%')

        del rawData

        for slice in intData:
            self.data[list_num]['timings'].append(slice[0] * 65536 + slice[1])
            self.data[list_num]['accX'].append(slice[2])
            self.data[list_num]['accY'].append(slice[3])
            self.data[list_num]['accZ'].append(slice[4])
            self.data[list_num]['LF'].append(slice[9])
            self.data[list_num]['RF'].append(slice[10])
            self.data[list_num]['LR'].append(slice[11])
            self.data[list_num]['RR'].append(slice[12])

        del intData

        dotsInCm = ConfigDialog([self.data[list_num]['LFMax'],
                                 self.data[list_num]['LFRef'],
                                 self.data[list_num]['RFMax'],
                                 self.data[list_num]['RFRef'],
                                 self.data[list_num]['LRMax'],
                                 self.data[list_num]['LRRef'],
                                 self.data[list_num]['RRMax'],
                                 self.data[list_num]['RRRef']
                                 ]).exec_()
        print("Entered values:", dotsInCm)
        if len(dotsInCm) == 8:
            self.data[list_num]['LF'] = self.approx_data_to_cm(self.data[list_num]['LF'],
                                                               self.data[list_num]['LFMax'],
                                                               self.data[list_num]['LFRef'],
                                                               dotsInCm[0],
                                                               dotsInCm[1])
            self.data[list_num]['RF'] = self.approx_data_to_cm(self.data[list_num]['RF'],
                                                               self.data[list_num]['RFMax'],
                                                               self.data[list_num]['RFRef'],
                                                               dotsInCm[2],
                                                               dotsInCm[3])
            self.data[list_num]['LR'] = self.approx_data_to_cm(self.data[list_num]['LR'],
                                                               self.data[list_num]['LRMax'],
                                                               self.data[list_num]['LRRef'],
                                                               dotsInCm[4],
                                                               dotsInCm[5])
            self.data[list_num]['RR'] = self.approx_data_to_cm(self.data[list_num]['RR'],
                                                               self.data[list_num]['RRMax'],
                                                               self.data[list_num]['RRRef'],
                                                               dotsInCm[6],
                                                               dotsInCm[7])
            print("RR:", self.data[list_num]['RR'][20:50])
            min_val = min([min(self.data[list_num]['LF']), min(self.data[list_num]['RF']), min(self.data[list_num]['LR']), min(self.data[list_num]['RR'])])
            max_val = max(
                [max(self.data[list_num]['LF']), max(self.data[list_num]['RF']), max(self.data[list_num]['LR']),
                 max(self.data[list_num]['RR'])])
            self.tYMax.setText('{:.2f}'.format(max_val))
            self.tYmin.setText('{:.2f}'.format(min_val))

        # self.data[list_num]['LF'] = self.simple_filter(self.data[list_num]['LF'], 2)
        # self.data[list_num]['RF'] = self.simple_filter(self.data[list_num]['RF'], 2)
        # self.data[list_num]['LR'] = self.simple_filter(self.data[list_num]['LR'], 2)
        # self.data[list_num]['RR'] = self.simple_filter(self.data[list_num]['RR'], 2)

        min_timing = min(self.data[list_num]['timings'])
        print("Min timings is: ", min_timing, self.data[list_num]['timings'][:10])
        for i in range(len(self.data[list_num]['timings'])):
            self.data[list_num]['timings'][i] = (self.data[list_num]['timings'][i] - min_timing) / 1000
            self.data[list_num]['accX'][i] = self.data[list_num]['accX'][i] / 16384
            self.data[list_num]['accY'][i] = self.data[list_num]['accY'][i] / 16384
            self.data[list_num]['accZ'][i] = self.data[list_num]['accZ'][i] / 16384

        self.data[list_num]['vLF'] = self.calc_vel(self.data[list_num]['timings'], self.data[list_num]['LF'])
        self.data[list_num]['vRF'] = self.calc_vel(self.data[list_num]['timings'], self.data[list_num]['RF'])
        self.data[list_num]['vLR'] = self.calc_vel(self.data[list_num]['timings'], self.data[list_num]['LR'])
        self.data[list_num]['vRR'] = self.calc_vel(self.data[list_num]['timings'], self.data[list_num]['RR'])

        self.chbox_draw_plots()
        self.draw_accel_plots(0, 0)
Пример #4
0
 def actionConfig(self):
     """根据配置对话框的内容获取相关参数"""
     config_dialog = ConfigDialog(self.tcp_link.getLineState)
     config_dialog.show()
     config_dialog.exec_()
     if config_dialog.getPassFlag():
         self.group_digital = [(i[0].text(), i[1].isChecked())
                               for i in config_dialog.group_digital]
         self.group_press = [(i[0].text(), i[1].isChecked(),
                              i[2].currentIndex())
                             for i in config_dialog.group_press]
         self.group_speed_trigger = [
             config_dialog.speed_chk.isChecked(),
             config_dialog.trigger_combo.currentIndex()
         ]
         #测试项目,项目名称,测试人员,测试日期
         self.groupNPTInfo = [
             config_dialog.testProject.currentIndex(),
             config_dialog.projectName_edit.text(),
             config_dialog.person_edit.text(),
             config_dialog.time_edit.text()
         ]
         #测试时长
         self.measure_time = config_dialog.measureTime
         #测试距离
         self.measure_distance = config_dialog.measureDistance
         #set默认通道
         self.default_press = config_dialog.default_press.currentIndex()
         #设置默认膛压通道
         self.notice_window.setDefault(self.default_press)
         self.default_digital = config_dialog.default_digital.currentIndex()
         self.tcp_link.setPressChannel(self.default_press)
         self.tcp_link.setDigitalChannel(self.default_digital)
         self.tcp_link.setThresholdPress(config_dialog.threshold_press)
         self.tcp_link.setCalibration(config_dialog.calibration)
         self.tcp_link.setSpeedFactor(self.groupNPTInfo[0])
         #需要绘制的坐标系
         self.exist_axis = []
         #需要调整宽度的坐标系
         axis_num = []
         for i, j in enumerate(self.group_press):
             if j[1]:
                 self.exist_axis.append(i)
                 axis_num.append((i, j[2]))
                 self.scaleFactor[i] = self.scaleRegion[j[2]]
                 #if j[0]:
                 #self.report['PRESS'][i] = j[0]
                 #else:
                 #self.report['PRESS'][i] = u'通道%d' %(i + 1)
             else:
                 self.scaleFactor[i] = 0
                 #self.report['PRESS'][i] = None
         for i, j in enumerate(self.group_digital):
             if j[1]:
                 self.exist_axis.append(i + 6)
                 #if j[0]:
                 #self.report['DIGITAL'][i] = j[0]
                 #else:
                 #self.report['DIGITAL'][i] = '通道%d' %(i + 1)
             #else:
             #self.report['DIGITAL'][i] = None
         if self.group_speed_trigger[0]:
             self.exist_axis.extend([10, 11, 12])
             if self.groupNPTInfo[0] == 0:
                 axis_num.append((12, 1))
             else:
                 axis_num.append((12, 4))
         self.tcp_link.setFactor(self.scaleFactor[:])
         #print self.scaleFactor
         self.curve_window.produceAxis(self.exist_axis[:])
         for i in (axis_num):
             self.curve_window.setTicker(i[0], i[1])
         #开始根据配置获取需求值并显示当前压力
         self.tcp_link.setTestFlag(False)
         self.tcp_link.setCurrentFlag(True)
         #报告关键值
         #序列号
         self.report['SERIAL'] = self.groupNPTInfo[1]
         _test_type = [u'鱼雷', u'诱饵']
         self.report['TYPE'] = _test_type[self.groupNPTInfo[0]]
         _trigger = [u'自动触发', u'手动触发', u'外触发']
         self.report['TRIGGER'] = _trigger[
             self.group_speed_trigger[1]]  #触发方式
         self.report['PERSON'] = self.groupNPTInfo[2]  #测试人员
         self.report['DATE'] = self.groupNPTInfo[3]  #测试日期
         self.tcp_link.setCurrentFlag(True)
         self.actionOrder('ready')
         #print self.measure_distance
     self.configuration_window.readConfig()
Пример #5
0
    states.DEBUG = args.debug

    if not args.cli:
        teams = set()
        strategies = []
        config = dict()
        defaults = {
            'width': int(args.size.split()[0]),
            'height': int(args.size.split()[1]),
            'delay': args.delay,
            'enable_logs': args.logs_flag,
            'theme': args.theme,
            'strategies': (args.strategies if args.strategies else [])
        }
        ConfigDialog(strategies, config, defaults)
        size = (config['width'], config['height'])
        delay = config['delay']
        ready_log_name = (log_name if config['enable_logs'] else None)
        # turn name to path
        themeStr = os.path.join(themes.__path__[0], config['theme'] + '.yml')
    else:
        size = tuple(map(int, args.size.split()))
        delay = args.delay
        ready_log_name = (log_name if args.logs_flag else None)
        themeStr = args.theme
        teams = set()
        if args.strategies:
            strategies = Loader().loadStrategies(args.strategies)
        else:
            strategies = []