From 14912e25ccbf3f05155f1dbcfc50251f44c57b96 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Wed, 26 Oct 1994 19:30:49 +0000 Subject: [PATCH] Changed per Ned's request. Still beta version --- src/rec/recScan.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/rec/recScan.c b/src/rec/recScan.c index f8dab3402..4a948fa33 100644 --- a/src/rec/recScan.c +++ b/src/rec/recScan.c @@ -40,9 +40,12 @@ * .06 10-03-94 nda added code for enumerated string .CMND. Changed * .EXSC to a SHORT in record definition. Added VERSION * for .VERS field (1.06) to keep track of version. + * .07 10-21-94 nda changed linear scan parameter algorithms so changing + * start/end modifies step/width unless frozen. This + * seems more intuitive. */ -#define VERSION 1.06 +#define VERSION 1.07 @@ -1287,18 +1290,8 @@ static void adjLinParms(paddr) switch(special_type) { case(SPC_SC_S): /* start position changed */ - /* if end/center/width are not frozen, change them */ - if(!pParms->p_fe && !pParms->p_fc && !pParms->p_fw) { - pParms->p_ep = pParms->p_sp + - ((pscan->npts - 1) * pParms->p_si); - db_post_events(pscan,&pParms->p_ep,DBE_VALUE); - pParms->p_cp = (pParms->p_ep + pParms->p_sp)/2; - db_post_events(pscan,&pParms->p_cp,DBE_VALUE); - pParms->p_wd = (pParms->p_ep - pParms->p_sp); - db_post_events(pscan,&pParms->p_wd,DBE_VALUE); - return; /* if step increment/center/width are not frozen, change them */ - } else if(!pParms->p_fi && !pParms->p_fc && !pParms->p_fw) { + if(!pParms->p_fi && !pParms->p_fc && !pParms->p_fw) { pParms->p_si = (pParms->p_ep - pParms->p_sp)/(pscan->npts - 1); db_post_events(pscan,&pParms->p_si,DBE_VALUE); pParms->p_cp = (pParms->p_ep + pParms->p_sp)/2; @@ -1306,8 +1299,16 @@ static void adjLinParms(paddr) pParms->p_wd = (pParms->p_ep - pParms->p_sp); db_post_events(pscan,&pParms->p_wd,DBE_VALUE); return; + /* if end/center are not frozen, change them */ + } else if(!pParms->p_fe && !pParms->p_fc) { + pParms->p_ep = pParms->p_sp + + ((pscan->npts - 1) * pParms->p_si); + db_post_events(pscan,&pParms->p_ep,DBE_VALUE); + pParms->p_cp = (pParms->p_ep + pParms->p_sp)/2; + db_post_events(pscan,&pParms->p_cp,DBE_VALUE); + return; /* if step increment/end/width are not frozen, change them */ - } else if(!pParms->p_fi && !pParms->p_fc && !pParms->p_fw) { + } else if(!pParms->p_fi && !pParms->p_fe && !pParms->p_fw) { pParms->p_wd = (pParms->p_cp - pParms->p_sp) * 2; db_post_events(pscan,&pParms->p_wd,DBE_VALUE); pParms->p_si = pParms->p_wd/(pscan->npts - 1); @@ -1422,19 +1423,19 @@ static void adjLinParms(paddr) break; case(SPC_SC_E): /* end position changed */ - /* if start/center/width are not frozen, change them */ - if(!pParms->p_fs && !pParms->p_fc && !pParms->p_fw) { - pParms->p_sp = pParms->p_ep - ((pscan->npts - 1) * pParms->p_si); - db_post_events(pscan,&pParms->p_sp,DBE_VALUE); + /* if step increment/center/width are not frozen, change them */ + if(!pParms->p_fi && !pParms->p_fc && !pParms->p_fw) { + pParms->p_si = (pParms->p_ep - pParms->p_sp)/(pscan->npts - 1); + db_post_events(pscan,&pParms->p_si,DBE_VALUE); pParms->p_cp = (pParms->p_ep + pParms->p_sp)/2; db_post_events(pscan,&pParms->p_cp,DBE_VALUE); pParms->p_wd = (pParms->p_ep - pParms->p_sp); db_post_events(pscan,&pParms->p_wd,DBE_VALUE); return; - /* if step increment/center/width are not frozen, change them */ - } else if(!pParms->p_fi && !pParms->p_fc && !pParms->p_fw) { - pParms->p_si = (pParms->p_ep - pParms->p_sp)/(pscan->npts - 1); - db_post_events(pscan,&pParms->p_si,DBE_VALUE); + /* if start/center/width are not frozen, change them */ + } else if(!pParms->p_fs && !pParms->p_fc && !pParms->p_fw) { + pParms->p_sp = pParms->p_ep - ((pscan->npts - 1) * pParms->p_si); + db_post_events(pscan,&pParms->p_sp,DBE_VALUE); pParms->p_cp = (pParms->p_ep + pParms->p_sp)/2; db_post_events(pscan,&pParms->p_cp,DBE_VALUE); pParms->p_wd = (pParms->p_ep - pParms->p_sp);