Presentation is loading. Please wait.

Presentation is loading. Please wait.

SNS Control System Slide 1, 4/19/2002 Converting Applications to R3.14 June 2003,

Similar presentations


Presentation on theme: "SNS Control System Slide 1, 4/19/2002 Converting Applications to R3.14 June 2003,"— Presentation transcript:

1 SNS Control System Slide 1, 4/19/2002 Converting Applications to R3.14 June 2003, Kasemir@lanl.gov

2 SNS Control System Slide 2, 4/19/2002 Basis for this talk l ChannelArchiver  Actually did the conversion to R3.14.1 l EDM  Did 1%, remaining 99% John Sinclair l EtherIP (Allen Bradley Control Logix PLC driver)  Observed Stephanie Allison’s work al distante, she will report details in her own presentation

3 SNS Control System Slide 3, 4/19/2002 Available Information l Application Developers Guide  R3.14.1 includes ‘makeBaseApp’ layout and makefile details l EPICS base/documentation:  BuildingR3.13AppsWithR3.14.html  BuildingR3.13ExtensionsWithR3.14.html  ConvertingR3.13AppsToR3.14.html

4 SNS Control System Slide 4, 4/19/2002 Make System Changes l Now supports RTEMS, Win32, Unix IOC applications l Most obvious changes:  config  configure  {Makefile, Makefile.Host, Makefile.Vx}  Makefile  HOST_ARCH  EPICS_HOST_ARCH, ‘Linux’  ‘linux-x86’, ‘WIN32’  ‘win32-x86’  Target architectures ‘ppc603’  ‘vxWorks-ppc603’  PROD  PROD_HOST, PROD_IOC l Usage:  EDM & ChannelArchiver still on old make system  EtherIP: Both old and new based on ifdef EPICS_HOST_ARCH in main Makefile

5 SNS Control System Slide 5, 4/19/2002 Channel Access Changes l Old API works as before l New:  ca_task_initialize  ca_context_create(multithreaded_or_not?), ca_task_exit  ca_context_destroy  ca_current_context, ca_attach_context to allow usage across threads  File descriptor manager, ca_pend_io/ca_poll/…  fully multithreaded  Support for big arrays l Usage:  EDM: old API  ChannelArchiver: New API, from two thread (disk writes, rest) to many (main, disk writes, CA, HTTPD, one per HTTP client)

6 SNS Control System Slide 6, 4/19/2002 Time Stamp Changes l TS_STAMP  epicsTimeStamp  TS_STAMP still available l osiTime  epicsTime  Conversions to/from anything except double, no access to seconds/nanosec/epoch info l osiTimer  epicsTimer  Different API l Usage:  ChannelArchiver required rewrite of every time-stamp related piece of code

7 SNS Control System Slide 7, 4/19/2002 Portability Layer Changes l epicsThread, epicsMutex, epicsEvent, epicsSignal, epicsTime, …  New OS independent wrappers for threads, semaphores, …. l EDM: has its own portability layer l EtherIP: uses epicsXXX routines if under R3.14 l ChannelArchiver: Replaced custom portability layer with epicsXXX classes

8 SNS Control System Slide 8, 4/19/2002 Channel Archiver Statistics (not necessarily useful) l Time for R3.14 conversion: two weeks @ about ½ time l Code size  Before conversion:23368 lines  After conversion:22995 line  Multithreading added lines, usage of epicsXXX removed lines, altogether 1.5% less code l Comparison including test code for old custom OS wrappers vs. new test code for understanding epicsXXX classes  0.5% more lines

9 SNS Control System Slide 9, 4/19/2002 Results, Comments l EDM works on Unix as before, compatible with R3.13 l Channel Archiver works on Linux & Win32 as before, maybe Solaris, no longer with R3.13 l EtherIP now works on Linux, Win32, Solaris, vxWorks, RTEMS, and still with R3.13 (vx only) l R3.14 OS wrappers great for code that didn’t use anything similar before, hope that they stay more stable than previous attempts (osiTime, osiTimer)


Download ppt "SNS Control System Slide 1, 4/19/2002 Converting Applications to R3.14 June 2003,"

Similar presentations


Ads by Google