def fullrun(): controller = Controller(DEVICE_TYPE, STATION_ID, STATION_INDEX) result = controller.executeScenario() print(result)
class MainWindowClass(QtWidgets.QMainWindow, form_class): def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) self.setupUi(self) self.startButton.clicked.connect(self.start) self.startButton.setStyleSheet("background-color: green;") title = "ATE Station %s-%s" % (STATION_ID, STATION_INDEX) self.setWindowTitle(title) self.input2LineEdit.hide() self.input2Label.hide() self.input1LineEdit.setFocus() self.controller = Controller(DEVICE_TYPE, STATION_ID, STATION_INDEX) if STATION_ID == '1': self.input1Label.setText("Internal Serial Number (PCB)") self.input2Label.show() self.input2Label.setText("SMT Serial Number") self.input2LineEdit.show() self.input2LineEdit.setMaxLength(11) self.input3Label.hide() self.input3LineEdit.hide() elif STATION_ID == '2': self.input1Label.setText("Internal Serial Number (PCB)") self.input2Label.show() self.input2Label.setText("E-INK Lot Number") self.input2LineEdit.show() self.input2LineEdit.setMaxLength(25) # Hide the Heart Rate Serial Number self.input3Label.hide() self.input3LineEdit.hide() elif STATION_ID == '3': # Setup the Internal serial number label and line edit input self.input1Label.setText("Internal Serial Number (PCB)") self.input1LineEdit.show() self.input1LineEdit.setMaxLength(SERIAL_NUMBER_LENGTH) # Setup the packaging serial number length and line edit input self.input2LineEdit.setMaxLength(SERIAL_NUMBER_LENGTH) self.input2Label.setText("Packaging Serial Number") self.input2Label.show() self.input2LineEdit.show() self.input3Label.setText("Heart Rate Serial Number") self.input3Label.show() self.input3LineEdit.show() # Set focus to the HR SN when the GUI is loaded. self.input3LineEdit.setFocus() def updateGui(self): QtWidgets.QApplication.processEvents() def keyPressEvent(self, event): """ This function detects if the Enter or Return key is pressed and calls the start() function. """ if event.key() == QtCore.Qt.Key_Enter or event.key( ) == QtCore.Qt.Key_Return: self.start() def start(self): ateConfig.log.logger.debug('Scenario Attributes ' + str(Scenario.ateTestAttr)) # Clear all of the Scenario attributes. Scenario.clearAteTestAttrs() ateConfig.log.logger.debug('Cleared Scenario Attributes ' + str(Scenario.ateTestAttr)) testsFailed = None testFailedData = None self.__setStatusLabel(4) self.updateGui() serial_num = '' serial_num_internal = '' serial_num_smt = '' serial_num_hr = '' if STATION_ID == '1' or STATION_ID == '2' or STATION_ID == '2.5': self.serial_num_internal = self.input1LineEdit.text() serial_num_internal = str(self.input1LineEdit.text()) self.serial_num_smt = self.input2LineEdit.text() serial_num_smt = str(self.input2LineEdit.text()) self.serial_num = None serial_num = None Scenario.ateTestAttr['SMT_serial_number'] = serial_num_smt Scenario.ateTestAttr[ 'internal_serial_number'] = serial_num_internal if STATION_ID == '2': Scenario.ateTestAttr['EInkLotNumber'] = str( self.input2LineEdit.text()) elif STATION_ID == '3': # Get the packaging serial number self.serial_num_internal = self.input1LineEdit.text() serial_num_internal = str(self.input1LineEdit.text()) # Get the internal serial number. self.serial_num = self.input2LineEdit.text() serial_num = str(self.input2LineEdit.text()) # get the heart rate serial number. self.heartRateSerialNumber = str(self.input3LineEdit.text()) self.serial_num_hr = self.heartRateSerialNumber serial_num_hr = self.heartRateSerialNumber Scenario.ateTestAttr[ 'internal_serial_number'] = serial_num_internal Scenario.ateTestAttr['serial_number'] = serial_num # Scenario.ateTestAttr['SMT_serial_number'] = serial_num_smt Scenario.ateTestAttr['serial_number_heart_rate'] = serial_num_hr serial_num_smt = serial_num_hr #Enable serial number check (validSerialNumber, serial_num, serial_num_internal, serial_num_hr) = serialNumberCheck(serial_num, serial_num_internal, serial_num_smt) # validSerialNumber = True if validSerialNumber: # Set current local time os.environ['TZ'] = TIMEZONE time.tzset() curr_time = datetime.datetime.now() print("\nCurrent local time is %s\n" % datetime.datetime.strftime(curr_time, "%Y-%m-%d %H:%M:%S")) for x in range(0, 1): (status, testsFailed) = self.controller.executeScenario() else: status = 3 print('Status: {}'.format(status)) self.__setStatusLabel(status, testsFailed) self.input1LineEdit.setText("") self.input2LineEdit.setText("") self.input3LineEdit.setText("") if STATION_ID == '1' or STATION_ID == '2': self.input1LineEdit.setFocus() elif STATION_ID == '3': self.input3LineEdit.setFocus() def __setStatusLabel(self, success, testsFailed=None): self.statusTextBrowser.setStyleSheet("font-size: 13pt") if success == 0: self.statusTextBrowser.setText("SUCCESS") self.statusTextBrowser.setStyleSheet("background-color: green;") print("Success!") elif success == 2: self.statusTextBrowser.setText( 'Tests succeeded, Raspberry Pi not connected to internet') self.statusTextBrowser.setStyleSheet("background-color: yellow;") print("Tests succeeded, Raspberry Pi not connected to internet.") elif success == 3: self.statusTextBrowser.setText( "Invalid serial number! Try rescanning the barcode.") self.statusTextBrowser.setStyleSheet("background-color: blue;") print("Check errors") elif success == 4: self.statusTextBrowser.setText("Tests running...") self.statusTextBrowser.setStyleSheet("background-color: gray;") elif success == 5: self.statusTextBrowser.setText(testsFailed) self.statusTextBrowser.setStyleSheet("background-color: yellow;") self.updateGui() time.sleep(1) self.statusTextBrowser.setStyleSheet("background-color: gray;") self.updateGui() time.sleep(1) self.statusTextBrowser.setStyleSheet("background-color: yellow;") elif success == 6: self.statusTextBrowser.setText(testsFailed) self.statusTextBrowser.setStyleSheet("background-color: red;") print("No record for this device in database.") else: errorMessage = "Tests Failed:\n" try: # Display the failure code and text for the operator for test in testsFailed: errorMessage += '==================================================\n' testId = ateConfig.ateTestIdMap[str(test['testClassName'])] errorMessage += testId + ': ' + str( test['name']) + '\n' + str(test['data']) + '\n' if 'error' in test: errorMessage += '\n' + 'Error: ' + str( test['error']) + '\n' except Exception as exc: ateConfig.log.logger.error(sys.exc_info()) ateConfig.log.logger.error('\n'.join(traceback.format_stack())) self.statusTextBrowser.setText(errorMessage) self.statusTextBrowser.setStyleSheet("background-color: red;") print("Tests failed") print( "\n==============================================================\n" ) self.updateGui()