del file
This commit is contained in:
parent
2c318b6d49
commit
427fdf4739
@ -1,586 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'F:/GUO/test/qss/Client_Ui.ui'
|
|
||||||
#
|
|
||||||
# Created by: PyQt4 UI code generator 4.11.4
|
|
||||||
#
|
|
||||||
# WARNING! All changes made in this file will be lost!
|
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
|
||||||
|
|
||||||
try:
|
|
||||||
_fromUtf8 = QtCore.QString.fromUtf8
|
|
||||||
except AttributeError:
|
|
||||||
def _fromUtf8(s):
|
|
||||||
return s
|
|
||||||
|
|
||||||
try:
|
|
||||||
_encoding = QtGui.QApplication.UnicodeUTF8
|
|
||||||
def _translate(context, text, disambig):
|
|
||||||
return QtGui.QApplication.translate(context, text, disambig, _encoding)
|
|
||||||
except AttributeError:
|
|
||||||
def _translate(context, text, disambig):
|
|
||||||
return QtGui.QApplication.translate(context, text, disambig)
|
|
||||||
|
|
||||||
class Ui_Client(object):
|
|
||||||
def setupUi(self, Client):
|
|
||||||
Client.setObjectName(_fromUtf8("Client"))
|
|
||||||
Client.resize(760, 610)
|
|
||||||
palette = QtGui.QPalette()
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
|
|
||||||
brush = QtGui.QBrush(QtGui.QColor(72, 72, 72))
|
|
||||||
brush.setStyle(QtCore.Qt.SolidPattern)
|
|
||||||
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
|
|
||||||
Client.setPalette(palette)
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(14)
|
|
||||||
Client.setFont(font)
|
|
||||||
Client.setStyleSheet(_fromUtf8("QWidget{\n"
|
|
||||||
"background:#484848;\n"
|
|
||||||
"}\n"
|
|
||||||
"QAbstractButton{\n"
|
|
||||||
"border-style:none;\n"
|
|
||||||
"border-radius:0px;\n"
|
|
||||||
"padding:5px;\n"
|
|
||||||
"color:#DCDCDC;\n"
|
|
||||||
"background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838);\n"
|
|
||||||
"}\n"
|
|
||||||
"QAbstractButton:hover{\n"
|
|
||||||
"color:#FFFFFF;\n"
|
|
||||||
"background-color:#00BB9E;\n"
|
|
||||||
"}\n"
|
|
||||||
"QAbstractButton:pressed{\n"
|
|
||||||
"color:#DCDCDC;\n"
|
|
||||||
"border-style:solid;\n"
|
|
||||||
"border-width:0px 0px 0px 2px;\n"
|
|
||||||
"padding:4px 4px 4px 2px;\n"
|
|
||||||
"border-color:#00BB9E;\n"
|
|
||||||
"background-color:#444444;\n"
|
|
||||||
"}\n"
|
|
||||||
"QLabel{\n"
|
|
||||||
"color:#DCDCDC;\n"
|
|
||||||
"border:1px solid #242424;\n"
|
|
||||||
"background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #484848,stop:1 #383838);\n"
|
|
||||||
"}\n"
|
|
||||||
"QLabel:focus{\n"
|
|
||||||
"border:1px solid #00BB9E;\n"
|
|
||||||
"background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252);\n"
|
|
||||||
"}\n"
|
|
||||||
"QLineEdit{\n"
|
|
||||||
"border:1px solid #242424;\n"
|
|
||||||
"border-radius:3px;\n"
|
|
||||||
"padding:2px;\n"
|
|
||||||
"background:none;\n"
|
|
||||||
"selection-background-color:#484848;\n"
|
|
||||||
"selection-color:#DCDCDC;\n"
|
|
||||||
"}\n"
|
|
||||||
"QLineEdit:focus,QLineEdit:hover{\n"
|
|
||||||
"border:1px solid #242424;\n"
|
|
||||||
"}\n"
|
|
||||||
"QLineEdit{\n"
|
|
||||||
"border:1px solid #242424;\n"
|
|
||||||
"border-radius:3px;\n"
|
|
||||||
"padding:2px;\n"
|
|
||||||
"background:none;\n"
|
|
||||||
"selection-background-color:#484848;\n"
|
|
||||||
"selection-color:#DCDCDC;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"QLineEdit:focus,QLineEdit:hover{\n"
|
|
||||||
"border:1px solid #242424;\n"
|
|
||||||
"}\n"
|
|
||||||
"QLineEdit{\n"
|
|
||||||
"lineedit-password-character:9679;\n"
|
|
||||||
"}\n"
|
|
||||||
"QSlider::groove:horizontal,QSlider::add-page:horizontal{\n"
|
|
||||||
"height:3px;\n"
|
|
||||||
"border-radius:3px;\n"
|
|
||||||
"background:#18181a;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"\n"
|
|
||||||
"QSlider::sub-page:horizontal{\n"
|
|
||||||
"height:8px;\n"
|
|
||||||
"border-radius:3px;\n"
|
|
||||||
"background:#008aff;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"\n"
|
|
||||||
"QSlider::handle:horizontal{\n"
|
|
||||||
"width:12px;\n"
|
|
||||||
"margin-top:-5px;\n"
|
|
||||||
"margin-bottom:-4px;\n"
|
|
||||||
"border-radius:6px;\n"
|
|
||||||
"background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #565656,stop:0.8 #565656);\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"\n"
|
|
||||||
"QSlider::groove:vertical,QSlider::sub-page:vertical{\n"
|
|
||||||
"width:3px;\n"
|
|
||||||
"border-radius:3px;\n"
|
|
||||||
"background:#18181a;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"\n"
|
|
||||||
"QSlider::add-page:vertical{\n"
|
|
||||||
"width:8px;\n"
|
|
||||||
"border-radius:3px;\n"
|
|
||||||
"background:#008aff;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"\n"
|
|
||||||
"QSlider::handle:vertical{\n"
|
|
||||||
"height:12px;\n"
|
|
||||||
"margin-left:-5px;\n"
|
|
||||||
"margin-right:-4px;\n"
|
|
||||||
"border-radius:6px;\n"
|
|
||||||
"background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #565656,stop:0.8 #565656);\n"
|
|
||||||
"}\n"
|
|
||||||
""))
|
|
||||||
self.Btn_ForWard = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_ForWard.setGeometry(QtCore.QRect(120, 450, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_ForWard.setFont(font)
|
|
||||||
self.Btn_ForWard.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_ForWard.setObjectName(_fromUtf8("Btn_ForWard"))
|
|
||||||
self.name = QtGui.QLabel(Client)
|
|
||||||
self.name.setGeometry(QtCore.QRect(0, 1, 660, 40))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(28)
|
|
||||||
font.setBold(True)
|
|
||||||
font.setWeight(75)
|
|
||||||
self.name.setFont(font)
|
|
||||||
self.name.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.name.setObjectName(_fromUtf8("name"))
|
|
||||||
self.Btn_Turn_Left = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Turn_Left.setGeometry(QtCore.QRect(10, 500, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Turn_Left.setFont(font)
|
|
||||||
self.Btn_Turn_Left.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Turn_Left.setObjectName(_fromUtf8("Btn_Turn_Left"))
|
|
||||||
self.Btn_BackWard = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_BackWard.setGeometry(QtCore.QRect(120, 550, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_BackWard.setFont(font)
|
|
||||||
self.Btn_BackWard.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_BackWard.setObjectName(_fromUtf8("Btn_BackWard"))
|
|
||||||
self.Btn_Turn_Right = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Turn_Right.setGeometry(QtCore.QRect(240, 500, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Turn_Right.setFont(font)
|
|
||||||
self.Btn_Turn_Right.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Turn_Right.setObjectName(_fromUtf8("Btn_Turn_Right"))
|
|
||||||
self.Btn_Video = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Video.setGeometry(QtCore.QRect(240, 380, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Video.setFont(font)
|
|
||||||
self.Btn_Video.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Video.setObjectName(_fromUtf8("Btn_Video"))
|
|
||||||
self.label_Video = QtGui.QLabel(Client)
|
|
||||||
self.label_Video.setGeometry(QtCore.QRect(1, 42, 400, 300))
|
|
||||||
self.label_Video.setText(_fromUtf8(""))
|
|
||||||
self.label_Video.setObjectName(_fromUtf8("label_Video"))
|
|
||||||
self.Btn_Down = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Down.setGeometry(QtCore.QRect(510, 480, 75, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Down.setFont(font)
|
|
||||||
self.Btn_Down.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Down.setObjectName(_fromUtf8("Btn_Down"))
|
|
||||||
self.Btn_Left = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Left.setGeometry(QtCore.QRect(440, 450, 75, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Left.setFont(font)
|
|
||||||
self.Btn_Left.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Left.setObjectName(_fromUtf8("Btn_Left"))
|
|
||||||
self.Btn_Home = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Home.setGeometry(QtCore.QRect(510, 450, 75, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Home.setFont(font)
|
|
||||||
self.Btn_Home.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Home.setObjectName(_fromUtf8("Btn_Home"))
|
|
||||||
self.Btn_Up = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Up.setGeometry(QtCore.QRect(510, 420, 75, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Up.setFont(font)
|
|
||||||
self.Btn_Up.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Up.setObjectName(_fromUtf8("Btn_Up"))
|
|
||||||
self.Btn_Right = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Right.setGeometry(QtCore.QRect(580, 450, 75, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Right.setFont(font)
|
|
||||||
self.Btn_Right.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.Btn_Right.setObjectName(_fromUtf8("Btn_Right"))
|
|
||||||
self.Window_Close = QtGui.QPushButton(Client)
|
|
||||||
self.Window_Close.setGeometry(QtCore.QRect(710, 1, 50, 40))
|
|
||||||
self.Window_Close.setObjectName(_fromUtf8("Window_Close"))
|
|
||||||
self.IP = QtGui.QLineEdit(Client)
|
|
||||||
self.IP.setGeometry(QtCore.QRect(10, 380, 101, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.IP.setFont(font)
|
|
||||||
self.IP.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.IP.setObjectName(_fromUtf8("IP"))
|
|
||||||
self.Btn_Connect = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Connect.setGeometry(QtCore.QRect(120, 380, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Connect.setFont(font)
|
|
||||||
self.Btn_Connect.setObjectName(_fromUtf8("Btn_Connect"))
|
|
||||||
self.checkBox_Led1 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led1.setGeometry(QtCore.QRect(420, 120, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led1.setFont(font)
|
|
||||||
self.checkBox_Led1.setObjectName(_fromUtf8("checkBox_Led1"))
|
|
||||||
self.label_Servo2 = QtGui.QLabel(Client)
|
|
||||||
self.label_Servo2.setGeometry(QtCore.QRect(710, 460, 41, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(14)
|
|
||||||
self.label_Servo2.setFont(font)
|
|
||||||
self.label_Servo2.setObjectName(_fromUtf8("label_Servo2"))
|
|
||||||
self.checkBox_Led2 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led2.setGeometry(QtCore.QRect(420, 170, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led2.setFont(font)
|
|
||||||
self.checkBox_Led2.setObjectName(_fromUtf8("checkBox_Led2"))
|
|
||||||
self.checkBox_Led3 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led3.setGeometry(QtCore.QRect(420, 220, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led3.setFont(font)
|
|
||||||
self.checkBox_Led3.setObjectName(_fromUtf8("checkBox_Led3"))
|
|
||||||
self.checkBox_Led4 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led4.setGeometry(QtCore.QRect(420, 270, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led4.setFont(font)
|
|
||||||
self.checkBox_Led4.setObjectName(_fromUtf8("checkBox_Led4"))
|
|
||||||
self.checkBox_Led5 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led5.setGeometry(QtCore.QRect(530, 120, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led5.setFont(font)
|
|
||||||
self.checkBox_Led5.setObjectName(_fromUtf8("checkBox_Led5"))
|
|
||||||
self.checkBox_Led6 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led6.setGeometry(QtCore.QRect(530, 170, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led6.setFont(font)
|
|
||||||
self.checkBox_Led6.setObjectName(_fromUtf8("checkBox_Led6"))
|
|
||||||
self.checkBox_Led7 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led7.setGeometry(QtCore.QRect(530, 220, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led7.setFont(font)
|
|
||||||
self.checkBox_Led7.setObjectName(_fromUtf8("checkBox_Led7"))
|
|
||||||
self.checkBox_Led8 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led8.setGeometry(QtCore.QRect(530, 270, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led8.setFont(font)
|
|
||||||
self.checkBox_Led8.setObjectName(_fromUtf8("checkBox_Led8"))
|
|
||||||
self.HSlider_Servo1 = QtGui.QSlider(Client)
|
|
||||||
self.HSlider_Servo1.setGeometry(QtCore.QRect(470, 530, 160, 22))
|
|
||||||
self.HSlider_Servo1.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.HSlider_Servo1.setOrientation(QtCore.Qt.Horizontal)
|
|
||||||
self.HSlider_Servo1.setObjectName(_fromUtf8("HSlider_Servo1"))
|
|
||||||
self.VSlider_Servo2 = QtGui.QSlider(Client)
|
|
||||||
self.VSlider_Servo2.setGeometry(QtCore.QRect(680, 400, 22, 160))
|
|
||||||
self.VSlider_Servo2.setStyleSheet(_fromUtf8(""))
|
|
||||||
self.VSlider_Servo2.setOrientation(QtCore.Qt.Vertical)
|
|
||||||
self.VSlider_Servo2.setObjectName(_fromUtf8("VSlider_Servo2"))
|
|
||||||
self.label_Servo1 = QtGui.QLabel(Client)
|
|
||||||
self.label_Servo1.setGeometry(QtCore.QRect(530, 560, 41, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(14)
|
|
||||||
self.label_Servo1.setFont(font)
|
|
||||||
self.label_Servo1.setObjectName(_fromUtf8("label_Servo1"))
|
|
||||||
self.checkBox_Led_Mode2 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led_Mode2.setGeometry(QtCore.QRect(640, 170, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led_Mode2.setFont(font)
|
|
||||||
self.checkBox_Led_Mode2.setObjectName(_fromUtf8("checkBox_Led_Mode2"))
|
|
||||||
self.checkBox_Led_Mode3 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led_Mode3.setGeometry(QtCore.QRect(640, 220, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led_Mode3.setFont(font)
|
|
||||||
self.checkBox_Led_Mode3.setObjectName(_fromUtf8("checkBox_Led_Mode3"))
|
|
||||||
self.checkBox_Led_Mode4 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led_Mode4.setGeometry(QtCore.QRect(640, 270, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led_Mode4.setFont(font)
|
|
||||||
self.checkBox_Led_Mode4.setObjectName(_fromUtf8("checkBox_Led_Mode4"))
|
|
||||||
self.checkBox_Led_Mode1 = QtGui.QCheckBox(Client)
|
|
||||||
self.checkBox_Led_Mode1.setGeometry(QtCore.QRect(640, 120, 91, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.checkBox_Led_Mode1.setFont(font)
|
|
||||||
self.checkBox_Led_Mode1.setObjectName(_fromUtf8("checkBox_Led_Mode1"))
|
|
||||||
self.Color_R = QtGui.QLineEdit(Client)
|
|
||||||
self.Color_R.setGeometry(QtCore.QRect(560, 90, 30, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Color_R.setFont(font)
|
|
||||||
self.Color_R.setObjectName(_fromUtf8("Color_R"))
|
|
||||||
self.Color_G = QtGui.QLineEdit(Client)
|
|
||||||
self.Color_G.setGeometry(QtCore.QRect(630, 90, 30, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Color_G.setFont(font)
|
|
||||||
self.Color_G.setObjectName(_fromUtf8("Color_G"))
|
|
||||||
self.Color_B = QtGui.QLineEdit(Client)
|
|
||||||
self.Color_B.setGeometry(QtCore.QRect(700, 90, 30, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Color_B.setFont(font)
|
|
||||||
self.Color_B.setObjectName(_fromUtf8("Color_B"))
|
|
||||||
self.HSlider_FineServo2 = QtGui.QSlider(Client)
|
|
||||||
self.HSlider_FineServo2.setGeometry(QtCore.QRect(480, 370, 160, 22))
|
|
||||||
self.HSlider_FineServo2.setOrientation(QtCore.Qt.Horizontal)
|
|
||||||
self.HSlider_FineServo2.setObjectName(_fromUtf8("HSlider_FineServo2"))
|
|
||||||
self.HSlider_FineServo1 = QtGui.QSlider(Client)
|
|
||||||
self.HSlider_FineServo1.setGeometry(QtCore.QRect(480, 320, 160, 22))
|
|
||||||
self.HSlider_FineServo1.setOrientation(QtCore.Qt.Horizontal)
|
|
||||||
self.HSlider_FineServo1.setObjectName(_fromUtf8("HSlider_FineServo1"))
|
|
||||||
self.label_FineServo1 = QtGui.QLabel(Client)
|
|
||||||
self.label_FineServo1.setGeometry(QtCore.QRect(650, 320, 41, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(14)
|
|
||||||
self.label_FineServo1.setFont(font)
|
|
||||||
self.label_FineServo1.setObjectName(_fromUtf8("label_FineServo1"))
|
|
||||||
self.label_FineServo2 = QtGui.QLabel(Client)
|
|
||||||
self.label_FineServo2.setGeometry(QtCore.QRect(650, 360, 41, 31))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(14)
|
|
||||||
self.label_FineServo2.setFont(font)
|
|
||||||
self.label_FineServo2.setObjectName(_fromUtf8("label_FineServo2"))
|
|
||||||
self.Window_Min = QtGui.QPushButton(Client)
|
|
||||||
self.Window_Min.setGeometry(QtCore.QRect(660, 1, 50, 40))
|
|
||||||
self.Window_Min.setObjectName(_fromUtf8("Window_Min"))
|
|
||||||
self.R = QtGui.QLabel(Client)
|
|
||||||
self.R.setGeometry(QtCore.QRect(530, 90, 16, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.R.setFont(font)
|
|
||||||
self.R.setObjectName(_fromUtf8("R"))
|
|
||||||
self.G = QtGui.QLabel(Client)
|
|
||||||
self.G.setGeometry(QtCore.QRect(600, 90, 16, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.G.setFont(font)
|
|
||||||
self.G.setObjectName(_fromUtf8("G"))
|
|
||||||
self.B = QtGui.QLabel(Client)
|
|
||||||
self.B.setGeometry(QtCore.QRect(670, 90, 16, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.B.setFont(font)
|
|
||||||
self.B.setObjectName(_fromUtf8("B"))
|
|
||||||
self.Led_Module = QtGui.QLabel(Client)
|
|
||||||
self.Led_Module.setGeometry(QtCore.QRect(410, 90, 111, 25))
|
|
||||||
self.Led_Module.setObjectName(_fromUtf8("Led_Module"))
|
|
||||||
self.Servo1 = QtGui.QLabel(Client)
|
|
||||||
self.Servo1.setGeometry(QtCore.QRect(420, 320, 54, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Servo1.setFont(font)
|
|
||||||
self.Servo1.setObjectName(_fromUtf8("Servo1"))
|
|
||||||
self.Servo2 = QtGui.QLabel(Client)
|
|
||||||
self.Servo2.setGeometry(QtCore.QRect(420, 370, 54, 20))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Servo2.setFont(font)
|
|
||||||
self.Servo2.setObjectName(_fromUtf8("Servo2"))
|
|
||||||
self.progress_Power = QtGui.QProgressBar(Client)
|
|
||||||
self.progress_Power.setGeometry(QtCore.QRect(20, 550, 70, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.progress_Power.setFont(font)
|
|
||||||
self.progress_Power.setStyleSheet(_fromUtf8("QProgressBar {\n"
|
|
||||||
"border: 2px solid grey;\n"
|
|
||||||
"border-radius: 5px;\n"
|
|
||||||
"background-color: #FFFFFF;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"QProgressBar::chunk {\n"
|
|
||||||
"background-color:#696969;\n"
|
|
||||||
"width: 20px;\n"
|
|
||||||
"}\n"
|
|
||||||
"\n"
|
|
||||||
"QProgressBar {\n"
|
|
||||||
"text-align: center; \n"
|
|
||||||
"color: rgb(152,251,152);\n"
|
|
||||||
"}\n"
|
|
||||||
""))
|
|
||||||
self.progress_Power.setProperty("value", 0)
|
|
||||||
self.progress_Power.setObjectName(_fromUtf8("progress_Power"))
|
|
||||||
self.Btn_Buzzer = QtGui.QPushButton(Client)
|
|
||||||
self.Btn_Buzzer.setGeometry(QtCore.QRect(120, 500, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Buzzer.setFont(font)
|
|
||||||
self.Btn_Buzzer.setObjectName(_fromUtf8("Btn_Buzzer"))
|
|
||||||
self.Ultrasonic = QtGui.QPushButton(Client)
|
|
||||||
self.Ultrasonic.setGeometry(QtCore.QRect(401, 41, 180, 30))
|
|
||||||
self.Ultrasonic.setObjectName(_fromUtf8("Ultrasonic"))
|
|
||||||
self.Light = QtGui.QPushButton(Client)
|
|
||||||
self.Light.setGeometry(QtCore.QRect(581, 41, 179, 30))
|
|
||||||
self.Light.setObjectName(_fromUtf8("Light"))
|
|
||||||
self.Btn_Mode1 = QtGui.QRadioButton(Client)
|
|
||||||
self.Btn_Mode1.setGeometry(QtCore.QRect(340, 400, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Mode1.setFont(font)
|
|
||||||
self.Btn_Mode1.setObjectName(_fromUtf8("Btn_Mode1"))
|
|
||||||
self.Btn_Mode2 = QtGui.QRadioButton(Client)
|
|
||||||
self.Btn_Mode2.setGeometry(QtCore.QRect(340, 450, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Mode2.setFont(font)
|
|
||||||
self.Btn_Mode2.setObjectName(_fromUtf8("Btn_Mode2"))
|
|
||||||
self.Btn_Mode3 = QtGui.QRadioButton(Client)
|
|
||||||
self.Btn_Mode3.setGeometry(QtCore.QRect(340, 500, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Mode3.setFont(font)
|
|
||||||
self.Btn_Mode3.setObjectName(_fromUtf8("Btn_Mode3"))
|
|
||||||
self.Btn_Mode4 = QtGui.QRadioButton(Client)
|
|
||||||
self.Btn_Mode4.setGeometry(QtCore.QRect(340, 550, 90, 30))
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setFamily(_fromUtf8("3ds"))
|
|
||||||
font.setPointSize(10)
|
|
||||||
self.Btn_Mode4.setFont(font)
|
|
||||||
self.Btn_Mode4.setObjectName(_fromUtf8("Btn_Mode4"))
|
|
||||||
|
|
||||||
self.retranslateUi(Client)
|
|
||||||
QtCore.QMetaObject.connectSlotsByName(Client)
|
|
||||||
|
|
||||||
def retranslateUi(self, Client):
|
|
||||||
Client.setWindowTitle(_translate("Client", "freenove", None))
|
|
||||||
self.Btn_ForWard.setText(_translate("Client", "ForWard", None))
|
|
||||||
self.name.setText(_translate("Client", "Freenove", None))
|
|
||||||
self.Btn_Turn_Left.setText(_translate("Client", "Turn Left", None))
|
|
||||||
self.Btn_BackWard.setText(_translate("Client", "BackWard", None))
|
|
||||||
self.Btn_Turn_Right.setText(_translate("Client", "Turn Right", None))
|
|
||||||
self.Btn_Video.setText(_translate("Client", "Open Video", None))
|
|
||||||
self.Btn_Down.setText(_translate("Client", "Down", None))
|
|
||||||
self.Btn_Left.setText(_translate("Client", "Left", None))
|
|
||||||
self.Btn_Home.setText(_translate("Client", "Home", None))
|
|
||||||
self.Btn_Up.setText(_translate("Client", "Up", None))
|
|
||||||
self.Btn_Right.setText(_translate("Client", "Right", None))
|
|
||||||
self.Window_Close.setText(_translate("Client", "×", None))
|
|
||||||
self.IP.setText(_translate("Client", "IP Address", None))
|
|
||||||
self.Btn_Connect.setText(_translate("Client", "Connect", None))
|
|
||||||
self.checkBox_Led1.setText(_translate("Client", "Led1", None))
|
|
||||||
self.label_Servo2.setText(_translate("Client", "0", None))
|
|
||||||
self.checkBox_Led2.setText(_translate("Client", "Led2", None))
|
|
||||||
self.checkBox_Led3.setText(_translate("Client", "Led3", None))
|
|
||||||
self.checkBox_Led4.setText(_translate("Client", "Led4", None))
|
|
||||||
self.checkBox_Led5.setText(_translate("Client", "Led5", None))
|
|
||||||
self.checkBox_Led6.setText(_translate("Client", "Led6", None))
|
|
||||||
self.checkBox_Led7.setText(_translate("Client", "Led7", None))
|
|
||||||
self.checkBox_Led8.setText(_translate("Client", "Led8", None))
|
|
||||||
self.label_Servo1.setText(_translate("Client", "90", None))
|
|
||||||
self.checkBox_Led_Mode2.setText(_translate("Client", "Led_Mode2", None))
|
|
||||||
self.checkBox_Led_Mode3.setText(_translate("Client", "Led_Mode3", None))
|
|
||||||
self.checkBox_Led_Mode4.setText(_translate("Client", "Led_Mode4", None))
|
|
||||||
self.checkBox_Led_Mode1.setText(_translate("Client", "Led_Mode1", None))
|
|
||||||
self.Color_R.setText(_translate("Client", "255", None))
|
|
||||||
self.Color_G.setText(_translate("Client", "0", None))
|
|
||||||
self.Color_B.setText(_translate("Client", "0", None))
|
|
||||||
self.label_FineServo1.setText(_translate("Client", "0", None))
|
|
||||||
self.label_FineServo2.setText(_translate("Client", "0", None))
|
|
||||||
self.Window_Min.setText(_translate("Client", "-", None))
|
|
||||||
self.R.setText(_translate("Client", "R", None))
|
|
||||||
self.G.setText(_translate("Client", "G", None))
|
|
||||||
self.B.setText(_translate("Client", "B", None))
|
|
||||||
self.Led_Module.setText(_translate("Client", "Led Module", None))
|
|
||||||
self.Servo1.setText(_translate("Client", "Servo 1", None))
|
|
||||||
self.Servo2.setText(_translate("Client", "Servo 2", None))
|
|
||||||
self.Btn_Buzzer.setText(_translate("Client", "Buzzer", None))
|
|
||||||
self.Ultrasonic.setText(_translate("Client", "Ultrasonic", None))
|
|
||||||
self.Light.setText(_translate("Client", "Light", None))
|
|
||||||
self.Btn_Mode1.setText(_translate("Client", "M-Free", None))
|
|
||||||
self.Btn_Mode2.setText(_translate("Client", "M-Light", None))
|
|
||||||
self.Btn_Mode3.setText(_translate("Client", "M-Sonic", None))
|
|
||||||
self.Btn_Mode4.setText(_translate("Client", "M-Line", None))
|
|
||||||
|
|
@ -1,653 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import numpy as np
|
|
||||||
import cv2
|
|
||||||
import socket
|
|
||||||
import os
|
|
||||||
import io
|
|
||||||
import time
|
|
||||||
import imghdr
|
|
||||||
import sys
|
|
||||||
from threading import Timer
|
|
||||||
from threading import Thread
|
|
||||||
from PIL import Image
|
|
||||||
from Command import COMMAND as cmd
|
|
||||||
from Thread import *
|
|
||||||
from Client_Ui import Ui_Client
|
|
||||||
from Video import *
|
|
||||||
from PyQt4.QtCore import *
|
|
||||||
from PyQt4 import QtGui, QtCore
|
|
||||||
from PyQt4.QtGui import *
|
|
||||||
from PyQt4.QtCore import pyqtSignature
|
|
||||||
from PyQt4.QtGui import (QApplication, QMainWindow, QGraphicsScene)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class mywindow(QMainWindow,Ui_Client):
|
|
||||||
def __init__(self):
|
|
||||||
global timer
|
|
||||||
super(mywindow,self).__init__()
|
|
||||||
self.setupUi(self)
|
|
||||||
self.h=self.IP.text()
|
|
||||||
self.TCP=VideoStreaming()
|
|
||||||
self.servo1=90
|
|
||||||
self.servo2=20
|
|
||||||
self.label_FineServo2.setText("0")
|
|
||||||
self.label_FineServo1.setText("0")
|
|
||||||
self.m_DragPosition=self.pos()
|
|
||||||
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
|
|
||||||
self.setMouseTracking(True)
|
|
||||||
self.Key_W=False
|
|
||||||
self.Key_A=False
|
|
||||||
self.Key_S=False
|
|
||||||
self.Key_D=False
|
|
||||||
self.Key_Space=False
|
|
||||||
|
|
||||||
self.setFocusPolicy(Qt.StrongFocus)
|
|
||||||
|
|
||||||
self.progress_Power.setMinimum(0)
|
|
||||||
self.progress_Power.setMaximum(100)
|
|
||||||
|
|
||||||
self.name.setAlignment(QtCore.Qt.AlignCenter)
|
|
||||||
self.label_Servo1.setText('90')
|
|
||||||
self.label_Servo2.setText('20')
|
|
||||||
self.label_Video.setAlignment(QtCore.Qt.AlignCenter|QtCore.Qt.AlignVCenter)
|
|
||||||
self.label_Servo1.setAlignment(QtCore.Qt.AlignCenter|QtCore.Qt.AlignVCenter)
|
|
||||||
self.label_Servo2.setAlignment(QtCore.Qt.AlignCenter|QtCore.Qt.AlignVCenter)
|
|
||||||
|
|
||||||
self.label_FineServo1.setAlignment(QtCore.Qt.AlignCenter|QtCore.Qt.AlignVCenter)
|
|
||||||
self.label_FineServo2.setAlignment(QtCore.Qt.AlignCenter|QtCore.Qt.AlignVCenter)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
self.HSlider_Servo1.setMinimum(0)
|
|
||||||
self.HSlider_Servo1.setMaximum(180)
|
|
||||||
self.HSlider_Servo1.setSingleStep(1)
|
|
||||||
self.HSlider_Servo1.setValue(self.servo1)
|
|
||||||
self.HSlider_Servo1.valueChanged.connect(self.Change_Left_Right)
|
|
||||||
|
|
||||||
self.HSlider_FineServo1.setMinimum(-10)
|
|
||||||
self.HSlider_FineServo1.setMaximum(10)
|
|
||||||
self.HSlider_FineServo1.setSingleStep(1)
|
|
||||||
self.HSlider_FineServo1.setValue(0)
|
|
||||||
self.HSlider_FineServo1.valueChanged.connect(self.Fine_Tune_Left_Right)
|
|
||||||
|
|
||||||
self.HSlider_FineServo2.setMinimum(-10)
|
|
||||||
self.HSlider_FineServo2.setMaximum(10)
|
|
||||||
self.HSlider_FineServo2.setSingleStep(1)
|
|
||||||
self.HSlider_FineServo2.setValue(0)
|
|
||||||
self.HSlider_FineServo2.valueChanged.connect(self.Fine_Tune_Up_Down)
|
|
||||||
|
|
||||||
self.VSlider_Servo2.setMinimum(0)
|
|
||||||
self.VSlider_Servo2.setMaximum(150)
|
|
||||||
self.VSlider_Servo2.setSingleStep(1)
|
|
||||||
self.VSlider_Servo2.setValue(self.servo2)
|
|
||||||
self.VSlider_Servo2.valueChanged.connect(self.Change_Up_Down)
|
|
||||||
|
|
||||||
self.checkBox_Led1.setChecked(False)
|
|
||||||
self.checkBox_Led1.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led1))
|
|
||||||
self.checkBox_Led2.setChecked(False)
|
|
||||||
self.checkBox_Led2.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led2))
|
|
||||||
self.checkBox_Led3.setChecked(False)
|
|
||||||
self.checkBox_Led3.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led3))
|
|
||||||
self.checkBox_Led4.setChecked(False)
|
|
||||||
self.checkBox_Led4.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led4))
|
|
||||||
self.checkBox_Led5.setChecked(False)
|
|
||||||
self.checkBox_Led5.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led5))
|
|
||||||
self.checkBox_Led6.setChecked(False)
|
|
||||||
self.checkBox_Led6.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led6))
|
|
||||||
self.checkBox_Led7.setChecked(False)
|
|
||||||
self.checkBox_Led7.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led7))
|
|
||||||
self.checkBox_Led8.setChecked(False)
|
|
||||||
self.checkBox_Led8.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led8))
|
|
||||||
|
|
||||||
self.checkBox_Led_Mode1.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode1.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led_Mode1))
|
|
||||||
self.checkBox_Led_Mode2.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode2.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led_Mode2))
|
|
||||||
self.checkBox_Led_Mode3.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode3.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led_Mode3))
|
|
||||||
self.checkBox_Led_Mode4.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode4.stateChanged.connect(lambda:self.LedChange(self.checkBox_Led_Mode4))
|
|
||||||
|
|
||||||
self.Btn_Mode1.setChecked(True)
|
|
||||||
self.Btn_Mode1.toggled.connect(lambda:self.on_btn_Mode(self.Btn_Mode1))
|
|
||||||
self.Btn_Mode2.setChecked(False)
|
|
||||||
self.Btn_Mode2.toggled.connect(lambda:self.on_btn_Mode(self.Btn_Mode2))
|
|
||||||
self.Btn_Mode3.setChecked(False)
|
|
||||||
self.Btn_Mode3.toggled.connect(lambda:self.on_btn_Mode(self.Btn_Mode3))
|
|
||||||
self.Btn_Mode4.setChecked(False)
|
|
||||||
self.Btn_Mode4.toggled.connect(lambda:self.on_btn_Mode(self.Btn_Mode4))
|
|
||||||
|
|
||||||
self.Ultrasonic.clicked.connect(self.on_btn_Ultrasonic)
|
|
||||||
self.Light.clicked.connect(self.on_btn_Light)
|
|
||||||
|
|
||||||
self.Btn_ForWard.pressed.connect(self.on_btn_ForWard)
|
|
||||||
self.Btn_ForWard.released.connect(self.on_btn_Stop)
|
|
||||||
|
|
||||||
self.Btn_Turn_Left.pressed.connect(self.on_btn_Turn_Left)
|
|
||||||
self.Btn_Turn_Left.released.connect(self.on_btn_Stop)
|
|
||||||
|
|
||||||
self.Btn_BackWard.pressed.connect(self.on_btn_BackWard)
|
|
||||||
self.Btn_BackWard.released.connect(self.on_btn_Stop)
|
|
||||||
|
|
||||||
self.Btn_Turn_Right.pressed.connect(self.on_btn_Turn_Right)
|
|
||||||
self.Btn_Turn_Right.released.connect(self.on_btn_Stop)
|
|
||||||
|
|
||||||
self.Btn_Video.clicked.connect(self.on_btn_video)
|
|
||||||
|
|
||||||
self.Btn_Up.clicked.connect(self.on_btn_Up)
|
|
||||||
self.Btn_Left.clicked.connect(self.on_btn_Left)
|
|
||||||
self.Btn_Down.clicked.connect(self.on_btn_Down)
|
|
||||||
self.Btn_Home.clicked.connect(self.on_btn_Home)
|
|
||||||
self.Btn_Right.clicked.connect(self.on_btn_Right)
|
|
||||||
|
|
||||||
self.Btn_Buzzer.pressed.connect(self.on_btn_Buzzer)
|
|
||||||
self.Btn_Buzzer.released.connect(self.on_btn_Buzzer)
|
|
||||||
|
|
||||||
self.Btn_Connect.clicked.connect(self.on_btn_Connect)
|
|
||||||
|
|
||||||
|
|
||||||
self.Window_Min.clicked.connect(self.windowMinimumed)
|
|
||||||
self.Window_Close.clicked.connect(self.close)
|
|
||||||
timer = QTimer(self)
|
|
||||||
self.connect(timer, SIGNAL("timeout()"), self.time)
|
|
||||||
def mousePressEvent(self, event):
|
|
||||||
if event.button()==Qt.LeftButton:
|
|
||||||
self.m_drag=True
|
|
||||||
self.m_DragPosition=event.globalPos()-self.pos()
|
|
||||||
event.accept()
|
|
||||||
|
|
||||||
def mouseMoveEvent(self, QMouseEvent):
|
|
||||||
if QMouseEvent.buttons() and Qt.LeftButton:
|
|
||||||
self.move(QMouseEvent.globalPos()-self.m_DragPosition)
|
|
||||||
QMouseEvent.accept()
|
|
||||||
|
|
||||||
def mouseReleaseEvent(self, QMouseEvent):
|
|
||||||
self.m_drag=False
|
|
||||||
def close(self):
|
|
||||||
timer.stop()
|
|
||||||
try:
|
|
||||||
self.TCP.sendData(cmd.CMD_POWER_OFF)
|
|
||||||
self.TCP.sendData(cmd.CMD_CLOSE)
|
|
||||||
stop_thread(self.streaming)
|
|
||||||
stop_thread(self.recv)
|
|
||||||
self.TCP.StopTcpcClient()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
try:
|
|
||||||
os.remove("video.jpg")
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
QCoreApplication.instance().quit()
|
|
||||||
os._exit(0)
|
|
||||||
|
|
||||||
def recvmassage(self):
|
|
||||||
self.receflag=1
|
|
||||||
try:
|
|
||||||
self.TCP.socket1_connect(self.h)
|
|
||||||
self.TCP.sendData(cmd.CMD_POWER_ON)
|
|
||||||
while True:
|
|
||||||
Alldata=self.TCP.recvData()
|
|
||||||
if Alldata==None:
|
|
||||||
pass
|
|
||||||
elif Alldata=='':
|
|
||||||
break
|
|
||||||
elif len(Alldata)>21:
|
|
||||||
continue
|
|
||||||
else :
|
|
||||||
Massage=Alldata.split("#")
|
|
||||||
if cmd.CMD_SONIC in Massage:
|
|
||||||
self.Ultrasonic.setText('Obstruction:%s cm'%Massage[1])
|
|
||||||
elif cmd.CMD_SERVO in Massage:
|
|
||||||
print Massage
|
|
||||||
elif cmd.CMD_LIGHT in Massage:
|
|
||||||
self.Light.setText("Left:"+Massage[1]+'V'+' '+"Right"+Massage[2]+'V')
|
|
||||||
elif cmd. CMD_POWER in Massage:
|
|
||||||
percent_power=int((float(Massage[1])*3-7)/1.40*100)
|
|
||||||
self.progress_Power.setValue(percent_power)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
except :
|
|
||||||
pass
|
|
||||||
|
|
||||||
def keyPressEvent(self, event):
|
|
||||||
if(event.key() == Qt.Key_Up):
|
|
||||||
self.on_btn_Up()
|
|
||||||
elif(event.key() == Qt.Key_Left):
|
|
||||||
self.on_btn_Left()
|
|
||||||
elif(event.key() == Qt.Key_Down):
|
|
||||||
self.on_btn_Down()
|
|
||||||
elif(event.key() == Qt.Key_Right):
|
|
||||||
self.on_btn_Right()
|
|
||||||
elif(event.key() == Qt.Key_Home):
|
|
||||||
self.on_btn_Home()
|
|
||||||
|
|
||||||
|
|
||||||
if(event.key() == Qt.Key_Q):
|
|
||||||
if self.Btn_Mode1.isChecked() == True:
|
|
||||||
self.Btn_Mode2.setChecked(True)
|
|
||||||
elif self.Btn_Mode2.isChecked() == True:
|
|
||||||
self.Btn_Mode3.setChecked(True)
|
|
||||||
elif self.Btn_Mode3.isChecked() == True:
|
|
||||||
self.Btn_Mode4.setChecked(True)
|
|
||||||
elif self.Btn_Mode4.isChecked() == True:
|
|
||||||
self.Btn_Mode1.setChecked(True)
|
|
||||||
|
|
||||||
if(event.key() == Qt.Key_L):
|
|
||||||
count=0
|
|
||||||
if self.checkBox_Led_Mode1.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode2.setChecked(True)
|
|
||||||
elif self.checkBox_Led_Mode2.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode3.setChecked(True)
|
|
||||||
elif self.checkBox_Led_Mode3.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode4.setChecked(True)
|
|
||||||
elif self.checkBox_Led_Mode4.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode1.setChecked(True)
|
|
||||||
|
|
||||||
for i in range(1,5):
|
|
||||||
checkBox_Led_Mode=getattr(self,"checkBox_Led_Mode%d"%i)
|
|
||||||
if checkBox_Led_Mode.isChecked() == False:
|
|
||||||
count+=1
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
if count ==4:
|
|
||||||
self.checkBox_Led_Mode1.setChecked(True)
|
|
||||||
|
|
||||||
if(event.key() == Qt.Key_C):
|
|
||||||
self.on_btn_Connect()
|
|
||||||
if(event.key() == Qt.Key_V):
|
|
||||||
self.on_btn_video()
|
|
||||||
|
|
||||||
|
|
||||||
if(event.key() == Qt.Key_1):
|
|
||||||
if self.checkBox_Led1.isChecked() == True:
|
|
||||||
self.checkBox_Led1.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led1.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_2):
|
|
||||||
if self.checkBox_Led2.isChecked() == True:
|
|
||||||
self.checkBox_Led2.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led2.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_3):
|
|
||||||
if self.checkBox_Led3.isChecked() == True:
|
|
||||||
self.checkBox_Led3.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led3.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_4):
|
|
||||||
if self.checkBox_Led4.isChecked() == True:
|
|
||||||
self.checkBox_Led4.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led4.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_5):
|
|
||||||
if self.checkBox_Led5.isChecked() == True:
|
|
||||||
self.checkBox_Led5.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led5.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_6):
|
|
||||||
if self.checkBox_Led6.isChecked() == True:
|
|
||||||
self.checkBox_Led6.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led6.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_7):
|
|
||||||
if self.checkBox_Led7.isChecked() == True:
|
|
||||||
self.checkBox_Led7.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led7.setChecked(True)
|
|
||||||
elif(event.key() == Qt.Key_8):
|
|
||||||
if self.checkBox_Led8.isChecked() == True:
|
|
||||||
self.checkBox_Led8.setChecked(False)
|
|
||||||
else:
|
|
||||||
self.checkBox_Led8.setChecked(True)
|
|
||||||
|
|
||||||
|
|
||||||
if event.isAutoRepeat():
|
|
||||||
pass
|
|
||||||
else :
|
|
||||||
#print "You Pressed Key : ", event.key(), event.text()
|
|
||||||
if event.key() == Qt.Key_W:
|
|
||||||
self.on_btn_ForWard()
|
|
||||||
self.Key_W=True
|
|
||||||
elif event.key() == Qt.Key_S:
|
|
||||||
self.on_btn_BackWard()
|
|
||||||
self.Key_S=True
|
|
||||||
elif event.key() == Qt.Key_A:
|
|
||||||
self.on_btn_Turn_Left()
|
|
||||||
self.Key_A=True
|
|
||||||
elif event.key() == Qt.Key_D:
|
|
||||||
self.on_btn_Turn_Right()
|
|
||||||
self.Key_D=True
|
|
||||||
elif event.key() == Qt.Key_Space:
|
|
||||||
self.on_btn_Buzzer()
|
|
||||||
self.Key_Space=True
|
|
||||||
|
|
||||||
def keyReleaseEvent(self, event):
|
|
||||||
|
|
||||||
if(event.key() == Qt.Key_W):
|
|
||||||
time.sleep(0.05)
|
|
||||||
if(event.key() == Qt.Key_W):
|
|
||||||
if not(event.isAutoRepeat()) and self.Key_W==True:
|
|
||||||
self.on_btn_Stop()
|
|
||||||
self.Key_W=False
|
|
||||||
elif(event.key() == Qt.Key_A):
|
|
||||||
if not(event.isAutoRepeat()) and self.Key_A==True:
|
|
||||||
self.on_btn_Stop()
|
|
||||||
self.Key_A=False
|
|
||||||
elif(event.key() == Qt.Key_S):
|
|
||||||
if not(event.isAutoRepeat()) and self.Key_S==True:
|
|
||||||
self.on_btn_Stop()
|
|
||||||
self.Key_S=False
|
|
||||||
elif(event.key() == Qt.Key_D):
|
|
||||||
if not(event.isAutoRepeat()) and self.Key_D==True:
|
|
||||||
self.on_btn_Stop()
|
|
||||||
self.Key_D=False
|
|
||||||
|
|
||||||
if(event.key() == Qt.Key_Space):
|
|
||||||
if not(event.isAutoRepeat()) and self.Key_Space==True:
|
|
||||||
self.on_btn_Buzzer()
|
|
||||||
self.Key_Space=False
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def on_btn_ForWard(self):
|
|
||||||
self.TCP.sendData(cmd.CMD_FORWARD)
|
|
||||||
|
|
||||||
def on_btn_Turn_Left(self):
|
|
||||||
self.TCP.sendData(cmd.CMD_TURULEFT)
|
|
||||||
|
|
||||||
def on_btn_BackWard(self):
|
|
||||||
self.TCP.sendData(cmd.CMD_BACKWARD)
|
|
||||||
|
|
||||||
def on_btn_Turn_Right(self):
|
|
||||||
self.TCP.sendData(cmd.CMD_TURNRIGHT)
|
|
||||||
|
|
||||||
def on_btn_Stop(self):
|
|
||||||
self.TCP.sendData(cmd.CMD_MOTORSTOP)
|
|
||||||
|
|
||||||
def on_btn_video(self):
|
|
||||||
if self.Btn_Video.text()=='Open Video':
|
|
||||||
timer.start(34)
|
|
||||||
self.Btn_Video.setText('Close Video')
|
|
||||||
elif self.Btn_Video.text()=='Close Video':
|
|
||||||
timer.stop()
|
|
||||||
self.Btn_Video.setText('Open Video')
|
|
||||||
def on_btn_Up(self):
|
|
||||||
self.servo2=self.servo2+10
|
|
||||||
if self.servo2>=150:
|
|
||||||
self.servo2=150
|
|
||||||
self.VSlider_Servo2.setValue(self.servo2)
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO2+str(self.servo2))
|
|
||||||
|
|
||||||
self.label_Servo2.setText("%d"%self.servo2)
|
|
||||||
def on_btn_Left(self):
|
|
||||||
self.servo1=self.servo1-10
|
|
||||||
if self.servo1<=0:
|
|
||||||
self.servo1=0
|
|
||||||
self.HSlider_Servo1.setValue(self.servo1)
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO1+str(self.servo1)+'#0')
|
|
||||||
|
|
||||||
self.label_Servo1.setText("%d"%self.servo1)
|
|
||||||
def on_btn_Down(self):
|
|
||||||
self.servo2=self.servo2-10
|
|
||||||
if self.servo2<=0:
|
|
||||||
self.servo2=0
|
|
||||||
self.VSlider_Servo2.setValue(self.servo2)
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO2+str(self.servo2))
|
|
||||||
|
|
||||||
self.label_Servo2.setText("%d"%self.servo2)
|
|
||||||
|
|
||||||
def on_btn_Home(self):
|
|
||||||
self.servo1=90
|
|
||||||
self.servo2=20
|
|
||||||
self.HSlider_Servo1.setValue(self.servo1)
|
|
||||||
self.label_Servo1.setText("%d"%self.servo1)
|
|
||||||
self.VSlider_Servo2.setValue(self.servo2)
|
|
||||||
self.label_Servo2.setText("%d"%self.servo2)
|
|
||||||
|
|
||||||
def on_btn_Right(self):
|
|
||||||
self.servo1=self.servo1+10
|
|
||||||
if self.servo1>=180:
|
|
||||||
self.servo1=180
|
|
||||||
self.HSlider_Servo1.setValue(self.servo1)
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO1+str(self.servo1)+'#0')
|
|
||||||
|
|
||||||
self.label_Servo1.setText("%d"%self.servo1)
|
|
||||||
|
|
||||||
|
|
||||||
def Change_Left_Right(self):#Left or Right
|
|
||||||
self.servo1=self.HSlider_Servo1.value()
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO1+str(self.servo1)+'#0')
|
|
||||||
self.label_Servo1.setText("%d"%self.servo1)
|
|
||||||
|
|
||||||
def Fine_Tune_Left_Right(self):#fine tune Left or Right
|
|
||||||
self.label_FineServo1.setText(str(self.HSlider_FineServo1.value()))
|
|
||||||
data=self.servo1+self.HSlider_FineServo1.value()
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO1+str(data)+'#0')
|
|
||||||
|
|
||||||
def Fine_Tune_Up_Down(self):#fine tune Up or Down
|
|
||||||
self.label_FineServo2.setText(str(self.HSlider_FineServo2.value()))
|
|
||||||
data=self.servo2+self.HSlider_FineServo2.value()
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO2+str(data))
|
|
||||||
|
|
||||||
|
|
||||||
def Change_Up_Down(self):#Up or Down
|
|
||||||
self.servo2=self.VSlider_Servo2.value()
|
|
||||||
self.TCP.sendData(cmd.CMD_SERVO2+str(self.servo2))
|
|
||||||
self.label_Servo2.setText("%d"%self.servo2)
|
|
||||||
|
|
||||||
def windowMinimumed(self):
|
|
||||||
self.showMinimized()
|
|
||||||
|
|
||||||
|
|
||||||
def on_btn_Buzzer(self):
|
|
||||||
if self.Btn_Buzzer.text()=='Buzzer':
|
|
||||||
self.TCP.sendData(cmd.CMD_BUZZER_ON)
|
|
||||||
self.Btn_Buzzer.setText('Noise')
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_BUZZER_OFF)
|
|
||||||
self.Btn_Buzzer.setText('Buzzer')
|
|
||||||
|
|
||||||
def LedChange(self,b):
|
|
||||||
R=self.Color_R.text()
|
|
||||||
G=self.Color_G.text()
|
|
||||||
B=self.Color_B.text()
|
|
||||||
if b.text() == "Led1":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED2_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED2_OFF)
|
|
||||||
if b.text() == "Led2":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED3_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED3_OFF)
|
|
||||||
if b.text() == "Led3":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED4_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED4_OFF)
|
|
||||||
if b.text() == "Led4":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED5_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED5_OFF)
|
|
||||||
if b.text() == "Led5":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED1_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED1_OFF)
|
|
||||||
if b.text() == "Led6":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED0_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED0_OFF)
|
|
||||||
if b.text() == "Led7":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED7_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED7_OFF)
|
|
||||||
if b.text() == "Led8":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED6_ON+str(R)+"#"+str(G)+"#"+str(B))
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED6_OFF)
|
|
||||||
if b.text() == "Led_Mode1":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode2.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode3.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode4.setChecked(False)
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_MOD1)
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_OFF)
|
|
||||||
if b.text() == "Led_Mode2":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
|
|
||||||
self.checkBox_Led_Mode1.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode3.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode4.setChecked(False)
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_MOD2)
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_OFF)
|
|
||||||
if b.text() == "Led_Mode3":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode2.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode1.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode4.setChecked(False)
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_MOD3)
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_OFF)
|
|
||||||
if b.text() == "Led_Mode4":
|
|
||||||
if b.isChecked() == True:
|
|
||||||
self.checkBox_Led_Mode2.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode3.setChecked(False)
|
|
||||||
self.checkBox_Led_Mode1.setChecked(False)
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_MOD4)
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LED_OFF)
|
|
||||||
def on_btn_Ultrasonic(self):
|
|
||||||
if self.Ultrasonic.text()=="Ultrasonic":
|
|
||||||
self.TCP.sendData(cmd.CMD_ULTRASONIC_ON)
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_ULTRASONIC_OFF)
|
|
||||||
self.Ultrasonic.setText("Ultrasonic")
|
|
||||||
|
|
||||||
def on_btn_Light(self):
|
|
||||||
if self.Light.text() == "Light":
|
|
||||||
self.TCP.sendData(cmd.CMD_LIGHT_ON)
|
|
||||||
else:
|
|
||||||
self.TCP.sendData(cmd.CMD_LIGHT_OFF)
|
|
||||||
self.Light.setText("Light")
|
|
||||||
|
|
||||||
def on_btn_Mode(self,Mode):
|
|
||||||
if Mode.text() == "M-Free":
|
|
||||||
if Mode.isChecked() == True:
|
|
||||||
timer.start(34)
|
|
||||||
self.TCP.sendData(cmd.CMD_MODE[0])
|
|
||||||
|
|
||||||
if Mode.text() == "M-Light":
|
|
||||||
if Mode.isChecked() == True:
|
|
||||||
timer.stop()
|
|
||||||
self.TCP.sendData(cmd.CMD_MODE[1])
|
|
||||||
if Mode.text() == "M-Sonic":
|
|
||||||
if Mode.isChecked() == True:
|
|
||||||
timer.stop()
|
|
||||||
self.TCP.sendData(cmd.CMD_MODE[2])
|
|
||||||
|
|
||||||
if Mode.text() == "M-Line":
|
|
||||||
if Mode.isChecked() == True:
|
|
||||||
timer.stop()
|
|
||||||
self.TCP.sendData(cmd.CMD_MODE[3])
|
|
||||||
|
|
||||||
|
|
||||||
def on_btn_Connect(self):
|
|
||||||
if self.Btn_Connect.text() == "Connect":
|
|
||||||
self.h=self.IP.text()
|
|
||||||
self.TCP.StartTcpClient(self.h,)
|
|
||||||
try:
|
|
||||||
self.streaming=Thread(target=self.TCP.streaming,args=(self.h,))
|
|
||||||
self.streaming.start()
|
|
||||||
except:
|
|
||||||
print 'video error'
|
|
||||||
try:
|
|
||||||
self.recv=Thread(target=self.recvmassage)
|
|
||||||
self.recv.start()
|
|
||||||
except:
|
|
||||||
print 'recv error'
|
|
||||||
self.Btn_Connect.setText( "Disconnect")
|
|
||||||
print (self.h)
|
|
||||||
elif self.Btn_Connect.text()=="Disconnect":
|
|
||||||
self.Btn_Connect.setText( "Connect")
|
|
||||||
self.TCP.windows=0
|
|
||||||
self.receflag=0
|
|
||||||
try:
|
|
||||||
stop_thread(self.streaming)
|
|
||||||
stop_thread(self.recv)
|
|
||||||
self.TCP.sendData(cmd.CMD_POWER_OFF)
|
|
||||||
self.TCP.client_socket1.send(cmd.CMD_CLOSE)
|
|
||||||
self.TCP.StopTcpcClient()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def is_valid_jpg(self,jpg_file):
|
|
||||||
try:
|
|
||||||
|
|
||||||
if jpg_file.split('.')[-1].lower() == 'jpg':
|
|
||||||
with open(jpg_file, 'rb') as f:
|
|
||||||
f.seek(-2, 2)
|
|
||||||
buf = f.read()
|
|
||||||
f.close()
|
|
||||||
return buf.endswith(b'\xff\xd9')
|
|
||||||
else:
|
|
||||||
return false
|
|
||||||
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def is_valid_jpg1(self,jpg_file):
|
|
||||||
try:
|
|
||||||
bValid = True
|
|
||||||
if jpg_file.split('.')[-1].lower() == 'jpg':
|
|
||||||
with open(jpg_file, 'rb') as f:
|
|
||||||
buf=f.read()
|
|
||||||
if not buf.startswith(b'\xff\xd8'):
|
|
||||||
bValid = False
|
|
||||||
elif buf[6:10] in (b'JFIF', b'Exif'):
|
|
||||||
if not buf.rstrip(b'\0\r\n').endswith(b'\xff\xd9'):
|
|
||||||
bValid = False
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
Image.open(f).verify()
|
|
||||||
except:
|
|
||||||
bValid = False
|
|
||||||
else:
|
|
||||||
return bValid
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return bValid
|
|
||||||
|
|
||||||
|
|
||||||
def IsValidImage(self,pathfile):
|
|
||||||
bValid = True
|
|
||||||
try:
|
|
||||||
Image.open(pathfile).verify()
|
|
||||||
except:
|
|
||||||
bValid = False
|
|
||||||
return bValid
|
|
||||||
def time(self):
|
|
||||||
self.TCP.video_Flag=False
|
|
||||||
if self.is_valid_jpg1('video.jpg') and self.IsValidImage('video.jpg') and self.is_valid_jpg('video.jpg'):
|
|
||||||
self.label_Video.setPixmap(QtGui.QPixmap(QtCore.QString.fromUtf8('video.jpg')))
|
|
||||||
self.TCP.video_Flag=True
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
myshow=mywindow()
|
|
||||||
myshow.show();
|
|
||||||
sys.exit(app.exec_())
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
import numpy as np
|
|
||||||
import cv2
|
|
||||||
import socket
|
|
||||||
import io
|
|
||||||
import sys
|
|
||||||
from PIL import Image
|
|
||||||
from multiprocessing import Process
|
|
||||||
from Command import COMMAND as cmd
|
|
||||||
|
|
||||||
#socket.setdefaulttimeout(5) #new
|
|
||||||
class VideoStreaming:
|
|
||||||
def __init__(self):
|
|
||||||
self.face_cascade = cv2.CascadeClassifier(r'haarcascade_frontalface_default.xml')
|
|
||||||
self.video_Flag=True
|
|
||||||
self.connect_Flag=False #new
|
|
||||||
def StartTcpClient(self,IP):
|
|
||||||
self.client_socket1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
print 'StartTcpClient'
|
|
||||||
def StopTcpcClient(self):
|
|
||||||
try:
|
|
||||||
self.connection.close()
|
|
||||||
self.client_socket.close()
|
|
||||||
self.client_socket1.close()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def IsValidImage4Bytes(self,buf):
|
|
||||||
bValid = True
|
|
||||||
if buf[6:10] in (b'JFIF', b'Exif'):
|
|
||||||
if not buf.rstrip(b'\0\r\n').endswith(b'\xff\xd9'):
|
|
||||||
bValid = False
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
Image.open(io.BytesIO(buf)).verify()
|
|
||||||
except:
|
|
||||||
bValid = False
|
|
||||||
|
|
||||||
return bValid
|
|
||||||
|
|
||||||
def face_detect(self,img):
|
|
||||||
if sys.platform.startswith('win'):
|
|
||||||
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
|
|
||||||
faces = self.face_cascade.detectMultiScale(gray,1.3,5)
|
|
||||||
if len(faces)>0 :
|
|
||||||
for (x,y,w,h) in faces:
|
|
||||||
img = cv2.circle(img, (x+w/2,y+h/2), (w+h)/4, (0, 255, 0), 2)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
cv2.imwrite('video.jpg', img)
|
|
||||||
|
|
||||||
def streaming(self,ip):
|
|
||||||
try:
|
|
||||||
stream_bytes = b' '
|
|
||||||
self.client_socket.connect((ip, 8000))
|
|
||||||
self.connection = self.client_socket.makefile('wb')
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
stream_bytes += self.connection.read(1024)
|
|
||||||
first = stream_bytes.find(b'\xff\xd8')
|
|
||||||
last = stream_bytes.find(b'\xff\xd9')
|
|
||||||
if first != -1 and last != -1 :
|
|
||||||
jpg = stream_bytes[first:last + 2]
|
|
||||||
stream_bytes = stream_bytes[last + 2:]
|
|
||||||
if self.IsValidImage4Bytes(jpg):
|
|
||||||
image = cv2.imdecode(np.frombuffer(jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
|
|
||||||
if self.video_Flag:
|
|
||||||
self.face_detect(image)
|
|
||||||
except:
|
|
||||||
break
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def sendData(self,s):
|
|
||||||
if self.connect_Flag:
|
|
||||||
self.client_socket1.send(s)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def recvData(self):
|
|
||||||
data=0
|
|
||||||
try:
|
|
||||||
data=self.client_socket1.recv(1024)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return data
|
|
||||||
|
|
||||||
def socket1_connect(self,ip):
|
|
||||||
try:
|
|
||||||
self.client_socket1.connect((ip, 5000))
|
|
||||||
self.connect_Flag=True
|
|
||||||
print "Connecttion Successful !"
|
|
||||||
except Exception, e:
|
|
||||||
print "Connect to server Faild!: Server IP is right? Server is opend?", e
|
|
||||||
self.connect_Flag=False
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
a=VideoStreaming()
|
|
||||||
pass
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
import time
|
|
||||||
from Motor import *
|
|
||||||
from ADC import *
|
|
||||||
class Light:
|
|
||||||
def run(self):
|
|
||||||
try:
|
|
||||||
self.adc=Adc()
|
|
||||||
self.PWM=Motor()
|
|
||||||
self.PWM.setMotorModel(0,0,0,0)
|
|
||||||
while True:
|
|
||||||
L = self.adc.recvADC(0)
|
|
||||||
R = self.adc.recvADC(1)
|
|
||||||
if L < 2.99 and R < 2.99 :
|
|
||||||
self.PWM.setMotorModel(500,500,500,500)
|
|
||||||
|
|
||||||
elif abs(L-R)<0.15:
|
|
||||||
self.PWM.setMotorModel(0,0,0,0)
|
|
||||||
|
|
||||||
elif L > 3 or R > 3:
|
|
||||||
if L > R :
|
|
||||||
self.PWM.setMotorModel(-1200,-1200,1400,1400)
|
|
||||||
|
|
||||||
elif R > L :
|
|
||||||
self.PWM.setMotorModel(1400,1400,-1200,-1200)
|
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
led_Car.PWM.setMotorModel(0,0,0,0)
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
|
||||||
print ('Program is starting ... ')
|
|
||||||
led_Car=Light()
|
|
||||||
led_Car.run()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import time
|
|
||||||
import math
|
|
||||||
import smbus
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# Raspi PCA9685 16-Channel PWM Servo Driver
|
|
||||||
# ============================================================================
|
|
||||||
|
|
||||||
class PCA9685:
|
|
||||||
|
|
||||||
# Registers/etc.
|
|
||||||
__SUBADR1 = 0x02
|
|
||||||
__SUBADR2 = 0x03
|
|
||||||
__SUBADR3 = 0x04
|
|
||||||
__MODE1 = 0x00
|
|
||||||
__PRESCALE = 0xFE
|
|
||||||
__LED0_ON_L = 0x06
|
|
||||||
__LED0_ON_H = 0x07
|
|
||||||
__LED0_OFF_L = 0x08
|
|
||||||
__LED0_OFF_H = 0x09
|
|
||||||
__ALLLED_ON_L = 0xFA
|
|
||||||
__ALLLED_ON_H = 0xFB
|
|
||||||
__ALLLED_OFF_L = 0xFC
|
|
||||||
__ALLLED_OFF_H = 0xFD
|
|
||||||
|
|
||||||
def __init__(self, address=0x40, debug=False):
|
|
||||||
self.bus = smbus.SMBus(1)
|
|
||||||
self.address = address
|
|
||||||
self.debug = debug
|
|
||||||
self.write(self.__MODE1, 0x00)
|
|
||||||
|
|
||||||
def write(self, reg, value):
|
|
||||||
"Writes an 8-bit value to the specified register/address"
|
|
||||||
self.bus.write_byte_data(self.address, reg, value)
|
|
||||||
|
|
||||||
def read(self, reg):
|
|
||||||
"Read an unsigned byte from the I2C device"
|
|
||||||
result = self.bus.read_byte_data(self.address, reg)
|
|
||||||
return result
|
|
||||||
|
|
||||||
def setPWMFreq(self, freq):
|
|
||||||
"Sets the PWM frequency"
|
|
||||||
prescaleval = 25000000.0 # 25MHz
|
|
||||||
prescaleval /= 4096.0 # 12-bit
|
|
||||||
prescaleval /= float(freq)
|
|
||||||
prescaleval -= 1.0
|
|
||||||
prescale = math.floor(prescaleval + 0.5)
|
|
||||||
|
|
||||||
|
|
||||||
oldmode = self.read(self.__MODE1);
|
|
||||||
newmode = (oldmode & 0x7F) | 0x10 # sleep
|
|
||||||
self.write(self.__MODE1, newmode) # go to sleep
|
|
||||||
self.write(self.__PRESCALE, int(math.floor(prescale)))
|
|
||||||
self.write(self.__MODE1, oldmode)
|
|
||||||
time.sleep(0.005)
|
|
||||||
self.write(self.__MODE1, oldmode | 0x80)
|
|
||||||
|
|
||||||
def setPWM(self, channel, on, off):
|
|
||||||
"Sets a single PWM channel"
|
|
||||||
self.write(self.__LED0_ON_L+4*channel, on & 0xFF)
|
|
||||||
self.write(self.__LED0_ON_H+4*channel, on >> 8)
|
|
||||||
self.write(self.__LED0_OFF_L+4*channel, off & 0xFF)
|
|
||||||
self.write(self.__LED0_OFF_H+4*channel, off >> 8)
|
|
||||||
def setMotorPwm(self,channel,duty):
|
|
||||||
self.setPWM(channel,0,duty)
|
|
||||||
def setServoPulse(self, channel, pulse):
|
|
||||||
"Sets the Servo Pulse,The PWM frequency must be 50HZ"
|
|
||||||
pulse = pulse*4096/20000 #PWM frequency is 50HZ,the period is 20000us
|
|
||||||
self.setPWM(channel, 0, pulse)
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
|
||||||
|
|
||||||
pwm = PCA9685(0x40, debug=True)
|
|
||||||
pwm.setPWMFreq(50)
|
|
||||||
count=0;
|
|
||||||
while True:
|
|
||||||
for i in range(500,2500,10):
|
|
||||||
pwm.setServoPulse(8,i)
|
|
||||||
pwm.setServoPulse(9,i)
|
|
||||||
time.sleep(0.02)
|
|
||||||
|
|
||||||
for i in range(2500,500,-10):
|
|
||||||
pwm.setServoPulse(8,i)
|
|
||||||
pwm.setServoPulse(9,i)
|
|
||||||
time.sleep(0.02)
|
|
||||||
count=count+1
|
|
||||||
if count > 5 :
|
|
||||||
break
|
|
||||||
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
|||||||
import time
|
|
||||||
from Motor import *
|
|
||||||
import RPi.GPIO as GPIO
|
|
||||||
from servo import *
|
|
||||||
from PCA9685 import PCA9685
|
|
||||||
GPIO.setwarnings(False)
|
|
||||||
trigger_pin = 27
|
|
||||||
echo_pin = 22
|
|
||||||
GPIO.setmode(GPIO.BCM)
|
|
||||||
GPIO.setup(trigger_pin,GPIO.OUT)
|
|
||||||
GPIO.setup(echo_pin,GPIO.IN)
|
|
||||||
class Ultrasonic:
|
|
||||||
def send_trigger_pulse(self):
|
|
||||||
GPIO.output(trigger_pin,True)
|
|
||||||
time.sleep(0.00015)
|
|
||||||
GPIO.output(trigger_pin,False)
|
|
||||||
|
|
||||||
def wait_for_echo(self,value,timeout):
|
|
||||||
count = timeout
|
|
||||||
while GPIO.input(echo_pin) != value and count>0:
|
|
||||||
count = count-1
|
|
||||||
|
|
||||||
def get_distance(self):
|
|
||||||
distance_cm=[0,0,0]
|
|
||||||
for i in range(3):
|
|
||||||
self.send_trigger_pulse()
|
|
||||||
self.wait_for_echo(True,10000)
|
|
||||||
start = time.time()
|
|
||||||
self.wait_for_echo(False,10000)
|
|
||||||
finish = time.time()
|
|
||||||
pulse_len = finish-start
|
|
||||||
distance_cm[i] = pulse_len/0.000058
|
|
||||||
distance_cm=sorted(distance_cm)
|
|
||||||
return int(distance_cm[1])
|
|
||||||
def run_motor(self,L,M,R):
|
|
||||||
if L < 30 and M < 30 and R <30 :
|
|
||||||
self.PWM.setMotorModel(-1450,-1450,-1450,-1450)
|
|
||||||
time.sleep(0.1)
|
|
||||||
if L < R:
|
|
||||||
self.PWM.setMotorModel(1450,1450,-1450,-1450)
|
|
||||||
else :
|
|
||||||
self.PWM.setMotorModel(-1450,-1450,1450,1450)
|
|
||||||
elif L < 30 and M < 30:
|
|
||||||
self.PWM.setMotorModel(-1450,-1450,-1450,-1450)
|
|
||||||
time.sleep(0.1)
|
|
||||||
PWM.setMotorModel(1500,1500,-1500,-1500)
|
|
||||||
elif R < 30 and M < 30:
|
|
||||||
self.PWM.setMotorModel(-1450,-1450,-1450,-1450)
|
|
||||||
time.sleep(0.1)
|
|
||||||
PWM.setMotorModel(-1500,-1500,1500,1500)
|
|
||||||
elif L < 30 :
|
|
||||||
PWM.setMotorModel(2000,2000,-500,-500)
|
|
||||||
if L < 20 :
|
|
||||||
PWM.setMotorModel(1500,1500,-1500,-1500)
|
|
||||||
elif R < 30 :
|
|
||||||
PWM.setMotorModel(-500,-500,2000,2000)
|
|
||||||
if L < 20 :
|
|
||||||
PWM.setMotorModel(-1500,-1500,1500,1500)
|
|
||||||
elif M < 30 :
|
|
||||||
self.PWM.setMotorModel(-1450,-1450,-1450,-1450)
|
|
||||||
time.sleep(0.1)
|
|
||||||
if L < R:
|
|
||||||
self.PWM.setMotorModel(1450,1450,-1450,-1450)
|
|
||||||
else :
|
|
||||||
self.PWM.setMotorModel(-1450,-1450,1450,1450)
|
|
||||||
else :
|
|
||||||
self.PWM.setMotorModel(550,550,550,550)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.PWM=Motor()
|
|
||||||
self.pwm_S=Servo()
|
|
||||||
|
|
||||||
self.pwm_S.setServoPwm(1,0,30,0)
|
|
||||||
R = self.get_distance()
|
|
||||||
time.sleep(0.2)
|
|
||||||
|
|
||||||
self.pwm_S.setServoPwm(1,0,90,0)
|
|
||||||
L = self.get_distance()
|
|
||||||
time.sleep(0.2)
|
|
||||||
|
|
||||||
self.pwm_S.setServoPwm(1,0,150,0)
|
|
||||||
M = self.get_distance()
|
|
||||||
time.sleep(0.2)
|
|
||||||
|
|
||||||
while True:
|
|
||||||
self.pwm_S.setServoPwm(1,0,30,0)
|
|
||||||
R = self.get_distance()
|
|
||||||
self.run_motor(L,M,R)
|
|
||||||
time.sleep(0.2)
|
|
||||||
|
|
||||||
self.pwm_S.setServoPwm(1,0,90,0)
|
|
||||||
L = self.get_distance()
|
|
||||||
self.run_motor(L,M,R)
|
|
||||||
time.sleep(0.2)
|
|
||||||
|
|
||||||
self.pwm_S.setServoPwm(1,0,150,0)
|
|
||||||
M = self.get_distance()
|
|
||||||
self.run_motor(L,M,R)
|
|
||||||
time.sleep(0.2)
|
|
||||||
self.run_motor(L,M,R)
|
|
||||||
|
|
||||||
ultrasonic=Ultrasonic()
|
|
||||||
# Main program logic follows:
|
|
||||||
if __name__ == '__main__':
|
|
||||||
print ('Program is starting ... ')
|
|
||||||
try:
|
|
||||||
ultrasonic.run()
|
|
||||||
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
|
|
||||||
PWM.setMotorModel(0,0,0,0)
|
|
||||||
ultrasonic.pwm_S.setServoPwm(1,0,90,20)
|
|
||||||
|
|
BIN
Tutorial.pdf
BIN
Tutorial.pdf
Binary file not shown.
Loading…
Reference in New Issue
Block a user