From 4765b59ee5cf569a6fc88b89d59c5bc9898900bc Mon Sep 17 00:00:00 2001 From: smathis Date: Thu, 15 May 2025 14:56:56 +0200 Subject: [PATCH] Updated dependency turboPmac to 0.15.1 --- src/detectorTowerAngleAxis.h | 2 ++ src/detectorTowerController.cpp | 21 +++++++++++++++++++++ turboPmac | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/detectorTowerAngleAxis.h b/src/detectorTowerAngleAxis.h index 4049f5c..40ec243 100644 --- a/src/detectorTowerAngleAxis.h +++ b/src/detectorTowerAngleAxis.h @@ -98,6 +98,8 @@ class detectorTowerAngleAxis : public turboPmacAxis { * @brief Overwrite the `reset` function so it doesn't do fast polls * afterwards. * + * The + * * @return asynStatus */ asynStatus reset() { return doReset(); } diff --git a/src/detectorTowerController.cpp b/src/detectorTowerController.cpp index 5dc089e..c2a3871 100644 --- a/src/detectorTowerController.cpp +++ b/src/detectorTowerController.cpp @@ -149,6 +149,27 @@ asynStatus detectorTowerController::writeInt32(asynUser *pasynUser, return sAxis->angleAxis()->toggleWorkingChangerState(value); } } + + /* + Due to a bug which is currently not understood, the reset has to be handled + here rather than in sinqController. + */ + if (pasynUser->reason == motorReset_) { + detectorTowerAngleAxis *aAxis = getDetectorTowerAngleAxis(pasynUser); + if (aAxis != nullptr) { + return aAxis->reset(); + } + detectorTowerLiftAxis *lAxis = getDetectorTowerLiftAxis(pasynUser); + if (lAxis != nullptr) { + return lAxis->reset(); + } + detectorTowerSupportAxis *sAxis = + getDetectorTowerSupportAxis(pasynUser); + if (sAxis != nullptr) { + return sAxis->reset(); + } + } + return turboPmacController::writeInt32(pasynUser, value); } diff --git a/turboPmac b/turboPmac index 75292a6..55b523d 160000 --- a/turboPmac +++ b/turboPmac @@ -1 +1 @@ -Subproject commit 75292a6a9c696fbfcb4962281d1a2cf80819c83f +Subproject commit 55b523ddaa2d696f28a35c391ea96d07d82a8d5a