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))
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()
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)
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()
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 = []