EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  <19961997  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  Index 1994  1995  <19961997  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 
<== Date ==> <== Thread ==>

Subject: Re: Bug in sequencer?
From: [email protected] (Rozelle Wright)
To: [email protected]
Cc: [email protected]
Date: Wed, 18 Dec 96 12:15:53 MST
> From [email protected] Wed Dec 18 11:14:27 1996
> Return-Path: <[email protected]>
> Date: Wed, 18 Dec 1996 20:12:49 +0200 (EET)
> Subject: Re: Bug in sequencer?
> To: [email protected]
> In-Reply-To: <[email protected]>
> Mime-Version: 1.0
> Content-Type> : > TEXT/plain> ; > CHARSET=US-ASCII> 
> Content-Length: 1478
> X-Lines: 77
> 
> 
> On 18 Dec, Rozelle Wright wrote:
> > 
> > ...I would like to have a sample of the sequence 
> > that you used as your example.  Could you mail it 
> > to me please...
> >
> 
> /******************** Code starts here **********************/ 
> program snctest
> float v;
> assign v to "npat:xxxExample";
> monitor v;
> 
> program snctest
> float v;
> assign v to "npat:xxxExample";
> monitor v;
> 
> ss ss1
> {
> 	state low
> 	{
> 	    when(v>5.0)
> 	    {
> 		printf("changing to high\n");
> 	    } state high
> 	    when(delay(.1)) 
> 	    {
> 	    } state low
> 	}
> 	state high
> 	{
> 	    when(v<=5.0)
> 	    {
> 		printf("changing to low\n");
> 	    } state low
> 	    when(delay(.1))
> 	    {
> 	    } state high
> 	}
> }
> /******************** Code ends here *****************************/
> 
> When I translate the sequence program using the "buggy" snc I get 
> the following c-code as result:
> 
> /* @(#)SNC Version 1.9.2: Tue Dec 17 16:09:27 EET 1996: sncExample.st */
>                 .
>                 .
>                 .              
> /* State Set Blocks */
> static struct seqSS seqSS[NUM_SS] = {
> 	/* State set "ss1"*/
> 	/* ss name */            "ss1",
> 	/* ptr to state block */ state_ss1ss1%, 	
> 	/* number of states */   2,
> 
> 	/* error state */        -1,
> };
>                .
>                .
>                .
>                
> Obviously the correct value for the `ptr to state block' would be
> just "state_ss1" and not "state_ss1ss1%"
> 
> 
> Sincerely,
>  
> Nick Patavalis  
> ([email protected]) 
> Inst. for Accelerating Systems and Apps. (IASA) 
> Athens, 18 Dec 1996.
>  
> 
> 
> 
Hi Nick,
Thanks for sending the example.  I was trying to figure out
why our testing didn't show this bug.  It's because
the printf generated by the compilers we use on solaris
and sunos4 throw away % unless it is followed by another %.
So printf("%,") generates ,
We have fixed it and Jeff Hill has checked the code in to R3.13 at APS.

It's really good to have this code tested on other operating
systems.
Rozelle


Navigate by Date:
Prev: Re: Bug in sequencer? William Lupton
Next: VME LVDT drivers Alicia Hofler
Index: 1994  1995  <19961997  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 
Navigate by Thread:
Prev: Re: Bug in sequencer? William Lupton
Next: Re: Bug in sequencer? Rozelle Wright
Index: 1994  1995  <19961997  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 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·