EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Fwd: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database]
From: Marty Kraimer <[email protected]>
To: [email protected]
Date: Thu, 29 Sep 2005 10:34:47 -0500

--- Begin Message ---
Subject: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database
From: Ralph Lange <[email protected]>
To: Marty Kraimer <[email protected]>, Andrew Johnson <[email protected]>
Date: Thu, 22 Sep 2005 14:32:35 +0200
Wow. That was fast.

Let's see....

Here's some things that I found on a first sweep - mostly minor misspellings and other small formal suggestions:
  • Title:
    • While OpenOffice looks good, my PowerPoint screws up font sizes. Could be my installation.
  • Slide 2:
    • incoherent capitalization of heading and major points
    • line 6: Arrays - plural?
  • Slide 3:
    • line 4: "8 bit byte" -> redundant (a byte is defined to contain 8 bit)
    • line 4: spelling (converrsion -> conversion)
    • line 6: remove trailing dot
    • line 9: better: Multidimensional arrays may be restricted
    • line 11: remove trailing colon
  • Slide 4:
    • Left column: spacing (before "link" keyword)
    • Right column: PowerPoint screws up fonts
  • Slide 5:
    • Left column: spacing (line 5, after "field" keyword)
    • line 17: spelling (an -> a)
  • Slide 6:
    • Left column: spacing (line 7, after comma)
    • Right column: spacing (line 4, after first comma)
  • Slide 7:
    • Major points: first uses plural, the others singular
    • Major points: spacing (first two link types have a space within their name, the other two don't)
    • Left column: spacing (line 5, missing space after dash)
      both major points use the wrong dash (too short, compare with slide 8)
  • Slide 9:
    • line 4: spelling (positionL -> position:)
    • line 10: verb form (singular) does not match subject (plural)
  • Slide 10:
    • Heading: capitalization
    • line 3: capitalization (the field in V3 is called FLNK)
    • line 7: spacing (before "link" keyword)
  • Slide 11
    • Heading: capitalization
    • line 1: better: "incA, incB and getSample"
    • lines 5-7: spacing around equal signs
    • line 6/12: Logical: line 12 says incB processed in parallel with incA, while parallel has been set to "false" in line 6.
  • Slide 12:
    • line 7: spacing (too much space before "so")
    • line 13: Logical: one of the record processing states is mentioned without that whole new feature (the record processing state machine) being mentioned or shown before
  • Slide 14:
    • Heading: capitalization
  • Slide 16:
    • Heading: capitalization
    • Line 4: "DatabaseCommon"? That term has not been explained. Do you eventually mean "RecordCommon"?
    • Lines 6-8: remove trailing dots
    • Line 10: remove trailing dot
  • Slide 17:
    • Heading: capitalization
    • Line 3: spelling (insignificent -> insignificant)
    • Line 6: Capitalization (Record/Device Support)
    • Line 6: spelling (strorage -> storage)
    • Line 8: Capitalization (Record/Device Support)
    • Line 9: spacing (remove space between "data" and "base")
    • Line 13: add comma after "Access"
    • Line 14: Capitalization (Record/Device Support)
    • Line 14: remove trailing dot
  • Slide 18:
    • Line 3: Capitalization (Context -> context)
    • Line 7: Capitalization (Device Support)
    • lines 10, 13: remove trailing dots
What I still find missing is a slide or two about the record processing state machine. And maybe a pointer to the wiki pages that have all the details.

Great stuff!

Ralph


Marty Kraimer wrote:
I am attaching a power point presentation for the EPICS workshop at ICALEPCS.

Marty

--- End Message ---
--- Begin Message ---
Subject: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database
From: Ralph Lange <[email protected]>
To: Marty Kraimer <[email protected]>
Cc: Andrew Johnson <[email protected]>
Date: Fri, 23 Sep 2005 14:40:36 +0200
Marty Kraimer wrote:
          o line 6/12: Logical: line 12 says incB processed in
            parallel with incA, while parallel has been set to "false"
            in line 6.

This is correct. incA has parallel true which means it is OK to start something else. In this case it neans incB.
incB has paralley false which means dont do anthing else until incB completes.
Hm. I understand the mechanism, but I find the syntax, semantics or terms not very comprehensive, if not even misleading.

Your semantics slide says:
Parallel – If yes then this link can be processed in parallel with other links

But looking at your example:

void collectSample={
    processLink=[3] {
        {pvname = “incA”;      parallel=true;  wait=true},
        {pvname = “incB”;      parallel=false; wait=true},
        {pvname = “getSample”; parallel=false; wait=true}
    }
}

I can see that incB has parallel set to false, but will indeed be processed in parallel (with incA).
In other words, using this syntax setting parallel to false will stop the next link from being processed in parallel, not this link. I fear users will keep making mistakes forever because they don't remember if setting parallel changes this or the next link's behaviour.

What about changing the syntax a bit, so that your example reads:

void collectSample={
    processLink=[3] {
        {pvname = “incA”;      wait=no},
        {pvname = “incB”;      wait=completion},
        {pvname = “getSample”; wait=completion}
    }
}

I would find this a lot more obvious - does it collide with the use of the wait keyword in non-process links? Not necessarily, I think.

Well, one could even go one step further and include some functionality of the seq record by allowing numbers:

void collectSample={
    processLink=[3] {
        {pvname = “incA”;      wait=no},
        {pvname = “incB”;      wait=2.5},
        {pvname = “getSample”; wait=completion}
    }
}

which would fire off incA, incB, and then getSample after waiting for 2.5 seconds, regardless of incB's process state, finally wait for getSample to complete.

What do you think?

Ralph


--- End Message ---
--- Begin Message ---
Subject: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database
From: Marty Kraimer <[email protected]>
To: Ralph Lange <[email protected]>
Cc: Andrew Johnson <[email protected]>, Marty Kraimer <[email protected]>
Date: Fri, 23 Sep 2005 09:55:58 -0500
Ralph Lange wrote:

Marty Kraimer wrote:

o line 6/12: Logical: line 12 says incB processed in
parallel with incA, while parallel has been set to "false"
in line 6.

This is correct. incA has parallel true which means it is OK to start something else. In this case it neans incB. incB has paralley false which means dont do anthing else until incB completes.

Hm. I understand the mechanism, but I find the syntax, semantics or terms not very comprehensive, if not even misleading.

Your semantics slide says:
Parallel – If yes then this link can be processed in parallel with other links

But looking at your example:

void collectSample={
processLink=[3] {
{pvname = “incA”; parallel=true; wait=true},
{pvname = “incB”; parallel=false; wait=true},
{pvname = “getSample”; parallel=false; wait=true}
}
}


I agree that parallel is confusing.

I can see that incB has parallel set to false, but will indeed be processed in parallel (with incA). In other words, using this syntax setting parallel to false will stop the /next/ link from being processed in parallel, not this link. I fear users will keep making mistakes forever because they don't remember if setting parallel changes this or the next link's behaviour.

What about changing the syntax a bit, so that your example reads:

void collectSample={
processLink=[3] {
{pvname = “incA”; wait=no},
{pvname = “incB”; wait=completion},
{pvname = “getSample”; wait=completion}
}
}


See below. The "slight" syntax change does require some changes

I would find this a lot more obvious - does it collide with the use of the wait keyword in non-process links? Not necessarily, I think.

Well, one could even go one step further and include some functionality of the seq record by allowing numbers:

void collectSample={
processLink=[3] {
{pvname = “incA”; wait=no},
{pvname = “incB”; wait=2.5},
{pvname = “getSample”; wait=completion}
}
}


This would lead to MAJOR problems. What is the type for wait? But see below

which would fire off incA, incB, and then getSample after waiting for 2.5 seconds, regardless of incB's process state, finally wait for getSample to complete.

What do you think?

http://www.aps.anl.gov/epics/wiki/index.php/V4_DB_RecordCommon
defines MonitorLink, InputLink, OutputLink, ProcessLink.

Lets just look at ProcessLink since InputLink and OutputLink are similar since they all have a field parallel

struct(ProcessLink) {
field(pvname,string) { link}
field(parallel,bool)
field(wait,bool)
}


Perhaps this should be changed to

menu(LinkWait) {
choice(linkWaitNo,"no")
choice(linkWaitYes,"yes")
choice(linkWaitBlock,"block")
}

struct(ProcessLink) {
field(pvname,string) { link}
field(wait,menu(LinkWait))
field(timeout,double64)
}

Then

void collectSample={
processLink=[3] {
{pvname = “incA”; wait=yes,timeout=2.5},
{pvname = “incB”; wait=block,timeout=2.5},
{pvname = “getSample”; wait=block,timeout=5.0}
}
}


Thoughts?

Marty

--- End Message ---

Replies:
Re: [Fwd: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database] Kay-Uwe Kasemir

Navigate by Date:
Prev: Re: strings Kay-Uwe Kasemir
Next: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database Ralph Lange
Index: 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: meeting on Thursday Matthias Clausen
Next: Re: [Fwd: Re: ICALEPCS 2005: EPICS workshop: EPICS V4 Runtime Database] Kay-Uwe Kasemir
Index: 2002  2003  2004  <20052006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·