コード例 #1
0
ファイル: Run.py プロジェクト: AvirupRoy/research
# -*- coding: utf-8 -*-
"""
RUN information dialog
@author: Felix Jaeckel <*****@*****.**>
"""

from LabWidgets.Utilities import compileUi
compileUi('RunUi')
import RunUi as Ui
from PyQt4.QtGui import QDialog, QFileDialog
from PyQt4.QtCore import QSettings, QString  # pyqtSignal, QThread,
import os


class RunDialog(Ui.Ui_Dialog, QDialog):
    def __init__(self, parent=None):
        super(RunDialog, self).__init__(parent)
        self.setupUi(self)
        self.setWindowTitle('ADR3 run info')
        self.selectPb.clicked.connect(self.selectBasePath)
        self.buttonBox.accepted.connect(self.saveSettings)
        self.runLe.textChanged.connect(self.updatePath)
        self.restoreSettings()

    def selectBasePath(self):
        newPath = QFileDialog.getExistingDirectory(
            parent=self,
            caption='Select the base directory for the runs.',
            directory=self.basePath)
        if newPath:
            self.basePath = newPath
コード例 #2
0
Based on IvCurveDaq code
@author: Felix Jaeckel <*****@*****.**>

Version history:
    0.51    Housekeeping logger added (2018-03-27)
    
"""
from __future__ import division, print_function

OrganizationName = 'McCammon Astrophysics'
OrganizationDomain = 'wisp.physics.wisc.edu'
ApplicationName = 'SineSweepDaq'
Version = '0.51'
    
from LabWidgets.Utilities import compileUi, saveWidgetToSettings, restoreWidgetFromSettings
compileUi('SineSweepDaqUi')
import SineSweepDaqUi as ui 
from PyQt4.QtGui import QWidget, QMessageBox, qApp
from PyQt4.QtCore import QThread, QSettings, pyqtSignal, QObject, pyqtSlot

import DAQ.PyDaqMx as daq
import time
import numpy as np
#import scipy.signal as signal
import pyqtgraph as pg
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')

import traceback
import gc
import warnings
コード例 #3
0
ファイル: MagnetControl2.py プロジェクト: AvirupRoy/research
logging.basicConfig(level=logging.WARN, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M:%S', filename='MagnetControl.log', filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.WARN)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
logger = logging.getLogger(__name__)

from MagnetSupply2 import MagnetControlThread
from MagnetSupply import MagnetControlRequestReplyThread
from PyQt4.QtGui import QWidget
from PyQt4.QtCore import pyqtSignal, QObject, QSettings, QByteArray

from LabWidgets.Utilities import compileUi
compileUi('MagnetControl2Ui')
import MagnetControl2Ui

from Zmq.Ports import RequestReply
import pyqtgraph as pg
import time
import numpy as np

from Utility.Math import pruneData

mA_per_min = 1E-3/60.
mOhm = 1E-3

class MagnetControlWidget(MagnetControl2Ui.Ui_Widget, QWidget):
    '''The GUI for magnet control'''
    def __init__(self, parent=None):
コード例 #4
0
Created on Wed Sep 16 17:45:56 2015

@author: wisp10
"""

from PyQt4.QtGui import QWidget, QDoubleSpinBox, QHeaderView, QCheckBox, QFileDialog
from PyQt4.QtCore import QSettings
#from PyQt4.QtCore import QObject, pyqtSignal, QThread, QSettings, QString, QByteArray

from MagnetControlRemote import MagnetControlRemote

from Zmq.Subscribers import HousekeepingSubscriber


from LabWidgets.Utilities import compileUi
compileUi('AdrControlUi')
import AdrControlUi

import time

class State:
    IDLE = 0
    RAMPING = 1
    HOLDING = 2

class CurrentRateSpinBox(QDoubleSpinBox):
    def __init__(self, parent=None):
        QDoubleSpinBox.__init__(self, parent)
        self.setAccelerated(True)
        self.setMinimum(0)
        self.setMaximum(800)
コード例 #5
0
# -*- coding: utf-8 -*-
"""
ADR Temperature control
Branched from old UNM/FJ code
@author: Felix Jaeckel <*****@*****.**>
"""
import time

