From 74dedd9cd3d694f13fa87e91d810bf8ce92a9c8a Mon Sep 17 00:00:00 2001 From: smathis Date: Thu, 15 May 2025 16:41:51 +0200 Subject: [PATCH] Finished up documentation --- README.md | 6 +- images/CoordinateSystems.odg | Bin 0 -> 11752 bytes images/CoordinateSystems.svg | 447 +++++++++++++++++++++++++ images/PhysicalSetup.odg | Bin 12373 -> 0 bytes images/PhysicalSetup.svg | 569 -------------------------------- src/detectorTowerController.cpp | 7 +- 6 files changed, 456 insertions(+), 573 deletions(-) create mode 100644 images/CoordinateSystems.odg create mode 100644 images/CoordinateSystems.svg delete mode 100644 images/PhysicalSetup.odg delete mode 100644 images/PhysicalSetup.svg diff --git a/README.md b/README.md index 5c83581..9668569 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ ## Overview -![Physical setup](images/PhysicalSetup.svg) +![Coordinate systems](images/CoordinateSystems.svg) This is a driver for the detector tower which is based on the Turbo PMAC driver (https://git.psi.ch/sinq-epics-modules/turboPmac). It consists of the following four objects: - `detectorTowerController`: This is an expanded variant of `turboPmacController` provided by the Turbo PMAC library linked above.It is needed to operate a `detectorTowerAngleAxis`, but it can also be used to operate a "normal" `turboPmacAxis`. -- `detectorTowerAngleAxis`: This is a virtual axis which controls multiple physical motors in order to provide a combined movement. Moving it results in a rotation of the entire beam around the support axis position. -- `detectorTowerLiftAxis`: This is a virtual axis which controls multiple physical motors in order to provide a combined movement. Moving it results in a vertical lift. +- `detectorTowerAngleAxis`: This is a virtual axis which controls multiple physical motors ($x$ and $z$) in order to provide a combined movement. Moving it results in a rotation of the entire beam around the support axis position ($\alpha$). +- `detectorTowerLiftAxis`: This is a virtual axis which controls multiple physical motors in order to provide a combined movement. Moving it results in a vertical lift ($z_{lift}$). - `detectorTowerSupportAxis`: This is an axis at the rotation center of the beam which is part of the combined movements. Its origin can be shifted manually for small adjustments, resulting in a corresponding movement. Other than that, it is not meant to move on its own, hence setting a new value to the `VAL` field of the motor record won't cause it to move. ## User guide diff --git a/images/CoordinateSystems.odg b/images/CoordinateSystems.odg new file mode 100644 index 0000000000000000000000000000000000000000..68549ed4c5f5887b9b8b7dbb9822662c7b80d005 GIT binary patch literal 11752 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 literal 0 HcmV?d00001 diff --git a/images/CoordinateSystems.svg b/images/CoordinateSystems.svg new file mode 100644 index 0000000..96fb935 --- /dev/null +++ b/images/CoordinateSystems.svg @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + α + + + + + + + + + + + + + + zlift + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + z + + + + + + x + + + + + + zsupport + + + + + + + + + + + + + + + + Center of rotation + + + + + + + + \ No newline at end of file diff --git a/images/PhysicalSetup.odg b/images/PhysicalSetup.odg deleted file mode 100644 index 88fd84c829880b4f83bad1e43ff6e05772c6dd23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12373 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - z1 - - - - - - - - - - - - - - - - - - - - - - - - - - z2 - - - - - - - - - - - - - - - - - - - - - - - - - - z3 - - - - - - - - - - - - - - - - - - - - - - - - - - z4 - - - - - - - - - - - - - - - - - - - - - - - - - - z5 - - - - - - - - - - - - - - - - - - - - - - - - - - z6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/detectorTowerController.cpp b/src/detectorTowerController.cpp index c2a3871..fc96c61 100644 --- a/src/detectorTowerController.cpp +++ b/src/detectorTowerController.cpp @@ -152,7 +152,12 @@ asynStatus detectorTowerController::writeInt32(asynUser *pasynUser, /* Due to a bug which is currently not understood, the reset has to be handled - here rather than in sinqController. + here rather than using the default implementation in sinqController. Piping + the motor reset request to sinqController causes segfaults. It might be due + to the fact that the default `reset` implementation of sinqAxis locks the + controller in order to perform some fast polls and that for some reason this + behaviour cannot be overwritten even by providing custom `reset` methods for + all three axes. */ if (pasynUser->reason == motorReset_) { detectorTowerAngleAxis *aAxis = getDetectorTowerAngleAxis(pasynUser);