Hello out there,
I hope this is not a to trivial Problem to commit to this mailing list,
but I am trying to make a caServer for LynxOS to control VME Cards
sharing the Crate with a PowerPC CPU under LynxOS. This works pretty
fine when I am using nearly all the options for Linux (LynxOS also uses
the gcc compiler).
But now I am trying to implement some CA queries into the server to get
some parameters from another server. Therefore I used the little example
'myClient' (as I used 'myServer' for the Server tasks), and this
compiles pretty fine but gets no connection to the Parameter Server
while the same code compiled with Linux does exactly what I expected it
to do.
The error messages are
CA.Client.Diagnostic..............................................
Message: "The search request/beacon address list was empty after
initialization"
Severity: Warning
Source File: ../iocinf.c Line Number: 772
..................................................................
bin/LynxOS/daq_seb_cas<warning>: Cannot switch to asyncronous mode:
Error number not set
bin/LynxOS/daq_seb_cas< err>: Do not receive value of
HAD:PARAM:HERAKLES:CRATE_ID: Error number not set
pretty similar to the ones ca_test supplied:
CA.Client.Diagnostic..............................................
Message: "The search request/beacon address list was empty after
initialization"
Severity: Warning
Source File: ../iocinf.c Line Number: 772
..................................................................
Not Found HAD:PARAM:HERAKLES:CRATE_ID
I made some minor changes to the sources in the base/src/ca tree because
LynxOS needs another way to find out it's own IP-address. Here's an
extract of the function I supplied:
> #ifdef LynxOS
>
> #include <stdio.h>
> #include <string.h>
>
> #include <sys/utsname.h>
> #include <netdb.h>
>
> char *getIfAddr(char *ip) {
> struct utsname nameS, *name = &nameS;
> struct hostent entryS, *entry = &entryS;
> unsigned char first, second, third, fourth;
>
> uname(name);
> entry = gethostbyname(name->nodename);
> first = *(entry->h_addr);
> second = *((entry->h_addr) + 1);
> third = *((entry->h_addr) + 2);
> fourth = *((entry->h_addr) + 3);
> sprintf(ip,"%d.%d.%d.%d", first, second, third, fourth);
> return ip;
> }
>
> #endif
62a86
> char myownifaddr[16];
94c118,123
< #ifndef LynxOS
---
> #ifdef LynxOS
> getIfAddr(myownifaddr);
> init = TRUE;
> addr.sin_family = AF_INET;
> addr.sin_addr.s_addr = inet_addr(myownifaddr);
> #else
144,148d172
< #endif
I am using Version R3.13.2 of the EPICS base package.
Is anybody out there who has experience with the CA client lib under
LynxOS.
Thank You for any comments
Benjamin
--
*****************************************************************
Benjamin Sailer
eMail: [email protected]
*****************************************************************
Sodann sollst Du zaehlen bis zur Drei. Drei soll die Zahl sein,
bis zu der Du zaehlst, und die Zahl, bis zu der Du zaehlst, soll
die Drei sein. Weder sollst Du zaehlen bis zur Vier, noch sollst
Du zaehlen nur bis zur Zwei, es sei denn, Du faehrst fort zu
zaehlen bis zur Drei. Die Fuenf scheidet voellig aus.
- Replies:
- RE: Problems with the CA lib under LynxOS with R3.13.2 Jeff Hill
- Navigate by Date:
- Prev:
RE: Interrupts Jeff Hill
- Next:
RE: Problems with the CA lib under LynxOS with R3.13.2 Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
<2000>
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: PID records Mark Rivers
- Next:
RE: Problems with the CA lib under LynxOS with R3.13.2 Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
<2000>
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|