from LabWidgets.Utilities import compileUi
compileUi('AdrTemperatureControl2Ui')
import AdrTemperatureControl2Ui as Ui

import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M:%S', filename='AdrTemperatureControlPid%s.log' % time.strftime('%Y%m%d'), filemode='a')
console = logging.StreamHandler()
console.setLevel(logging.WARN)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)
logger = logging.getLogger(__name__)


class SIUnits:
    milli = 1E-3
    mK = milli
    minute = 60.
    
class StopThread(Exception):
    pass
コード例 #6
0
# -*- coding: utf-8 -*-
"""
Readout of AVS47 resistance bridge in single channel mode for simplicity
Created on Fri Dec 04 12:49:18 2015

@author: Felix Jaeckel <*****@*****.**>
"""

import time, warnings
from LabWidgets.Utilities import connectAndUpdate, saveWidgetToSettings, restoreWidgetFromSettings, compileUi
compileUi('Avs47Ui')
import Avs47Ui as Ui

from Zmq.Zmq import ZmqPublisher
from Zmq.Ports import PubSub  #,RequestReply

from PyQt4.QtGui import QWidget
from PyQt4.QtCore import QSettings, pyqtSignal
import pyqtgraph as pg
from PyQt4.Qt import Qt

import logging
logging.basicConfig(level=logging.WARN)

import os.path

from Visa.AVS47 import Avs47
from Visa.Agilent34401A import Agilent34401A

from Calibration.RuOx import RuOx600, RuOxBus, RuOx2005
#ruOxCalibration = RuOx600() # From breakpoint table
コード例 #7
0
# -*- coding: utf-8 -*-
"""
Created on Tue Feb 16 12:30:54 2016

@author: wisp10
"""

from __future__ import print_function, division

from LabWidgets.Utilities import compileUi
compileUi('PyDaqMx_AiSpectrumAnalyzerUi')

import PyDaqMx as daq
from PyQt4 import QtGui
from PyQt4.QtCore import QSettings, QThread, pyqtSignal
import pyqtgraph as pg
import numpy as np
import time
import matplotlib.mlab as mlab
import h5py as hdf
import PyDaqMx_AiSpectrumAnalyzerUi as ui
from PyDaqMxGui import AiConfigLayout
from Zmq.Zmq import RequestReplyThreadWithBindings
from Zmq.Ports import RequestReply


class AiThread(QThread):
    samplesAvailable = pyqtSignal(float, np.ndarray)

    def setTask(self, task, samplesPerChunk):
        self.task = task
コード例 #8
0
# -*- coding: utf-8 -*-
"""
Program to monitor diode thermometer using Agilent DMM readout
Created on 2015-11-16
@author: Felix Jaeckel <*****@*****.**>
"""

from LabWidgets.Utilities import compileUi
compileUi('DiodeThermometerV2Ui')
import DiodeThermometerV2Ui as ui

from PyQt4.QtGui import QWidget, QMessageBox
from PyQt4.QtCore import pyqtSignal, QThread, QSettings

from Visa.Agilent34401A import Agilent34401A

import numpy as np
import time
from Calibration.DiodeThermometers import DT470Thermometer, DT670Thermometer, Si70Thermometer
from Utility.Math import pruneData

import pyqtgraph as pg


class DiodeThermometerThread(QThread):
    measurementReady = pyqtSignal(float, float)
    error = pyqtSignal(str)

    def __init__(self, dmm, parent=None):
        QThread.__init__(self, parent)
        self.dmm = dmm
コード例 #9
0
ファイル: Template_Simple.py プロジェクト: AvirupRoy/research
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 20 13:10:58 2015

