Changeset 192


Ignore:
Timestamp:
09/21/10 14:49:20 (11 years ago)
Author:
sc
Message:

trunk/synapse/interface/puzzlebox_synapse_interface_design.ui

  • Control Panel tab cleaned up

trunk/synapse/Puzzlebox/Synapse/Interface.py:

  • Control Panel session and packet statistics calculated
  • Control Panel buttons connected to functions
  • convert_seconds_to_datetime function added

trunk/synapse/Puzzlebox/Synapse/Protocol.py:

  • session time, packet count, and bad packet counters added


Location:
trunk/synapse
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/synapse/Puzzlebox/Synapse/Interface.py

    r189 r192  
    1010 
    1111__changelog__ = """\ 
    12 Last Update: 2010.09.20 
     12Last Update: 2010.09.21 
    1313 
    1414""" 
     
    2020 
    2121### IMPORTS ### 
    22 import os, sys 
     22import os, sys, time 
    2323import simplejson as json 
    2424 
     
    202202                                  QtCore.SIGNAL("clicked()"), \ 
    203203                                  self.startThinkGearConnectServer) 
     204                 
     205                self.connect(self.pushButtonSave, \ 
     206                                  QtCore.SIGNAL("clicked()"), \ 
     207                                  self.saveData) 
     208                 
     209                self.connect(self.pushButtonExport, \ 
     210                                  QtCore.SIGNAL("clicked()"), \ 
     211                                  self.exportData) 
     212                 
     213                self.connect(self.pushButtonReset, \ 
     214                                  QtCore.SIGNAL("clicked()"), \ 
     215                                  self.resetData) 
    204216         
    205217         
     
    499511                                    self.tabWidget.indexOf(self.tabCharts)): 
    500512                                        self.chartEEGMatplot.update_figure('eegPower', packet['eegPower']) 
     513                 
     514                 
     515                if ((self.thinkGearConnectServer.protocol != None) and 
     516                    (self.tabWidget.currentIndex() == \ 
     517                     self.tabWidget.indexOf(self.tabControlPanel))): 
     518                         
     519                        session_time = time.time() - \ 
     520                                self.thinkGearConnectServer.protocol.session_start_timestamp 
     521                         
     522                        session_time = int(session_time) 
     523                         
     524                        session_time = self.convert_seconds_to_datetime(session_time) 
     525                         
     526                        self.textLabelSessionTime.setText(session_time) 
     527                         
     528                        self.textLabelPacketsReceived.setText( "%i" % \ 
     529                                self.thinkGearConnectServer.protocol.packet_count) 
     530                        self.textLabelPacketsDropped.setText( "%i" % \ 
     531                                self.thinkGearConnectServer.protocol.bad_packets) 
    501532         
    502533         
     
    610641        ################################################################## 
    611642         
     643        def saveData(self): 
     644                 
     645                pass 
     646         
     647         
     648        ################################################################## 
     649         
     650        def exportData(self): 
     651                 
     652                pass 
     653         
     654         
     655        ################################################################## 
     656         
     657        def resetData(self): 
     658                 
     659                pass 
     660         
     661         
     662        ##################################################################### 
     663         
     664        def convert_seconds_to_datetime(self, duration): 
     665                 
     666                duration_hours = duration / (60 * 60) 
     667                duration_minutes = (duration - (duration_hours * (60 * 60))) / 60 
     668                duration_seconds = (duration - (duration_hours * (60 * 60)) - (duration_minutes * 60)) 
     669                 
     670                duration_hours = '%i' % duration_hours 
     671                if (len(duration_hours) == 1): 
     672                        duration_hours = "0%s" % duration_hours 
     673                 
     674                duration_minutes = '%i' % duration_minutes 
     675                if (len(duration_minutes) == 1): 
     676                        duration_minutes = "0%s" % duration_minutes 
     677                 
     678                duration_seconds = '%i' % duration_seconds 
     679                if (len(duration_seconds) == 1): 
     680                        duration_seconds = "0%s" % duration_seconds 
     681                 
     682                datetime = '%s:%s:%s' % (duration_hours, duration_minutes, duration_seconds) 
     683                 
     684                return(datetime) 
     685         
     686         
     687        ################################################################## 
     688         
    612689        def closeEvent(self, event): 
    613690                 
  • trunk/synapse/Puzzlebox/Synapse/Interface_Design.py

    r174 r192  
    33# Form implementation generated from reading ui file 'interface/puzzlebox_synapse_interface_design.ui' 
    44# 
    5 # Created: Wed Sep  1 02:00:44 2010 
     5# Created: Tue Sep 21 06:34:27 2010 
    66#      by: PyQt4 UI code generator 4.7.3 
    77# 
     
    232232                self.tabCharts.setObjectName("tabCharts") 
    233233                self.tabWidget.addTab(self.tabCharts, "") 
    234                 self.tabDebugConsole = QtGui.QWidget() 
    235                 self.tabDebugConsole.setObjectName("tabDebugConsole") 
    236                 self.textEditDebugConsole = QtGui.QTextEdit(self.tabDebugConsole) 
    237                 self.textEditDebugConsole.setGeometry(QtCore.QRect(10, 3, 776, 386)) 
     234                self.tabControlPanel = QtGui.QWidget() 
     235                self.tabControlPanel.setObjectName("tabControlPanel") 
     236                self.textEditDebugConsole = QtGui.QTextEdit(self.tabControlPanel) 
     237                self.textEditDebugConsole.setGeometry(QtCore.QRect(185, 3, 601, 386)) 
    238238                self.textEditDebugConsole.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn) 
    239239                self.textEditDebugConsole.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) 
    240240                self.textEditDebugConsole.setReadOnly(True) 
    241241                self.textEditDebugConsole.setObjectName("textEditDebugConsole") 
    242                 self.tabWidget.addTab(self.tabDebugConsole, "") 
     242                self.pushButtonReset = QtGui.QPushButton(self.tabControlPanel) 
     243                self.pushButtonReset.setGeometry(QtCore.QRect(43, 355, 77, 25)) 
     244                self.pushButtonReset.setObjectName("pushButtonReset") 
     245                self.textLabelPuzzleboxSynapse_2 = QtGui.QLabel(self.tabControlPanel) 
     246                self.textLabelPuzzleboxSynapse_2.setGeometry(QtCore.QRect(61, 2, 100, 60)) 
     247                self.textLabelPuzzleboxSynapse_2.setTextFormat(QtCore.Qt.AutoText) 
     248                self.textLabelPuzzleboxSynapse_2.setWordWrap(False) 
     249                self.textLabelPuzzleboxSynapse_2.setOpenExternalLinks(True) 
     250                self.textLabelPuzzleboxSynapse_2.setObjectName("textLabelPuzzleboxSynapse_2") 
     251                self.lineHorizontalDivider_2 = QtGui.QFrame(self.tabControlPanel) 
     252                self.lineHorizontalDivider_2.setGeometry(QtCore.QRect(161, 0, 20, 381)) 
     253                self.lineHorizontalDivider_2.setFrameShape(QtGui.QFrame.VLine) 
     254                self.lineHorizontalDivider_2.setFrameShadow(QtGui.QFrame.Sunken) 
     255                self.lineHorizontalDivider_2.setObjectName("lineHorizontalDivider_2") 
     256                self.lineHorizontalTop_2 = QtGui.QFrame(self.tabControlPanel) 
     257                self.lineHorizontalTop_2.setGeometry(QtCore.QRect(0, 62, 161, 20)) 
     258                self.lineHorizontalTop_2.setFrameShape(QtGui.QFrame.HLine) 
     259                self.lineHorizontalTop_2.setFrameShadow(QtGui.QFrame.Sunken) 
     260                self.lineHorizontalTop_2.setObjectName("lineHorizontalTop_2") 
     261                self.labelPuzzleboxIcon_2 = QtGui.QLabel(self.tabControlPanel) 
     262                self.labelPuzzleboxIcon_2.setGeometry(QtCore.QRect(0, 2, 60, 60)) 
     263                self.labelPuzzleboxIcon_2.setText("") 
     264                self.labelPuzzleboxIcon_2.setPixmap(QtGui.QPixmap("images/puzzlebox_logo.png")) 
     265                self.labelPuzzleboxIcon_2.setScaledContents(False) 
     266                self.labelPuzzleboxIcon_2.setAlignment(QtCore.Qt.AlignCenter) 
     267                self.labelPuzzleboxIcon_2.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) 
     268                self.labelPuzzleboxIcon_2.setObjectName("labelPuzzleboxIcon_2") 
     269                self.lineHorizontalTop_3 = QtGui.QFrame(self.tabControlPanel) 
     270                self.lineHorizontalTop_3.setGeometry(QtCore.QRect(0, 250, 161, 20)) 
     271                self.lineHorizontalTop_3.setFrameShape(QtGui.QFrame.HLine) 
     272                self.lineHorizontalTop_3.setFrameShadow(QtGui.QFrame.Sunken) 
     273                self.lineHorizontalTop_3.setObjectName("lineHorizontalTop_3") 
     274                self.pushButtonSave = QtGui.QPushButton(self.tabControlPanel) 
     275                self.pushButtonSave.setGeometry(QtCore.QRect(43, 295, 77, 25)) 
     276                self.pushButtonSave.setObjectName("pushButtonSave") 
     277                self.pushButtonExport = QtGui.QPushButton(self.tabControlPanel) 
     278                self.pushButtonExport.setGeometry(QtCore.QRect(43, 325, 77, 25)) 
     279                self.pushButtonExport.setObjectName("pushButtonExport") 
     280                self.textLabelProfile = QtGui.QLabel(self.tabControlPanel) 
     281                self.textLabelProfile.setGeometry(QtCore.QRect(30, 80, 105, 21)) 
     282                self.textLabelProfile.setWordWrap(False) 
     283                self.textLabelProfile.setObjectName("textLabelProfile") 
     284                self.textLabelDataHistory = QtGui.QLabel(self.tabControlPanel) 
     285                self.textLabelDataHistory.setGeometry(QtCore.QRect(30, 270, 105, 21)) 
     286                self.textLabelDataHistory.setWordWrap(False) 
     287                self.textLabelDataHistory.setObjectName("textLabelDataHistory") 
     288                self.textLabelSessionTimeTitle = QtGui.QLabel(self.tabControlPanel) 
     289                self.textLabelSessionTimeTitle.setGeometry(QtCore.QRect(0, 135, 160, 20)) 
     290                self.textLabelSessionTimeTitle.setWordWrap(False) 
     291                self.textLabelSessionTimeTitle.setObjectName("textLabelSessionTimeTitle") 
     292                self.textLabelSessionTime = QtGui.QLabel(self.tabControlPanel) 
     293                self.textLabelSessionTime.setGeometry(QtCore.QRect(50, 155, 62, 20)) 
     294                self.textLabelSessionTime.setWordWrap(False) 
     295                self.textLabelSessionTime.setObjectName("textLabelSessionTime") 
     296                self.textLabelPacketsReceivedTitle = QtGui.QLabel(self.tabControlPanel) 
     297                self.textLabelPacketsReceivedTitle.setGeometry(QtCore.QRect(3, 175, 160, 20)) 
     298                self.textLabelPacketsReceivedTitle.setWordWrap(False) 
     299                self.textLabelPacketsReceivedTitle.setObjectName("textLabelPacketsReceivedTitle") 
     300                self.textLabelPacketsReceived = QtGui.QLabel(self.tabControlPanel) 
     301                self.textLabelPacketsReceived.setGeometry(QtCore.QRect(50, 195, 60, 20)) 
     302                self.textLabelPacketsReceived.setWordWrap(False) 
     303                self.textLabelPacketsReceived.setObjectName("textLabelPacketsReceived") 
     304                self.textLabelPacketsDroppedTitle = QtGui.QLabel(self.tabControlPanel) 
     305                self.textLabelPacketsDroppedTitle.setGeometry(QtCore.QRect(0, 215, 160, 20)) 
     306                self.textLabelPacketsDroppedTitle.setWordWrap(False) 
     307                self.textLabelPacketsDroppedTitle.setObjectName("textLabelPacketsDroppedTitle") 
     308                self.textLabelPacketsDropped = QtGui.QLabel(self.tabControlPanel) 
     309                self.textLabelPacketsDropped.setGeometry(QtCore.QRect(50, 235, 60, 20)) 
     310                self.textLabelPacketsDropped.setWordWrap(False) 
     311                self.textLabelPacketsDropped.setObjectName("textLabelPacketsDropped") 
     312                self.lineEditSessionProfile = QtGui.QLineEdit(self.tabControlPanel) 
     313                self.lineEditSessionProfile.setGeometry(QtCore.QRect(9, 105, 150, 25)) 
     314                self.lineEditSessionProfile.setAlignment(QtCore.Qt.AlignHCenter) 
     315                self.lineEditSessionProfile.setObjectName("lineEditSessionProfile") 
     316                self.tabWidget.addTab(self.tabControlPanel, "") 
    243317 
    244318                self.retranslateUi(Form) 
     
    379453"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" 
    380454"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
    381                 self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabDebugConsole), QtGui.QApplication.translate("Form", "Debug Console", None, QtGui.QApplication.UnicodeUTF8)) 
    382  
     455                self.pushButtonReset.setText(QtGui.QApplication.translate("Form", "Reset", None, QtGui.QApplication.UnicodeUTF8)) 
     456                self.textLabelPuzzleboxSynapse_2.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     457"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     458"p, li { white-space: pre-wrap; }\n" 
     459"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" 
     460"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><a href=\"http://brainstorms.puzzlebox.info\"><span style=\" font-size:11pt; text-decoration: none; color:#000000;\">Puzzlebox<br />Synapse</span></a></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     461                self.pushButtonSave.setText(QtGui.QApplication.translate("Form", "Save", None, QtGui.QApplication.UnicodeUTF8)) 
     462                self.pushButtonExport.setText(QtGui.QApplication.translate("Form", "Export", None, QtGui.QApplication.UnicodeUTF8)) 
     463                self.textLabelProfile.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     464"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     465"p, li { white-space: pre-wrap; }\n" 
     466"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" 
     467"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Sans\'; font-size:10pt; font-weight:600;\">Profile</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     468                self.textLabelDataHistory.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     469"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     470"p, li { white-space: pre-wrap; }\n" 
     471"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" 
     472"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Sans\'; font-size:10pt; font-weight:600;\">Data History</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     473                self.textLabelSessionTimeTitle.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     474"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     475"p, li { white-space: pre-wrap; }\n" 
     476"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" 
     477"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Sans\'; font-size:10pt; font-weight:600;\">Session Time</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     478                self.textLabelSessionTime.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     479"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     480"p, li { white-space: pre-wrap; }\n" 
     481"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" 
     482"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Sans\'; font-size:9pt;\">00:00:00</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     483                self.textLabelPacketsReceivedTitle.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     484"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     485"p, li { white-space: pre-wrap; }\n" 
     486"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" 
     487"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Packets Received</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     488                self.textLabelPacketsReceived.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     489"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     490"p, li { white-space: pre-wrap; }\n" 
     491"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" 
     492"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Sans\'; font-size:9pt;\">0</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     493                self.textLabelPacketsDroppedTitle.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     494"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     495"p, li { white-space: pre-wrap; }\n" 
     496"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" 
     497"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">Packets Dropped</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     498                self.textLabelPacketsDropped.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
     499"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     500"p, li { white-space: pre-wrap; }\n" 
     501"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n" 
     502"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Sans\'; font-size:9pt;\">0</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     503                self.lineEditSessionProfile.setText(QtGui.QApplication.translate("Form", "Untitled Session", None, QtGui.QApplication.UnicodeUTF8)) 
     504                self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabControlPanel), QtGui.QApplication.translate("Form", "Control Panel", None, QtGui.QApplication.UnicodeUTF8)) 
     505 
  • trunk/synapse/Puzzlebox/Synapse/Protocol.py

    r191 r192  
    6767 
    6868### IMPORTS ### 
    69 import sys 
     69import sys, time 
    7070import signal 
    7171import serial 
     
    143143                self.data_packet['eSense'] = {} 
    144144                 
     145                self.packet_count = 0 
    145146                self.bad_packets = 0 
     147                self.session_start_time = None 
    146148                 
    147149                self.keep_running = True 
     
    402404                packet_update = {} 
    403405                 
     406                self.packet_count += 1 
     407                 
    404408                if extended_code_level == 0: 
    405409                         
     
    444448                         
    445449                        elif code == '80': 
     450                                #self.packet_count -= 1 # We don't count raw EEG packets for Interface 
    446451                                raw_wave_value = data_values 
    447452                                if self.DEBUG > 3: 
     
    472477                         
    473478                        else: 
     479                                self.bad_packets += 1 
    474480                                if self.DEBUG: 
    475481                                        print "ERROR: data payload row code not matched" 
     
    644650                        # Verify [CKSUM] byte against calculated [PAYLOAD...] checksum 
    645651                        if packet_checksum != payload_checksum: 
     652                                self.bad_packets += 1 
    646653                                if self.DEBUG > 1: 
    647654                                        print "ERROR: packet checksum does not match" 
     
    702709        def run(self): 
    703710                 
     711                self.packet_count = 0 
    704712                self.bad_packets = 0 
     713                self.session_start_timestamp = time.time() 
    705714                 
    706715                self.parseStream() 
  • trunk/synapse/interface/puzzlebox_synapse_interface_design.ui

    r190 r192  
    852852    </attribute> 
    853853   </widget> 
    854    <widget class="QWidget" name="tabDebugConsole"> 
     854   <widget class="QWidget" name="tabControlPanel"> 
    855855    <attribute name="title"> 
    856856     <string>Control Panel</string> 
     
    878878&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; 
    879879p, li { white-space: pre-wrap; } 
    880 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; 
    881 &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     880&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; 
     881&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    882882     </property> 
    883883    </widget> 
     
    886886      <rect> 
    887887       <x>43</x> 
    888        <y>365</y> 
     888       <y>355</y> 
    889889       <width>77</width> 
    890890       <height>25</height> 
     
    982982      <rect> 
    983983       <x>0</x> 
    984        <y>260</y> 
     984       <y>250</y> 
    985985       <width>161</width> 
    986986       <height>20</height> 
     
    998998      <rect> 
    999999       <x>43</x> 
    1000        <y>305</y> 
     1000       <y>295</y> 
    10011001       <width>77</width> 
    10021002       <height>25</height> 
     
    10111011      <rect> 
    10121012       <x>43</x> 
    1013        <y>335</y> 
     1013       <y>325</y> 
    10141014       <width>77</width> 
    10151015       <height>25</height> 
     
    10401040     </property> 
    10411041    </widget> 
    1042     <widget class="QLabel" name="textLabeDataHistory"> 
     1042    <widget class="QLabel" name="textLabelDataHistory"> 
    10431043     <property name="geometry"> 
    10441044      <rect> 
    10451045       <x>30</x> 
    1046        <y>280</y> 
     1046       <y>270</y> 
    10471047       <width>105</width> 
    10481048       <height>21</height> 
     
    10641064      <rect> 
    10651065       <x>0</x> 
    1066        <y>145</y> 
     1066       <y>135</y> 
    10671067       <width>160</width> 
    10681068       <height>20</height> 
     
    10841084      <rect> 
    10851085       <x>50</x> 
    1086        <y>165</y> 
     1086       <y>155</y> 
    10871087       <width>62</width> 
    10881088       <height>20</height> 
     
    11001100     </property> 
    11011101    </widget> 
    1102     <widget class="QLabel" name="textLabelBrainSignalPacketsTitle"> 
    1103      <property name="geometry"> 
    1104       <rect> 
    1105        <x>0</x> 
    1106        <y>185</y> 
     1102    <widget class="QLabel" name="textLabelPacketsReceivedTitle"> 
     1103     <property name="geometry"> 
     1104      <rect> 
     1105       <x>3</x> 
     1106       <y>175</y> 
    11071107       <width>160</width> 
    11081108       <height>20</height> 
     
    11131113&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; 
    11141114p, li { white-space: pre-wrap; } 
    1115 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; 
    1116 &lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Sans'; font-size:10pt; font-weight:600;&quot;&gt;Brain Signal Packets&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    1117      </property> 
    1118      <property name="wordWrap"> 
    1119       <bool>false</bool> 
    1120      </property> 
    1121     </widget> 
    1122     <widget class="QLabel" name="textLabelBrainSignalPackets"> 
     1115&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; 
     1116&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Packets Received&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     1117     </property> 
     1118     <property name="wordWrap"> 
     1119      <bool>false</bool> 
     1120     </property> 
     1121    </widget> 
     1122    <widget class="QLabel" name="textLabelPacketsReceived"> 
    11231123     <property name="geometry"> 
    11241124      <rect> 
    11251125       <x>50</x> 
    1126        <y>205</y> 
     1126       <y>195</y> 
    11271127       <width>60</width> 
    11281128       <height>20</height> 
     
    11401140     </property> 
    11411141    </widget> 
    1142     <widget class="QLabel" name="textLabeDroppedPacketsTitle"> 
     1142    <widget class="QLabel" name="textLabelPacketsDroppedTitle"> 
    11431143     <property name="geometry"> 
    11441144      <rect> 
    11451145       <x>0</x> 
    1146        <y>225</y> 
     1146       <y>215</y> 
    11471147       <width>160</width> 
    11481148       <height>20</height> 
     
    11531153&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; 
    11541154p, li { white-space: pre-wrap; } 
    1155 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; 
    1156 &lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Sans'; font-size:10pt; font-weight:600;&quot;&gt;Dropped Packets&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    1157      </property> 
    1158      <property name="wordWrap"> 
    1159       <bool>false</bool> 
    1160      </property> 
    1161     </widget> 
    1162     <widget class="QLabel" name="textLabelDroppedPackets"> 
     1155&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; 
     1156&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Packets Dropped&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     1157     </property> 
     1158     <property name="wordWrap"> 
     1159      <bool>false</bool> 
     1160     </property> 
     1161    </widget> 
     1162    <widget class="QLabel" name="textLabelPacketsDropped"> 
    11631163     <property name="geometry"> 
    11641164      <rect> 
    11651165       <x>50</x> 
    1166        <y>245</y> 
     1166       <y>235</y> 
    11671167       <width>60</width> 
    11681168       <height>20</height> 
Note: See TracChangeset for help on using the changeset viewer.