continue sample transfer

This commit is contained in:
Holler Mirko
2024-11-05 15:06:35 +01:00
committed by wakonig_k
parent 55f7015834
commit 9652545440
@@ -390,143 +390,98 @@ class OMNYSampleTransferMixin:
if self._otransfer_mode_query():
raise OMNYTransferError("System is in transfer mode.")
def otransfer_park_slot(self,slot_number:int):
#todo
#global _otransfer_shuttle_was_aligned
#_otransfer_shuttle_was_aligned=0
if slot_number < 2 or slot_number > 6:
raise OMNYTransferError(f"Invalid slot number {slot_number} specified. Valid numbers range from 2 to 6.")
if slot_number == 2:
self._oparkz_drive_and_check(-0.9-29*3-42-.05)
elif slot_number == 3:
self._oparkz_drive_and_check(-0.9-29*3)
elif slot_number == 4:
self._oparkz_drive_and_check(-0.9-29*2)
elif slot_number == 5:
self._oparkz_drive_and_check(-0.9-29)
elif slot_number == 6:
self._oparkz_drive_and_check(-0.9)
def otransfer_park_slot '{
if ($# != 1 ) {
printf("Wrong number of arguments. otransfer_park_slot <slot>\n")
exit
}
def otransfer_park_loadlock_slot(self,slot_number:int):
if slot_number < 2 or slot_number > 6:
raise OMNYTransferError(f"Invalid slot number {slot_number} specified. Valid numbers range from 2 to 6.")
#if the valve of the loadlock is not closed, ask before movement
#todo if(epics_get("XOMNY-ES1-LL1VG1:POSITION")!="CLOSED") {
user_input = input("Please confirm that the leica transfer is in back position [y/n].")
if user_input != "y":
raise OMNYTransferError
else:
self._oparkz_leica_slot(slot_number)
_oparkz_slot($1)
}'
def _oparkz_leica_slot(self, slot_number: int):
if slot_number < 2 or slot_number > 6:
raise OMNYTransferError(f"Invalid slot number {slot_number} specified. Valid numbers range from 2 to 6.")
if slot_number == 2:
self._oparkz_drive_and_check(-6-29*3-42-.05)
elif slot_number == 3:
self._oparkz_drive_and_check(-6-29*3)
elif slot_number == 4:
self._oparkz_drive_and_check(-6-29*2)
elif slot_number == 5:
self._oparkz_drive_and_check(-6-29)
elif slot_number == 6:
self._oparkz_drive_and_check(-6)
def otransfer_park_loadlock_slot '{
if ($# != 1 ) {
printf("Wrong number of arguments. otransfer_park_loadlock_slot <slot>\n")
exit
}
#if the valve of the loadlock is not closed, ask before movement
if(epics_get("XOMNY-ES1-LL1VG1:POSITION")!="CLOSED") {
printf("Please confirm that the leica transfer is in back position.")
if(!yesno(1))
exit
}
def _oparkz_drive_and_check(self, targetpos):
oparkz_current = dev.oparkz.get().readback
if np.fabs(oparkz_current-targetpos)>=0.05:
self._otransfer_mode_ensurenot()
#make sure shield closed
self._otransfer_ensure_shuttle_closed()
self._otransfer_shuttle_aligner_down()
umv(dev.oparkz, targetpos)
_oparkz_leica_slot($1)
}'
def _oparkz_check(self, targetpos) -> bool:
oparkz_current = dev.oparkz.get().readback
if np.fabs(oparkz_current-targetpos)<0.05:
return True
else:
return False
def _oparkz_drive_and_check(targetpos) '{
if (fabs(A[oparkz]-targetpos)>=0.05)
{
_otransfer_mode_ensurenot
#make sure shield closed
if (!_ogalil_low_limit_set(1,6))
{
_ogalil_drive_to_limit(1,6,0)
}
if (!_ogalil_low_limit_set(1,6))
{
exit
}
_otransfer_shuttle_aligner_down
umv oparkz targetpos
}
}'
def _oparkz_check(targetpos) '{
if (fabs(A[oparkz]-targetpos)<0.05)
return(1)
else
return(0)
}'
def _oparkz_slot_check() '{
local parkingposition
parkingposition=10
if(_oparkz_check(-0.9))
parkingposition=6
if(_oparkz_check(-0.9-29))
parkingposition=5
if(_oparkz_check(-0.9-29*2))
parkingposition=4
if(_oparkz_check(-0.9-29*3))
parkingposition=3
if(_oparkz_check(-0.9-29*3-42-.05))
parkingposition=2
def _oparkz_slot_check(self):
parkingposition=10
if self._oparkz_check(-0.9):
parkingposition=6
elif self._oparkz_check(-0.9-29):
parkingposition=5
elif self._oparkz_check(-0.9-29*2):
parkingposition=4
elif self._oparkz_check(-0.9-29*3):
parkingposition=3
elif self._oparkz_check(-0.9-29*3-42-.05):
parkingposition=2
if (parkingposition == 10) {
printf("Oparkz is not in a parking position.\n")
}
else {
printf("Active parkting position: %d\n", parkingposition)
}
return(parkingposition)
}'
if parkingposition == 10:
print("Oparkz is not in a parking position.")
else:
print(f"Active parkting position: {parkingposition}")
return parkingposition
def _oparkz_slot(slot_number) '{
global _otransfer_shuttle_was_aligned
_otransfer_shuttle_was_aligned=0
if(slot_number == 2)
_oparkz_drive_and_check(-0.9-29*3-42-.05)
if(slot_number == 3)
_oparkz_drive_and_check(-0.9-29*3)
if(slot_number == 4)
_oparkz_drive_and_check(-0.9-29*2)
if(slot_number == 5)
_oparkz_drive_and_check(-0.9-29)
if(slot_number == 6)
_oparkz_drive_and_check(-0.9)
if(slot_number < 2 || slot_number >6) {
printf("Invalid slot number.\n")
exit
}
}'
def _oparkz_drive_and_check_leica(self, targetpos):
oparkz_current = dev.oparkz.get().readback
if (oparkz_current-targetpos)>=0.05:
self._otransfer_mode_ensurenot()
#make sure shuttle closed
self._otransfer_ensure_shuttle_closed()
self._otransfer_shuttle_aligner_down()
umv(dev.oparkz, targetpos)
def _oparkz_leica_slot(slot_number) '{
if(slot_number == 2)
_oparkz_drive_and_check(-6-29*3-42-.05)
if(slot_number == 3)
_oparkz_drive_and_check(-6-29*3)
if(slot_number == 4)
_oparkz_drive_and_check(-6-29*2)
if(slot_number == 5)
_oparkz_drive_and_check(-6-29)
if(slot_number == 6)
_oparkz_drive_and_check(-6)
if(slot_number < 2 || slot_number >6) {
printf("Invalid slot number.\n")
exit
}
}'
def _oparkz_drive_and_check_leica(targetpos) '{
if (fabs(A[oparkz]-targetpos)>=0.05)
{
_otransfer_mode_ensurenot
#make sure shuttle closed
if(!_ogalil_low_limit_set(1,6))
{
_ogalil_drive_to_limit(1,6,0)
}
if (!_ogalil_low_limit_set(1,6))
{
printf("shuttle did not close. exiting.\n")
exit
}
_otransfer_shuttle_aligner_down
umv oparkz targetpos
# umv oparkz targetpos
}
}'
#when mounting a sample, this variable is defined at the release position of the sample
def _otransfer_get_release_position() '{
local rel_pos
#when mounting a sample, this variable is defined at the release position of the sample
def _otransfer_get_release_position(self):
_ogalil_put(0,"MGrelpos")
rel_pos=_ogalil_get(0)
return(rel_pos)