@author: wisp10
"""


from PyQt4 import QtGui
from PyQt4.QtCore import QThread, pyqtSignal
from LabWidgets.Utilities import compileUi
compileUi('DaqGuiUi')
import DaqGuiUi

class MeasurementThread(QThread):
    def requestStop(self):
        self.stopRequested = True
        
    def run(self):
        self.stopRequested = False
        
        for i in range(100):
            print i
            self.msleep(500)
            if self.stopRequested:
                break
        
class MainWidget(QtGui.QWidget, DaqGuiUi.Ui_Form):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
コード例 #10
0
from Calibration.RuOx import RuOx600, RuOxBus, RuOx2005, RuOxBox
from LockinThermometerPDA import LockinThermometerAutomaton
from Zmq.Zmq import ZmqPublisher
from Zmq.Ports import PubSub  #,RequestReply
import os
try:
    from PyQt4.QtCore import QString
except ImportError:
    # we are using Python3 so QString is not defined
    QString = str

import time
import logging
logging.basicConfig(level=logging.DEBUG)
from LabWidgets.Utilities import compileUi
compileUi('LockinThermometerExpandUi')
import LockinThermometerExpandUi as Ui
import pyqtgraph as pg


class LockinThermometerWithExpandWidget(Ui.Ui_Form, QWidget):
    def __init__(self, parent=None):
        super(LockinThermometerWithExpandWidget, self).__init__(parent)
        self.setupUi(self)
        self.setWindowTitle('Lockin Thermometer')
        self.Rthermometer = float('nan')

        axis = pg.DateAxisItem(orientation='bottom')
        self.plot = pg.PlotWidget(axisItems={'bottom': axis})
        self.plot.setBackground('w')
        self.plot.plotItem.showGrid(x=True, y=True)
コード例 #11
0
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 15 23:47:22 2015

@author: wisp10
"""

import time
#import datetime

from LabWidgets.Utilities import compileUi
compileUi('SR830_GuiUi')
import SR830_GuiUi as Ui

#from math import isnan

#from Zmq.Zmq import ZmqPublisher
#from Zmq.Ports import PubSub #,RequestReply

#from LabWidgets.Utilities import connectAndUpdate, saveWidgetToSettings, restoreWidgetFromSettings
import pyqtgraph as pg
from PyQt4.QtGui import QWidget, QFileDialog
from PyQt4.QtCore import QSettings, QTimer, QString  #,pyqtSignal

from SR830_New import SR830
from Zmq.Zmq import ZmqPublisher

#from Utility.Utility import PeriodicMeasurementThread

#import gc
#gc.set_debug(gc.DEBUG_LEAK)
コード例 #12
0
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 14 17:20:42 2016

@author: wisp10
"""

OrganizationName = 'McCammon X-ray Astro Physics'
ApplicationName = 'legacy DAQ Streaming'
Version = '0.2'

from LabWidgets.Utilities import compileUi
compileUi('LegacyDaqStreamingUi')
import LegacyDaqStreamingUi as Ui

from PyQt4.QtGui import QWidget, QCheckBox, QComboBox, QLineEdit, QDoubleSpinBox, QSpinBox

import numpy as np
import pyqtgraph as pg
try:
    import PyNiLegacyDaq as daq
except WindowsError, e:
    text = ("Windows was unable to load the NI-DAQ DLL: %s\n"
            "This could be because another program is using it. "
            "It is a single-process DLL therefore only one program may use it at a time.\n"
            "The work-around is to put all programs that need to use it into a single process. "
            "Try running from PyLegacyDaq_Combined.py instead!") % e
    print text
    from PyQt4.QtGui import QApplication, QMessageBox
    app = QApplication([])
    QMessageBox.critical(None, "Unable to load NI-DAQ DLL", text)
コード例 #13
0
"""

from PyQt4.QtGui import QWidget  #, QDoubleSpinBox, QSpinBox, QHeaderView
from PyQt4.QtCore import pyqtSignal, QThread, QSettings, QString, QByteArray  #, QObject

import time
from Zmq.Subscribers import HousekeepingSubscriber
import numpy as np

from Visa.SR830 import SR830

from AnalogSource import VoltageSourceSR830, VoltageSourceDaq, CurrentSourceKeithley
from AnalogMeter import VoltmeterDaq

from LabWidgets.Utilities import compileUi
compileUi('TES_IVSweepsDaqUi')
import TES_IVSweepsDaqUi

import h5py as hdf


def limit(x, xMin, xMax):
    return max(min(x, xMax), xMin)


import numpy as np


def determineCriticalCurrent(Vdrives, Vmeas):
    nPoints = len(Vdrives)
    ## First, lay out a linear fit starting from smallest Vdrive.
