EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Portable Channel Access Server on vxWorks
From: "Jeff Hill" <[email protected]>
To: "'Dirk Zimoch'" <[email protected]>
Cc: "'Babak Kalantari'" <[email protected]>, "'TechTalk EPICS'" <[email protected]>
Date: Tue, 5 Feb 2008 11:25:36 -0700
Dirk,

Quite honestly, when preparing R3.14 I did take the time to get the portable
CA server library to build on all supported platforms but I didn't test it
except on Windows and Linux.

> seems not to work as under Linux. (It does not reply on caget.)

That's odd because its known to work on both big-endian and little-endian
systems. This must be a vxWorks socket library specific issue. Typically if
there are OS specific issues with the socket library they are related to
binding or connecting a UDP socket to a specific port or address
(interface). The portable server is more capable compared to the IOC's
server when binding to specific network interfaces, and so its perhaps more
vulnerable to socket library quirks. But, since you are seeing issues with
CA get (occurring at the TCP level) I am not coming up with any guesses.

As I recall, with the portable server, one can turn on message logging by
calling the server's setDebugLevel() method. That might help with tracking
down the problem.

Do you see any exception messages from the client library or any messages on
the server's console? If not, then perhaps the server is wedged. To further
isolate that type tt for the server's thread and see where it might be
parked. 

Another possibly is an issue with the file descriptor manager. There might
be some subtle difference with select on vxWorks? Come to think of it I
don't know that I have ever seen what happens when you place a socket in
non-blocking mode on vxWorks (if that works or not).

> The first thing I noticed was that several C++ template instances were
missing

Modern compilers typically automatically instantiate. I suspect that this is
a non-issue with more recent GNU compiler (your version of vxWorks might
even be based on a GNU compiler that is more than 8 years old).
Nevertheless, we will gratefully incorporate your patches into the next
R3.14 release.

Thanks for your assistance,

Jeff

PS: I was recently called by a person working for a small fire department in
Rhode Island. He was very interested in this fdManager.cpp software and was
wondering if he could get a copy! 

> -----Original Message-----
> From: Dirk Zimoch [mailto:[email protected]]
> Sent: Tuesday, February 05, 2008 8:43 AM
> To: Jeff Hill
> Cc: TechTalk EPICS; Babak Kalantari
> Subject: Portable Channel Access Server on vxWorks
> 
> Hi Jeff, others,
> 
> we are trying to get the portable channel access server (from R3.14.8.2)
> running
> on a pure vxWorks system (no EPICS IOC).
> 
> The first thing I noticed was that several C++ template instances were
> missing:
> 
> #include <ipIgnoreEntry.h>
> #include <casChannelI.h>
> template class resTable < ipIgnoreEntry, ipIgnoreEntry >;
> template class resTable < casChannelI, chronIntId >;
> template class resTable < casEventMaskEntry, stringId >;
> template class chronIntIdResTable < casChannelI >;
> template tsFreeList < casMonEvent, 1024, epicsMutexNOOP >;
> template tsFreeList < casMonitor, 1024, epicsMutex >;
> template tsFreeList < ipIgnoreEntry, 128, epicsMutex >;
> 
> There is no templateInstances.cpp file in cas as it is in some other EPICS
> base
> libraries. This should probably be added.
> 
> After adding those instances (which required to #include a few "private"
> header
> files which are not installed normally), I got a loadable *.munch library.
> But
> the server still seems not to work as under Linux. (It does not reply on
> caget.)
> Is there something special to do on vxWorks? Has anyone else ever run cas
on
> vxWorks?
> 
> Dirk
> 
> --
> Dr. Dirk Zimoch
> Paul Scherrer Institut, WBGB/006
> 5232 Villigen PSI, Switzerland
> Phone +41 56 310 5182


References:
Portable Channel Access Server on vxWorks Dirk Zimoch

Navigate by Date:
Prev: Re: passive record/field to process when there is a CA read Andrew Johnson
Next: medm weirdness Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Portable Channel Access Server on vxWorks Dirk Zimoch
Next: medm weirdness Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·