Exemplo n.º 1
0
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

        self.myConfig = Config()
        # bufor na tekst do wysłania
        self.sendTextBuffor = u''
        
        # bufor na wartości odczytane
        self.bufferRecived = u''
        # Opcje wyboru sterowania magistrali
        self.protocolOptionDict = {'Brak': ' ', 'CTRL-S/CTRL-Q': 'xonxoff', 'DSR/DTR': 'dsrdtr', 'RTS/CTS': 'rtscts'}
        # Terminatory standardowe + terminator w?asny
        # ASCII 10 -LF 13 -CR
        self.treminatorTypes = OrderedDict([('CR', chr(13)), ('LF', chr(10)), \
                                                       ('CR, LF', chr(13) + chr(10)), \
                                                       ('brak', ''), \
                                                       (u'własny', '')])

        # Tworzymy lista dostępnych w systemie portów COM
        self.comPortsList = [portList[0] for portList in list_ports.comports()]
        
        #Timmer do odbioru danych/powoduje zap?tlenie programu
        self.recivedTimer = QtCore.QTimer(self)
        #
        #
        #
        # Połączenie sygnałów/slotów - wewnętrzne sprawy Qt
        self.ui.btn_open.clicked.connect(self.openPort)
        self.ui.btn_close.clicked.connect(self.closePort)
        self.ui.btn_save.clicked.connect(self.save)
        self.ui.btn_clear_recived.clicked.connect(self.ui.o_recived_plainTextEdit.clear)
        self.ui.btn_clear_send.clicked.connect(self.ui.o_send_plainTextEdit.clear)
        self.ui.btn_send.clicked.connect(self.send)
        self.ui.btn_pingFunction.clicked.connect(self.ping)
        # self.ui.i_howMuchChars_spinBox.valueChanged(int).connect(self.changedSizeTerminator)
        QtCore.QObject.connect(self.ui.i_howMuchChars_spinBox, QtCore.SIGNAL("valueChanged(int)"), self.changedSizeTerminator)
        QtCore.QObject.connect(self.ui.tabWidget, QtCore.SIGNAL("currentChanged(int)"), self.reDrawKonfigurationTab)
        self.recivedTimer.timeout.connect(self.recived)
        self.ui.i_terminator_comboBox.currentIndexChanged[str].connect(self.terminatorChanged)

        # Tworzenie listy obsługiwanych wartości szybkości transmisji
        for baudRate in Config.serial.BAUDRATES:
            self.ui.i_baudRate_comboBox.addItem(repr(baudRate))

        # Tworzenie listy dostępnych portów COM - dla intefejsu użytkownika
        for port in self.comPortsList:
            self.ui.i_portName_comboBox.addItem(port)
        
        # Dodajemy możliwe typy terminatora
        for terminator in self.treminatorTypes.keys():
            self.ui.i_terminator_comboBox.addItem(terminator)

        # Dodajemy listę typów sterowania transmisją
        for protocol in self.protocolOptionDict.keys():
            self.ui.i_protocol_comboBox.addItem(protocol)

        # Tworzymy listy obiektów intefejsu użytkownika
        # reprezentująch parametry transmisji.
        # W celu ułatwienia zarz?dzania transmisją.
        # Długś słowa
        self.byteSizeList = [self.ui.i_word_7bits_radio, \
                self.ui.i_word_8bits_radio]

        # Parzystość
        self.paritiesList = [self.ui.i_parityNone_radio, \
                self.ui.i_parityEven_radio, \
                self.ui.i_parityOdd_radio]

        # Liczba bitiów stopu
        self.stopBitsList = [self.ui.i_stopBit1_radio, \
                self.ui.i_stopBit2_radio]

        self.readAndSetGui()