コード例 #14
0
ファイル: MultitoneLockin.py プロジェクト: AvirupRoy/research
@author: Felix Jaeckel <*****@*****.**>
"""

from __future__ import division

OrganizationName = 'McCammon Astrophysics'
OrganizationDomain = 'wisp.physics.wisc.edu'
ApplicationName = 'MultitoneLockin'
Copyright = '(c) Felix T. Jaeckel <*****@*****.**>'
Version = '0.25'

from Lockin import LockInMkl
from MultitoneGenerator import MultitoneGeneratorMkl

from LabWidgets.Utilities import compileUi, saveWidgetToSettings, restoreWidgetFromSettings, widgetValue
compileUi('MultiLockinUi')
import MultiLockinUi as ui 
from PyQt4.QtGui import QWidget, QMessageBox, QDoubleSpinBox, QSpinBox, QCheckBox, QHeaderView, QAbstractSpinBox, QAbstractButton, QLineEdit, QComboBox, QFileDialog
from PyQt4.QtCore import QThread, QSettings, pyqtSignal, QObject, pyqtSlot, QByteArray
from DecimateFast import DecimatorCascade

import DAQ.PyDaqMx as daq
from Utility.HdfWriter import HdfStreamsWriter, HdfStreamWriter, HdfVectorWriter
from Utility.HkLogger import HkLogger
import h5py as hdf
import time
import numpy as np
import Queue
import pyqtgraph as pg
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')
コード例 #15
0
# -*- coding: utf-8 -*-
"""
Created on Fri Nov 27 13:55:39 2015

@author: wisp10
"""

from PyQt4.QtGui import QWidget

from LabWidgets.Utilities import compileUi

compileUi('ZmqRequestReplyServerUi')
import ZmqRequestReplyServerUi

from Zmq import ZmqRequestReplyThread, ZmqReply
import logging

logging.basicConfig(level=logging.DEBUG)


class ServerThread(ZmqRequestReplyThread):
    def linkToControls(self, spinBox):
        self._spinBox = spinBox

    def processRequest(self, origin, timeStamp, request):
        print "Processing request..."
        if request.target == 'value':
            if request.command == 'set':
                print "request.parameters", request.parameters
                self._spinBox.setValue(request.parameters)
                return ZmqReply()
コード例 #16
0
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.

#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
"""
A function generator example for PyDaqMx, using PyQt4 and pyqtgraph for the GUI
Continuously generates sample to allow for (almost) live updates to the function.
Created on Mon Nov 09 14:45:59 2015
@author: Felix Jaeckel <*****@*****.**>

"""

from LabWidgets.Utilities import compileUi
compileUi('FunctionGeneratorUi')
import FunctionGeneratorUi

from PyQt4.QtGui import QWidget

import numpy as np
import pyqtgraph as pg
import PyDaqMx as daq

from PyQt4.QtCore import QThread, QSettings, pyqtSignal
try:
    from PyQt4.QtCore import QString
except ImportError:
    QString = str

from scipy import signal
コード例 #17
0
# -*- coding: utf-8 -*-
"""
Created on Mon Oct 30 12:12:32 2017

@author: Lan Hu
"""

from LabWidgets.Utilities import compileUi
compileUi('DiodeThermometer_MultiUi')
import DiodeThermometer_MultiUi as ui

#from DiodeThermometer2Copy import DiodeThermometerWidget
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import pyqtgraph as pg
from Visa.Agilent34401A import Agilent34401A

from Zmq.Zmq import ZmqPublisher
from Zmq.Ports import PubSub  #,RequestReply

import numpy as np
import time
from Calibration.DiodeThermometers import DT470Thermometer, DT670Thermometer, Si70Thermometer
from Visa.VisaWidgets import VisaCombo
from LabWidgets.Utilities import saveWidgetToSettings, restoreWidgetFromSettings
import os


class DiodeThermometerThread(QThread):

    measurementReady = pyqtSignal(float, float)
コード例 #18
0
# -*- coding: utf-8 -*-
"""
Use the lock-in for thermometer (resistive sensor) read-out.
Optionally, adjust sine-out amplitude to keep constant sensor excitation.

Created on Wed Dec 16 17:13:15 2015

