1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 <2006> 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 <2006> 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: scaler record medm problems |
From: | Kate Feng <[email protected]> |
To: | Mark Rivers <[email protected]> |
Cc: | [email protected] |
Date: | Fri, 31 Mar 2006 07:12:27 -0500 |
Mark Rivers wrote:They probably fixed it in 2.4.21 of my Linux system, where the scaler CNTOn the older Linux system the scaler CNT widget behaves badly, as described previously. This version is: corvette> more /proc/version Linux version 2.4.20-20.9smp ([email protected]) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 SMP Mon Aug 18 11:32:15 EDT 2003 On a newer Linux system the scaler CNT widget behaves fine. This version is: vincent> more /proc/version Linux version 2.6.9-22.0.1.EL ([email protected]) (gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.1)) #1 Thu Oct 27 10:38:16 CDT 2005 Since I am running exactly the same medm binary on exactly the same X server, the only difference is the run-time libraries that are present on the Linux system that is running medm. There must be a problem with the X libraries on the old Redhat 2.4.20 system. widget behaves fine. This version is feng> more /proc/version Linux version 2.4.21-15.0.3.EL ([email protected]) (gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-37)) #1 Tue Jun 29 18:17:52 EDT 2004 Agree!I conclude that there is no problem with the scaler record or with medm. Kate Mark-----Original Message----- From: Mark Rivers Sent: Thursday, March 30, 2006 4:55 PM To: 'Tim Mooney' Cc: 'Kenneth Evans, Jr.'; 'Jeff Hill'; 'Dirk Zimoch'; 'Leicester, PJ (Pete)'; 'Ralph Lange (BESSY)'; 'Ned Arnold'; 'Andrew Johnson' Subject: scaler record medm problems Folks, I have applied this fix to the scaler record. I used camonitor on the CNT field, and indeed it fixes the problem of two monitors being posted for CNT=Count when acquisition starts. However it does NOT fix the problem with medm on Linux. medm running on Windows continues to work fine, medm running on Linux (but displaying on Windows or Linux) does not work. The Count/Done choice button gets into a weird state with both states selected, not sending events, etc. So the question is why is that particular choice button messing up? - It does not have to do with 2 monitors being posted quickly on the PV it controls. - It should not have to do with the caPutCallback behavior of the scaler record, because medm does not use caPutCallback, right? Any ideas what to look for next? Mark-----Original Message----- From: Tim Mooney [mailto:[email protected]] Sent: Thursday, March 30, 2006 2:14 PM To: Mark Rivers Cc: Tim Mooney; Kenneth Evans, Jr.; Jeff Hill; Dirk Zimoch; Leicester, PJ (Pete); Ralph Lange (BESSY); Ned Arnold;Andrew JohnsonSubject: Re: gateway enum writes Tim Mooney wrote: > There's an error in the scaler software. It should not be posting CNT > unless it changed CNT. This will take some time to fix thoroughly, but > at least the record should never post CNT = 0 ("Done"), because it never > sets CNT to this value. I've committed this fix to cvs.The other> transition will take some thought, because 1->0 can come from the user > and from device support, and these can race. Oops. This hasn't been true for a long time. I *can* post at the time of change, and I actually committed that bug fix. Here arethe changes:static long process(pscal) ... /* If we're being called as a result of a done-counting interrupt, */ /* (*pdset->done)(card) will return TRUE */ if ((*pdset->done)(card)) { pscal->ss = SCALER_STATE_IDLE; /* Auto-count cycle is not allowed to reset .CNT field. */ if (pscal->us == USER_STATE_COUNTING) { pscal->cnt = 0; + db_post_events(pscal,&(pscal->cnt),DBE_VALUE); pscal->us = USER_STATE_IDLE; justFinishedUserCount = 1; if (pscal->ppn) putNotifyOperation = 1; } } ... if (handled) { pscal->pcnt = pscal->cnt; - Debug(2) "process: posting .CNT field (%d)\n", pscal->cnt);} - db_post_events(pscal,&(pscal->cnt),DBE_VALUE); } } -- Tim Mooney ([email protected]) (630)252-5417 Beamline Controls & Data Acquisition Group Advanced Photon Source, Argonne National Lab |