V4 July Meeting Agenda

From EPICSWIKI

This is an informal agenda for the core developers design meeting.


Location and Facilities

The meeting will be held in conference room C010 of building 433, which is a Lab/Office Module (LOM) about a third of the way clockwise around the ring from the APS main building (401), between sectors 10 and 11 (MRCAT & BESSRC). There is ample parking right outside building 433; if you're driving in you probably won't want to park in the building 401 parking lots since it's a bit of a walk from there.

There will be an LCD projector and screen in the room, and wireless networking is available.


Agenda

I'm assuming we'll convene at 09:00 every morning and finish at or before 17:00, taking lunch as we see fit. I see little point in trying to fit the discussion topics into the individual days, who knows how long each will take...

Monday

09:00 - 17:00

Tuesday

09:00 - 17:00

Wednesday

09:00 - 10:00

10:00 - 12:00 Demo of commercial control system in Bldg 401 B2100

12:00 - 17:00

Evening: Bar-B-Que at Eric & Barbara Norum's house

Thursday

09:00 - 17:00

Friday

Subgroup meetings by agreement if needed; we have the room available today, but some people may be travelling.

Discussion Topics

Bob's list

These were a set of action items Bob wrote down at the last meeting:

Database Services:

  • Mechanism for event set - extensible? How many are needed?
  • Super Record (Andrew/Bob): Present a study on the ability and issues in creating super records.
  • User extensible fields (Marty, Kay and Matthias): Present a study on the ability to extend record funciontality with an extension of records.
  • Middleware Interfaces to CA server (Ralph and Benjamin): Present the requirements and a preliminary design for a layer between the database posting mechanism and services that are interested in this data.

Network Communication Services:

  • Name service (Doug and Kay): Present the function and a preliminary design for the name services.
  • Channel Access Client user interface (Kay and Doug): Provide the user perspective of the CA Client interface.
  • Channel Access Client (Jeff): Show the connection of the CA Client interface to the low level calls provided.
  • Channel Access Network Protocol (Jeff): Specification of the protocol on the wire will be provided prior to implementation.
  • Channel Access Services (Jeff): Show the interface from the database middle layer, and design for the filtering.
  • Property Catalogs and Events (Bob): Provide a list of properties and events that will be supported.
  • EPICS Gateway (Ralph and Benjamin): Present the requirements and preliminary design for the gateway to support all channel access features for filtering and events.

This looks like an older version of the above action list with less detail and some overlap of the list immediately above:

Database Services

  • Building structures and arrays - APS
  • Posting fields and changes (with triggers) from the database to data access middleware - APS
  • Super Record - creating new records from functional blocks Andrew, Bob
  • User extensible fields w/ little code - Marty, Kay and Matthias

Middleware Interfaces to CA server

  • (vampire tap, redundancy?, alarm stream, cmlog) - Ralph and Benjamin

Network Communication Services

  • Name service (archive data) - Doug and Kay
  • Channel Access Client user interface - Kay and Doug
  • Channel Access Client - Jeff (up to user interface)
  • CAS - Jeff (down to Middleware interfaces)
  • Network Protocol - Jeff
  • Redundancy requirements for field communication - Bob
  • Catalogs and events - Bob
  • Gateway (version bending, storage for data) - Ralph and Benjamin
  • Make system - Benjamin and Janet to look at
  • EPICS office - works with Doug and Kay

Andrew's list

  • Who is EPICS V4 being written for?
    • Minimum requirements of the OS (should we support Tornado 2.x? No => no 68K)
    • Memory Management - new/delete, malloc/free, use of free lists
  • Overall "big picture" set of modules and interfaces
  • epicsTypes, Data Access types, network types, mapping these to platform types.
    • How to introspect arrays without instanciating them?
    • epicsString vs stringSegment, epicsArrayBuffer etc.
  • New asynchronous record processing design
    • Splits records up into smaller objects
    • How to link these objects together?
  • Replacement for periodic scan threads
  • Split libOSI out of libCom?
  • What to do about the errlog client & server code
  • Flex & Antelope => updated Flex, Bison?
    • We need these for: Access Security, probably for DB file parser, SNC
  • Build system - carry on like we have been, or redesign? Options:
    1. Continue with R3.14 build system
    2. Use the modified build system on the CVS main trunk (R3.15)
    3. Adopt GNU autoconf & automake
    4. Parse configuration and Makefiles in Perl, generate specific Makefile (this approach can be used to avoid recursive Make)
    5. Something else?
  • Source code revision management - Subversion repository at APS

Marty's list

  • V4 Database
    • Database Definition File Syntax - 1 hour - Andrew Johnson
    • Record Instance syntax - 1 hour - Andrew Johnson
    • Generated Header Files and Introspection - 2 hours - Marty Kraimer
    • Record Processing - 1 hour - Marty Kraimer
  • Discussion of dataAccess and epicsTypes 2 hour session