@author: wisp10
"""

import time

from LabWidgets.Utilities import compileUi
compileUi('LockinThermometerUi2')
import LockinThermometerUi2 as Ui

import pyqtgraph as pg
from PyQt4.QtGui import QWidget, QErrorMessage, QIcon
from PyQt4.QtCore import QSettings, QTimer, QString
from PyQt4.Qt import Qt

from Calibration.CalibrationDatabase import ThermometerCalIds, getThermometerCalibration

from Visa.SR830_New import SR830
from Visa.VisaInstrument import CommunicationsError
import os.path

from Zmq.Zmq import ZmqPublisher, RequestReplyThreadWithBindings
from Zmq.Ports import LockInPubSub, LockInRequestReply
from Zmq.Subscribers import HousekeepingSubscriber
コード例 #19
0
ファイル: PiezoControl.py プロジェクト: AvirupRoy/research
# -*- coding: utf-8 -*-
"""
Program to control and log the Piezo voltage/current
Created on 2015-11-16
@author: Felix Jaeckel <*****@*****.**>
"""

from LabWidgets.Utilities import compileUi
compileUi('PiezoControlUi')
import PiezoControlUi as ui

from PyQt4.QtGui import QWidget, QMessageBox
from PyQt4.QtCore import pyqtSignal, QThread, QSettings

from Visa.Keithley6430 import Keithley6430

import numpy as np
import time


import pyqtgraph as pg

class PiezoControlThread(QThread):
    measurementReady = pyqtSignal(float, float, float)
    rampComplete = pyqtSignal()
    error = pyqtSignal(str)

    def __init__(self, sourceMeter, parent=None):
        QThread.__init__(self, parent)
        self.sourceMeter = sourceMeter
        self.interval = 1.0
コード例 #20
0
# -*- coding: utf-8 -*-
"""
Created on Thu Jun 09 10:51:15 2016

@author: wisp10
"""

from LabWidgets.Utilities import compileUi
compileUi('WaterLeakUi')
import WaterLeakUi as ui

from PyQt4.QtGui import QWidget, QListWidgetItem
from PyQt4.QtCore import QTimer, Qt, QSettings, QString
from GmailDetector import sendGmail

import DAQ.PyDaqMx as daq

import time
import numpy as np


class WaterLeakWidget(QWidget, ui.Ui_Form):
    def __init__(self, parent=None):
        super(WaterLeakWidget, self).__init__(parent)
        self.setupUi(self)
        self.testPb.clicked.connect(self.sendTestAlert)
        self.armPb.toggled.connect(self.updateArmedText)
        self.addEmailPb.clicked.connect(self.addEmail)
        self.deleteEmailPb.clicked.connect(self.deleteEmail)
        self.restoreSettings()
        timer = QTimer()
コード例 #21
0
ファイル: IvCurveDaq.py プロジェクト: AvirupRoy/research
Record TES I-V curves using a single DAQ device with AO and AI.
Produces triangular sweeps (up and down) and records data to HDF5 file.
New code started at Tsinghua October/November 2016

# v0.3: Fixed decimation to be zero_phase
# v0.4: Introduced AuxAoRamping, even between sweeps
@author: Felix Jaeckel <*****@*****.**>
"""

OrganizationName = 'McCammon Astrophysics'
OrganizationDomain = 'wisp.physics.wisc.edu'
ApplicationName = 'IvCurveDaq'
Version = '0.4'

from LabWidgets.Utilities import compileUi, saveWidgetToSettings, restoreWidgetFromSettings
compileUi('IvCurveDaqUi')
import IvCurveDaqUi as ui
from PyQt4.QtGui import QWidget, QMessageBox, qApp
from PyQt4.QtCore import QThread, QSettings, pyqtSignal, QTimer
#from MeasurementScripts.NoiseVsBiasAndTemperature import Squid
from OpenSQUID.OpenSquidRemote import OpenSquidRemote, Pfl102Remote
from Utility.HkLogger import HkLogger

import DAQ.PyDaqMx as daq
import time
import numpy as np
#import scipy.signal import decimate
from Utility.Decimate import decimate
import pyqtgraph as pg
import traceback
import gc