58 lines
1.8 KiB
Python
Executable File
58 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import sys
|
|
import argparse
|
|
from lasp.lasp_rtapsdialog import RealTimeAPSDialog
|
|
from lasp.lasp_avstream import AvStream
|
|
from lasp.device.lasp_daqconfig import default_soundcard, roga_plugndaq, umik
|
|
from lasp.lasp_gui_tools import Branding, warningdialog
|
|
from PySide import QtGui
|
|
|
|
|
|
def main():
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description='Run real time power spectra monitor')
|
|
device_help = 'Device to record from'
|
|
parser.add_argument('-d', '--device', help=device_help, type=str,
|
|
choices=['roga', 'umik', 'default'], default='roga')
|
|
|
|
args = parser.parse_args()
|
|
device_str = args.device
|
|
if 'roga' == device_str:
|
|
device = roga_plugndaq
|
|
elif 'default' == device_str:
|
|
device = default_soundcard
|
|
elif 'umik' == device_str:
|
|
device = umik
|
|
|
|
app = QtGui.QApplication(sys.argv) # A new instance of QApplication
|
|
app.setFont(Branding.font())
|
|
|
|
# stream = AvStream(default_soundcard)
|
|
stream = AvStream(device)
|
|
mw = RealTimeAPSDialog(None, stream)
|
|
|
|
# Install exception hook to catch exceptions
|
|
def excepthook(cls, exception, traceback):
|
|
"""
|
|
This exception hook is installed as the global exception hook. Shows a
|
|
simple QMessageBox in case of an exception that is not caught.
|
|
"""
|
|
if __debug__:
|
|
import traceback as tb
|
|
tbtxt = ''.join(tb.format_tb(sys.last_traceback))
|
|
warningdialog(mw, str(exception), tbtxt)
|
|
else:
|
|
warningdialog(mw, str(exception))
|
|
|
|
# Set custom exception hook that catches all exceptions
|
|
sys.excepthook = excepthook
|
|
stream.start()
|
|
mw.show() # Show the window
|
|
app.exec_() # and start the event loop
|
|
stream.stop()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() # run the main function
|