EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Redundancy Patch: rsrv
From: "Liu, Gongfa" <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: EPICS core-talk <[email protected]>
Date: Tue, 20 Nov 2007 14:27:02 +0100
Hi, Andrew,

Andrew Johnson wrote:
Andrew Johnson wrote:
**************
Modified
**************

# source files
(18) base-3.14.9/src/rsrv/camsgtask.c
    Destroy client connections when the IOC is SLAVE.

Jeff Hill may wish to use a slightly different approach to implementing this functionality.

It would be better if Jeff Hill can implement it.


(19) base-3.14.9/src/rsrv/caservertask.c
    Register CAS-TCP task at RMT. Stop responding the client connection
    request when the IOC is SLAVE.

The #ifndef vxWorks block will not be accepted.

We will remove this block and change the relevant codes.

The changes here that provide the ability to stop CA server tasks
represent functionality that should be part of Base, although Jeff
Hill may want a different implementation.

The code that registers the CA server tasks with the RMT should be
replaced with a call through a global function pointer that the RMT
initialization code can set before iocInit().  By removing any need
for the rsrv code to perform the registration itself this also drops
the requirement for epicsFindSymbol() and for the rmtDrvIf.h header to
be included in Base.

We agree in changing the registering like proposed by you. Using a global variable is a better idea. This will also help to make RMT more independent from EPICS. We will change this. Does anyone has a suggestion where to place the variable definition?

Each thread has to register in RMT if it should be controlled by RMT. The way we did it is to call the rmtRegister function in the init-part of the individual thread. Each instance must provide an entry table and call rmtRegister with this table address. The functions provide the API for RMT and should be defined in the module of controlled thread. If the IOC is not redundant, the global function-pointer variable is NULL and registration is not done. The allocation of the entry-table can also be omitted in this case. We could change the code in this way. So in our opinion rmtDrvIf.h should be included into all these modules which contain thread code that needs to be registered, because it describes the API to RMT.



(20) base-3.14.9/src/rsrv/cast_server.c
    Inactivate CAS-UDP task when the IOC is SLAVE.

(21) base-3.14.9/src/rsrv/online_notify.c
    Inactivate CAS-beacon task when the IOC is SLAVE.

Jeff Hill may wish to use a slightly different approach to implementing this functionality.

It would be better if Jeff Hill can implement them.


**************
Added
**************
(2) base-3.14.9/src/rsrv/rmtDrvIf.h
    The head file for RMT driver interface.

This header is not required if the task registration code is moved into the redundancy application and hooked into the IOC by setting a global function pointer before iocInit().

See above.

- Andrew

Bernd Schoeneburg and Gongfa Liu
--
----------------------------------------------------------
Gongfa Liu                         MKS-2, DESY
phone:  +49-40-8998-1642           Notkestr. 85
fax:    +49-40-8998-4388           22607 Hamburg
e-mail: [email protected]         Germany
----------------------------------------------------------

References:
Redundancy Patch: rsrv Andrew Johnson
Re: Redundancy Patch: rsrv Andrew Johnson

Navigate by Date:
Prev: Re: Redundancy Patch: iocsh Liu, Gongfa
Next: Re: Redundancy Patch: iocsh Andrew Johnson
Index: 2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Redundancy Patch: rsrv Andrew Johnson
Next: Redundancy Patch: makeBaseApp Andrew Johnson
Index: 2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·