epics-modules / ip

APS BCDA synApps module: ip
http://epics-modules.github.io/ip/
Other
3 stars 9 forks source link

Where should streamDevice examples reside? #17

Closed kmpeters closed 4 years ago

kmpeters commented 5 years ago

Where should examples for how to use the streamDevice support in the ip module reside? streamDevice isn't required to build ip, so the example IOC doesn't currently include streamDevice support.

timmmooney commented 5 years ago

I think it's ok to have examples that can't run.

Tim Mooney (mooney@anl.gov) (630)252-5417 Beamline Controls Group (www.aps.anl.gov) Advanced Photon Source, Argonne National Lab


From: Kevin Peterson notifications@github.com Sent: Monday, May 20, 2019 9:16 AM To: epics-modules/ip Cc: Subscribed Subject: [epics-modules/ip] Where should streamDevice examples reside? (#17)

Where should examples for how to use the streamDevice support in the ip module reside? streamDevice isn't required to build ip, so the example IOC doesn't currently include streamDevice support.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/epics-modules/ip/issues/17?email_source=notifications&email_token=ABT6PF2NYQ7JOQBF4464VSTPWKXDNA5CNFSM4HOCNKS2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GUXTCXQ, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABT6PF5XCYHYWVKMYT6ZAVLPWKXDNANCNFSM4HOCNKSQ.

anjohnson commented 5 years ago

I suspect @timmmooney 's suggestion might cause some user confusion and generate requests for help...

You could consider publishing a StreamDevice example as a makeBaseApp template, which could live inside the ip module without the module itself having to build against StreamDevice. I would like to encourage the use of makeBaseApp templates as a way to give users the ability to create IOC applications for a particular device or module, I'm always recommending that people instantiate the makeBaseApp example template to see how to do common build operations.

synApps could even collect all its example templates into one module (xxx?) and provide a wrapper script that calls makeBaseApp.pl with the necessary paths and arguments (use -T <top> to set the template location to somewhere other than Base itself).

kmpeters commented 5 years ago

I'm referring to specific examples like this substitutions file that loads all the records needed to use JenaNV40_genTweak.adl:

file "$(IP)/ipApp/Db/JenaNV40.db"
{
pattern
{P,         C,      PORT}
{xxx:, jena1:, serial1}
}

file "$(STD)/stdApp/Db/genTweak.db"
{
pattern
{P,       N, PREC,           PV}
{xxx:, jena1:, 4, xxx:jena1:val}
}

Should this reside in https://github.com/epics-modules/ip/tree/master/iocs/ipExample/iocBoot/iocIpExample?