From 2062b4ba1d4723e4b48b3265c1a9e56485d9da7a Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Thu, 5 Dec 2024 13:50:49 +0100 Subject: [PATCH] Memory of last datamatrix in case puck detection is flickering during load. --- src/main/java/ch/psi/mxsc/Controller.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/ch/psi/mxsc/Controller.java b/src/main/java/ch/psi/mxsc/Controller.java index 6059de3..d8b836e 100644 --- a/src/main/java/ch/psi/mxsc/Controller.java +++ b/src/main/java/ch/psi/mxsc/Controller.java @@ -701,6 +701,9 @@ public class Controller { if (isDoorClosed()){ return; } + insertedPuckDatamatrix = null; + removedPuck = null; + } else { Controller.getInstance().setLaserPos((Puck)null); } @@ -781,6 +784,7 @@ public class Controller { System.out.println("Detected Puck: " + datamatrix); onPuckScanned(datamatrix); } + removedPuck = null; } public void onSampleBarcode(String datamatrix) { @@ -808,19 +812,28 @@ public class Controller { currentDetection = detection; } } + String insertedPuckDatamatrix; + Puck removedPuck; public void onPuckInserted(Puck puck) { playSound("mounted"); String datamatrix = getMainFrame().getPuckDatamatrix(); - logPuckDetectionChange(puck, true); + logPuckDetectionChange(puck, true); onPuckScanned(null); - onPuckMounted(puck, datamatrix); + if ((datamatrix==null) || (datamatrix.isBlank())){ + if (puck == removedPuck){ + datamatrix = insertedPuckDatamatrix; + } + } + onPuckMounted(puck, datamatrix); + insertedPuckDatamatrix = datamatrix; + removedPuck = null; } public void onPuckRemoved(Puck puck) { playSound("unmounted"); logPuckDetectionChange(puck, false); - onPuckUnmounted(puck); + onPuckUnmounted(puck); } void linkPuckDatamatrix(Puck puck, String datamatrix, boolean showMessage) { @@ -1021,6 +1034,7 @@ public class Controller { } else { linkPuckDatamatrix(puck, null, true); } + removedPuck = puck; } }