Converting Applications to R3.14 - PowerPoint PPT Presentation

About This Presentation
Title:

Converting Applications to R3.14

Description:

Actually did the conversion to R3.14.1. EDM. Did 1%, remaining 99% John Sinclair. EtherIP (Allen Bradley Control Logix PLC driver) ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 10
Provided by: aps2
Category:

less

Transcript and Presenter's Notes

Title: Converting Applications to R3.14


1
Converting Applications to R3.14
  • June 2003,
  • Kasemir_at_lanl.gov

2
Basis for this talk
  • ChannelArchiver
  • Actually did the conversion to R3.14.1
  • EDM
  • Did 1, remaining 99 John Sinclair
  • EtherIP (Allen Bradley Control Logix PLC driver)
  • Observed Stephanie Allisons work al
    distante,she will report details in her own
    presentation

3
Available Information
  • Application Developers Guide
  • R3.14.1 includes makeBaseApp layout and
    makefile details
  • EPICS base/documentation
  • BuildingR3.13AppsWithR3.14.html
  • BuildingR3.13ExtensionsWithR3.14.html
  • ConvertingR3.13AppsToR3.14.html

4
Make System Changes
  • Now supports RTEMS, Win32, Unix IOC applications
  • 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
  • Usage
  • EDM ChannelArchiver still on old make system
  • EtherIP Both old and new based on
    ifdef EPICS_HOST_ARCH in main Makefile

5
Channel Access Changes
  • Old API works as before
  • New
  • ca_task_initialize ? ca_context_create(multithread
    ed_or_not?),ca_task_exit ?
    ca_context_destroy
  • ca_current_context, ca_attach_contextto allow
    usage across threads
  • File descriptor manager, ca_pend_io/ca_poll/?
    fully multithreaded
  • Support for big arrays
  • Usage
  • EDM old API
  • ChannelArchiverNew API, from two thread (disk
    writes, rest)to many (main, disk writes, CA,
    HTTPD, one per HTTP client)

6
Time Stamp Changes
  • TS_STAMP ? epicsTimeStamp
  • TS_STAMP still available
  • osiTime ? epicsTime
  • Conversions to/from anything except double,no
    access to seconds/nanosec/epoch info
  • osiTimer ? epicsTimer
  • Different API
  • Usage
  • ChannelArchiver required rewrite of every
    time-stamp related piece of code

7
Portability Layer Changes
  • epicsThread, epicsMutex, epicsEvent, epicsSignal,
    epicsTime,
  • New OS independent wrappers for threads,
    semaphores, .
  • EDM has its own portability layer
  • EtherIP uses epicsXXX routines if under R3.14
  • ChannelArchiverReplaced custom portability
    layer with epicsXXX classes

8
Channel Archiver Statistics (not necessarily
useful)
  • Time for R3.14 conversiontwo weeks _at_ about ½
    time
  • Code size
  • Before conversion 23368 lines
  • After conversion 22995 line
  • Multithreading added lines,usage of epicsXXX
    removed lines,altogether 1.5 less code
  • Comparison including test code for old custom OS
    wrappers vs. new test code for understanding
    epicsXXX classes
  • 0.5 more lines

9
Results, Comments
  • EDM works on Unix as before, compatible with
    R3.13
  • Channel Archiver works on Linux Win32 as
    before, maybe Solaris, no longer with R3.13
  • EtherIP now works on Linux, Win32, Solaris,
    vxWorks, RTEMS, and still with R3.13 (vx only)
  • R3.14 OS wrappers great for code that didnt use
    anything similar before,hope that they stay more
    stable than previous attempts (osiTime, osiTimer)
Write a Comment
User Comments (0)
About PowerShow.com