DAQ+GUI: Work in progress
This commit is contained in:
@@ -9,7 +9,7 @@ from aaredaqlib.coordinate import SmargonCoordinate, Coordinate
|
||||
from aaredaqlib.models import DAQStatusModel, SampleShortInfoList, SampleShortInfo, SampleCameraSettings, \
|
||||
AutofocusSettings
|
||||
from aaredaqlib.raster_grid import RasterGridRequest, CompletedRasterGrid
|
||||
from aaredaqlib.rotation_scan import RotationScanRequest
|
||||
from aaredaqlib.rotation_scan import RotationScanRequest, CompletedRotationScan
|
||||
|
||||
SPREADHSEET_FREQUENCY = 25 # Every 5 seconds
|
||||
|
||||
@@ -22,7 +22,7 @@ class DAQWorker(QObject):
|
||||
automated_scan_done = Signal(int, bool) # sample ID, success
|
||||
run_number_incremented = Signal()
|
||||
raster_scan_completed = Signal(CompletedRasterGrid)
|
||||
standard_scan_completed = Signal(str)
|
||||
standard_scan_completed = Signal(CompletedRotationScan)
|
||||
|
||||
def __init__(self, base_url: str | None, token: str, parent=None):
|
||||
super().__init__(parent)
|
||||
@@ -195,18 +195,25 @@ class DAQWorker(QObject):
|
||||
def move_smargon(self, coord: SmargonCoordinate):
|
||||
self.generic_put("beamline/smargon", coord.model_dump_json())
|
||||
|
||||
def handle_rotation_scan_response(self, reply: QNetworkReply):
|
||||
try:
|
||||
response_data = self.handle_response(reply)
|
||||
parsed_response = CompletedRotationScan.model_validate_json(response_data)
|
||||
self.standard_scan_completed.emit(parsed_response)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
self.http_error.emit(str(e))
|
||||
|
||||
@Slot(RotationScanRequest)
|
||||
def standard_scan(self, r: RotationScanRequest):
|
||||
self.run_number_incremented.emit()
|
||||
self.generic_post("scan/rotation", r.model_dump_json())
|
||||
|
||||
request = QNetworkRequest(QUrl(f"{self.__base_url}/scan/rotation/result"))
|
||||
request = QNetworkRequest(QUrl(f"{self.__base_url}/scan/rotation"))
|
||||
request.setRawHeader(b"Authorization", f"Bearer {self.__token}".encode("utf-8"))
|
||||
request.setRawHeader(b"Content-Type", b"application/json")
|
||||
body = r.model_dump_json()
|
||||
reply = self.__net_manager.post(request, QByteArray(body.encode("utf-8")))
|
||||
if r.file_prefix is not None:
|
||||
reply.finished.connect(lambda: self.standard_scan_completed.emit(r.file_prefix))
|
||||
reply.finished.connect(lambda: self.handle_rotation_scan_response(reply))
|
||||
|
||||
def handle_raster_scan_response(self, reply: QNetworkReply):
|
||||
try:
|
||||
@@ -252,10 +259,10 @@ class DAQWorker(QObject):
|
||||
@Slot()
|
||||
def load_spreadsheet(self):
|
||||
if self.__base_url is None:
|
||||
print(f"GET /tell/spreadsheet")
|
||||
print(f"GET /sample/spreadsheet")
|
||||
return
|
||||
|
||||
request = QNetworkRequest(QUrl(f"{self.__base_url}/tell/spreadsheet"))
|
||||
request = QNetworkRequest(QUrl(f"{self.__base_url}/sample/spreadsheet"))
|
||||
request.setRawHeader(b"Authorization", f"Bearer {self.__token}".encode("utf-8"))
|
||||
reply = self.__net_manager.get(request)
|
||||
reply.finished.connect(lambda: self.handle_spreadsheet_response(reply))
|
||||
@@ -318,12 +325,20 @@ class DAQWorker(QObject):
|
||||
|
||||
@Slot()
|
||||
def unmount(self):
|
||||
self.generic_post("tell/unmount")
|
||||
self.generic_post("sample/unmount")
|
||||
|
||||
@Slot(SampleShortInfo)
|
||||
def mount(self, s: SampleShortInfo):
|
||||
self.generic_post(f"tell/mount?dbid={s.db_id}")
|
||||
self.generic_post(f"sample/mount?dbid={s.db_id}")
|
||||
|
||||
@Slot(SampleShortInfo)
|
||||
def sample_manual(self, s: SampleShortInfo):
|
||||
self.generic_post(f"sample/manual", s.model_dump_json())
|
||||
|
||||
@Slot()
|
||||
def sample_clear(self):
|
||||
self.generic_post("sample/clear")
|
||||
|
||||
@Slot()
|
||||
def cancel(self):
|
||||
self.generic_post("scan/cancel")
|
||||
self.generic_post("scan/cancel")
|
||||
|
||||
Reference in New Issue
Block a user