Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ComPortListener(QThread):
- msg_rcvd = QtCore.pyqtSignal(str)
- com_conn_err_signal = QtCore.pyqtSignal(str)
- com_conn_started = QtCore.pyqtSignal()
- def __init__(self, parent=None):
- QThread.__init__(self, parent)
- self.running = False
- # print 'Initiating Thread'
- def run(self):
- print com_port, com_baud
- print 'Run Thread'
- try:
- # print 'Try to connect to ' + com_port
- self.ser = serial.Serial(com_port)
- self.ser.baudrate = com_baud
- self.ser.bytesize = serial.EIGHTBITS
- self.ser.parity = serial.PARITY_NONE
- self.ser.stopbits = serial.STOPBITS_ONE
- self.ser.timeout = 0.1
- self.ser.xonxoff = 0
- self.ser.rtscts = 0
- self.com_conn_started.emit()
- # print 'Connected to ' + com_port
- except:
- self.com_conn_err_signal.emit('Error.' + com_port + '. Could not open port.')
- # print 'Failed to connect to '+ com_port
- msg = ''
- if com_conn:
- # print 'Starting While loop!'
- while self.running:
- byte = str(self.ser.read())
- if len(byte) == 1:
- msg += byte
- if len(msg) >= 1:
- if msg[-1:] == "r":
- self.msg_rcvd.emit(msg)
- msg = ''
- # print 'Ending While loop!'
- def send(self, msg):
- if com_conn:
- # print 'Message is sending!'
- self.ser.write(msg + 'r')
- def close_com_conn(self):
- if com_conn:
- # print 'Closing connection with ' + com_port
- self.ser.close()
- def connect_com_port(self):
- global com_port, com_baud, com_conn
- com_port = re.search(r'(COMd)', self.ui.comboBoxSerialPort.currentText()).group()[1:-1] # [-5:-1]
- com_baud = int(self.ui.comboBoxSerialPort_Baud.currentText())
- com_conn = True
- self.comPortListenerThread.running = True
- self.comPortListenerThread.start()
- def on_start_com_listening(self):
- # print 'Start COM listening'
- global com_conn
- com_conn = True
- self.ui.btn_SP_Conn.setEnabled(False)
- self.ui.btn_SP_Disc.setEnabled(True)
- self.ui.label_SP_conn_indicator.setStyleSheet('image: url(:/indicators/indicators/sm_g_on.png);')
- self.indicator_img_list[1].setStyleSheet('image: url(:/indicators/indicators/rect_sm_g_on.png);')
- self.ui.lineEditConsole_com.setEnabled(True)
- self.ui.btn_console_enter_com.setEnabled(True)
- self.ui.comboBoxSerialPort.setEnabled(False)
- self.ui.comboBoxSerialPort_Baud.setEnabled(False)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement