Download presentation
Presentation is loading. Please wait.
Published byJoseph Carter Modified over 8 years ago
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)
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.