Пример #1
0
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)

        self.cloud = pcl.PointCloud()

        #添加软件图标
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("./logo.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        QtGui.QMainWindow.setWindowIcon(self, icon)
        # self.widget_2.resize(759, 486)
        self.graph3DWidget = Surface3D_Graph(defaultNumberOfData, self.widget_3dscan)
        self.graph3DWidget.setMinimumSize(QtCore.QSize(600, 600))
        self.graph3DWidget.setObjectName("graph3DWidget")
        self.cloud = self.graph3DWidget.get_cloud()
        self.zoom_home.pressed.connect(lambda:self.graph3DWidget.home_view())
        self.zoom_left.pressed.connect(lambda:self.graph3DWidget.home_view('left'))
        self.zoom_right.pressed.connect(lambda:self.graph3DWidget.home_view('right'))
        self.zoom_up.pressed.connect(lambda:self.graph3DWidget.home_view('up'))
        self.zoom_down.pressed.connect(lambda:self.graph3DWidget.home_view('down'))
        self.zoom_in.pressed.connect(lambda:self.graph3DWidget.home_view('in'))
        self.zoom_out.pressed.connect(lambda:self.graph3DWidget.home_view('out'))
        self.get_color.pressed.connect(lambda:self.openColorDialog())
        self.timer = QtCore.QBasicTimer()
        self.step = 0
        self.start_scan.pressed.connect(self.onStart)
        self.actionOpen.triggered.connect(lambda:self.open_file())
        self.actionSave.triggered.connect(lambda:self.saveFileDialog())
        self.onInit()
        self.getThread = ThreadExample()
        self.getThread.printSignal.connect(self.modbusCallback)
        self.getThread.start()

        png = QtGui.QPixmap('resut.png')
        self.cam_image.setPixmap(png.scaled(250,250,aspectRatioMode=QtCore.Qt.KeepAspectRatio))

        self.ptz =ptz()
        self.comboBox_serial.addItems(self.ptz.get_port_list())
        self.connect.pressed.connect(lambda:self.connect_serial())
        self.ptz_up.pressed.connect(lambda: self.ptz_go("up"))
        self.ptz_up.released.connect(lambda: self.ptz_go("stop"))
        self.ptz_down.pressed.connect(lambda: self.ptz_go("down"))
        self.ptz_down.released.connect(lambda: self.ptz_go("stop"))
        self.ptz_left.pressed.connect(lambda: self.ptz_go("left"))
        self.ptz_left.released.connect(lambda: self.ptz_go("stop"))
        self.ptz_right.pressed.connect(lambda: self.ptz_go("right"))
        self.ptz_right.released.connect(lambda: self.ptz_go("stop"))
        self.ptz_go_zeto.pressed.connect(lambda: self.ptz_go("zero"))

        self.manual_recognize.pressed.connect(self.cloudRecognize)

        self.recognize = Queue()
        self.scan_queue = Queue()
        self.scan_status = 1
Пример #2
0
    def initUI(self):

        #self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Taper Design')

        okButton = QtGui.QPushButton("Validate")
        okButton.clicked.connect(self.okClicked)

        cancelButton = QtGui.QPushButton("Initiate")
        cancelButton.clicked.connect(self.InitiateClicked)

        taperButton = QtGui.QPushButton("Taper")
        taperButton.clicked.connect(self.taperClicked)

        abortButton = QtGui.QPushButton("Abort")
        abortButton.clicked.connect(self.abortClicked)

        measureButton = QtGui.QPushButton("Measure")
        measureButton.clicked.connect(self.measureClicked)

        HomeThetaButton = QtGui.QPushButton("ThetaReset")
        HomeThetaButton.clicked.connect(self.HomeThetaButtonClicked)

        MoveThetaButton = QtGui.QPushButton("ThetaMOVE")
        MoveThetaButton.clicked.connect(self.MoveThetaButtonClicked)

        BDButton = QtGui.QPushButton("Bright")
        BDButton.clicked.connect(self.BD)

        self.exposure = QtGui.QLineEdit(self)
        self.exposure.setText('200')

        #stopSplicerWithoutStageReset(self)

        hbox = QtGui.QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(self.exposure)
        hbox.addWidget(BDButton)
        hbox.addWidget(MoveThetaButton)

        MoveThetaButton = QtGui.QPushButton("TL")
        MoveThetaButton.clicked.connect(self.MoveThetaLClicked)
        hbox.addWidget(MoveThetaButton)
        MoveThetaButton = QtGui.QPushButton("TR")
        MoveThetaButton.clicked.connect(self.MoveThetaRClicked)
        hbox.addWidget(MoveThetaButton)

        StopSplicer = QtGui.QPushButton("STOPSPLICE")
        StopSplicer.clicked.connect(self.StopSpliceClicked)

        hbox.addWidget(StopSplicer)
        hbox.addWidget(HomeThetaButton)
        hbox.addWidget(okButton)
        hbox.addWidget(cancelButton)
        hbox.addWidget(taperButton)
        hbox.addWidget(measureButton)
        hbox.addWidget(abortButton)

        button = QtGui.QPushButton("ExecuteCMDs")
        button.clicked.connect(self.RunCMDs)
        hbox.addWidget(button)

        vbox = QtGui.QVBoxLayout()

        hbox2 = QtGui.QHBoxLayout()

        #params = [ScalableGroup(name="Taper Structure", children=[])   ]

        #t = ParameterTree(showHeader=False)
        #t.setDragEnabled(True)
        self.text = SimplePythonEditor(self)
        #self.text.setAcceptRichText(True)
        #self.text.setTabStopWidth(10)

        self.text.setText(""" #Taper Functions
SD = 1680 #Start Diameter
ED = 1490 #end Diameter

Waist = 1000.

taper.startArc = 530.
taper.waistAdd = 0.
taper.vr= 0.05

taper += linear(3000,SD,Waist)
taper += linear(3000,Waist,Waist)
taper += linear(2000,Waist,ED)
taper += linear(25000,ED,ED)
taper += parabolic(4000,ED,SD)""")

        vbox1 = QtGui.QVBoxLayout()

        vbox1.addWidget(self.text)

        self.runcmds = SimplePythonEditor(self)

        self.runcmds.setText("""'''Instructions
        arc(duration in ms, bit between 0 and 1024)
        moveZLZR(ZL distance in micron 0.1 to,ZL speed,ZR distance in micron, ZR Speed)
        zoomin()
        zoomout()
        '''""")

        vbox1.addWidget(self.runcmds)

        hbox3 = QtGui.QHBoxLayout()
        self.doArc = QtGui.QCheckBox('Arc', self)
        self.doRotate = QtGui.QCheckBox('Rotate', self)
        self.controlSplicer = QtGui.QCheckBox('Control Splicer', self)
        hbox3.addWidget(self.doArc)
        hbox3.addWidget(self.doRotate)
        hbox3.addWidget(self.controlSplicer)
        vbox1.addLayout(hbox3)
        hbox2.addLayout(vbox1)
        vboxPlots = QtGui.QVBoxLayout()
        p1 = pg.PlotWidget(self, title='Taper Profile', xlabel='xl ($\mu$m)')
        p1.setLabel('left', "OD", units='micron')
        p1.setLabel('bottom', "ZL", units='micron')

        self.p1 = p1
        self.y = p1.plot()
        self.measureX = p1.plot(pen=(0, 255, 0))
        self.measureY = p1.plot(pen=(0, 0, 255))

        self.arc = p1.plot(pen=(255, 0, 0))

        self.brightprofileWindow = pg.PlotWidget(title='Brightness Profile')

        self.brightprofileWindow.show()

        self.brightprofile = self.brightprofileWindow.plot()

        vboxPlots.addWidget(p1, stretch=.8)
        p2 = pg.PlotWidget(self, title='Motor Velocity')
        p2.setLabel('left', "Velocity", units='mm/s')
        p2.setLabel('bottom', "Time", units='s')

        self.p2 = p2
        self.vl = p2.plot()
        self.vr = p2.plot(pen=(255, 0, 0))
        vboxPlots.addWidget(p2, stretch=.8)

        p3 = pg.PlotWidget(self, title='xl,xr')
        self.p3 = p3
        self.xl = p3.plot()
        self.xr = p3.plot(pen=(255, 0, 0))
        self.xlp = p3.plot(pen=None, symbolBrush=(255, 0, 0), symbolPen='w')
        #self.xrp = p3.plot(np.random.normal(size=1), pen=None, symbolBrush=(255,0,0), symbolPen='w')
        p3.setLabel('left', "XR", units='micron')
        p3.setLabel('bottom', "XL", units='MICRON')

        vboxPlots.addWidget(p3, stretch=.8)
        hbox2.addLayout(vboxPlots)

        vbox.addLayout(hbox2)
        #vbox.addStretch(1)
        vbox.addLayout(hbox)

        #self.setLayout(vbox)

        self.main_widget = QtGui.QWidget(self)
        self.main_widget.setLayout(vbox)
        self.setCentralWidget(self.main_widget)

        self.timer = QtCore.QBasicTimer()
        self.timer.start(
            1, self)  #check stuff every 130 ms, update stage every 150ms

        self.statusBar().showMessage("System Status | Normal")

        self.show()

        self.mtwidget = MoveMotorWidget(splicer)
        self.fps = 0
        self.previoustime = time.time()

        self.started = False
        self.ex = ''
        self.processClass = SplicerFunc()
        self.Measurement = None
        self.taperProcess = None