Experimental Physics and Industrial Control System
Hello Andy (and anybody else),
>
> Hi Benjamin,
>
> I had the same problem with "threadInit" when compiling against
> 3.13.4 under Solaris 8.
> My solution was to comment the call out of the code.
>
> Cheers,
>
> Andy
thanks for the answer. Unfortunately, I tried this out before, but this
resulted in a crash as soon as the first "pv" command had to be executed
in my little test-tcl/tk-script:
#!/path/to/et_wish
set pvnum 0
entry .pvname -relief sunken -textvariable pvname -width 30
pack .pvname
bind .pvname <Return> {
set pvname$pvnum $pvname
set pvvalue$pvnum 0
pv link pvvalue$pvnum [set pvname$pvnum]
set pvlink$pvnum 1
pv mon pvvalue$pvnum
frame .pv$pvnum
button .pvswitch$pvnum -command {
if {[set pvswitch$pvnum] == 1} {
set pvswitch$pvnum 0
pv umon pvvalue$pvnum
} else {
set pvswitch$pvnum 1
pv mon pvvalue$pvnum
}
} -text [format "%s: %d" [set pvname$pvnum] [set pvvalue$pvnum]] -width 20
entry .pvshow$pvnum -textvariable pvvalue$pvnum
pack .pvswitch$pvnum .pvshow$pvnum -in .pv$pvnum -side left -fill x
pack .pv$pvnum -fill x
set pvname ""
incr pvnum 1
}
looking into the debugger, I saw
Starting program: /path/to/et_wish bar.tcl
[New Thread 1024 (LWP 4585)]
[New Thread 2049 (LWP 4586)]
[New Thread 1026 (LWP 4587)]
[New Thread 2051 (LWP 4588)]
Warning: Duplicate EPICS CA Address list entry "129.187.154.22:5064" discarded
Warning: Duplicate EPICS CA Address list entry "129.187.154.76:5064" discarded
Warning: Duplicate EPICS CA Address list entry "129.187.154.77:5064" discarded
Warning: Duplicate EPICS CA Address list entry "129.187.154.98:5064" discarded
Warning: Duplicate EPICS CA Address list entry "129.187.154.104:5064" discarded
Warning: Duplicate EPICS CA Address list entry "129.187.154.107:5064" discarded
[New Thread 3076 (LWP 4589)]
[New Thread 4101 (LWP 4590)]
[New Thread 5126 (LWP 4591)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 4101 (LWP 4590)]
0x4053e07c in memcpy () from /lib/i686/libc.so.6
(gdb) where
#0 0x4053e07c in memcpy () from /lib/i686/libc.so.6
#1 0x00000016 in ?? ()
#2 0x402eae2e in getCallback::exception ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#3 0x402df805 in netReadNotifyIO::exception ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#4 0x402e5e35 in cac::ioExceptionNotifyAndDestroy ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#5 0x402e84a1 in cac::readNotifyRespAction ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#6 0x402e891c in cac::executeResponse ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#7 0x402cd69d in tcpiiu::processIncoming ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#8 0x402cb995 in cacRecvThreadTCP ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libca.so
#9 0x40347ed9 in start_routine ()
from /home/bsailer/lib/I686_LINUX_2_4_9_6/epics_new/libCom.so
#10 0x4001ec6f in pthread_start_thread (arg=0x40ea9be0) at manager.c:284
#11 0x4001ed5f in pthread_start_thread_event (arg=0x40ea9be0) at manager.c:308
I'm sorry I'm not sure if this is connected to the caServer I developed
on basis of the libcas.a (using R3.13.3).
E.g. it seems that my server is not able to answer all differnt application
types ca_test queries:
ca_test-output is:
bsailer@brian $ ca_test HAD:EB2:EB2PP:ERROR
name: HAD:EB2:EB2PP:ERROR
native type: 4
native count: 1
DBR_STRING
DBR_SHORT 0
DBR_FLOAT 0.0000
DBR_ENUM 0
DBR_CHAR 0
DBR_LONG 0
DBR_DOUBLE 0.0000
DBR_STS_STRING 0 0 Value:
DBR_STS_SHORT 0 0 Value: 0
DBR_STS_FLOAT 0 0 Value: 0.0000
DBR_STS_ENUM 0 0 Value: 0
DBR_STS_CHAR 0 0 Value: 0
DBR_STS_LONG 0 0 Value: 0
DBR_STS_DOUBLE 0 0 Value: 0.0000
DBR_TIME_STRING 0 0 TimeStamp: 01/29/22 04:00:00.000 Value:
DBR_TIME_SHORT 0 0 TimeStamp: 01/29/22 04:00:00.000 Value: 0
DBR_TIME_FLOAT 0 0 TimeStamp: 01/29/22 04:00:00.000 Value: 0.0000
DBR_TIME_ENUM 0 0 TimeStamp: 01/29/22 04:00:00.000 Value: 0
DBR_TIME_CHAR 0 0 TimeStamp: 01/29/22 04:00:00.000 Value: 0
DBR_TIME_LONG 0 0 TimeStamp: 01/29/22 04:00:00.000 Value: 0
DBR_TIME_DOUBLE 0 0 TimeStamp: 01/29/22 04:00:00.000 Value: 0.0000
DBR_GR_STRING 0 0 Value:
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
DBR_CTRL_STRING 0 0 Value:
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
../ca_test.c: err resp to get cb was "Could not perform a database value get for that channel"
bsailer@brian $
while my server states:
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 17
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 17
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
unregisted appl type - ukn appl type code = 14
Operation not permitted <= get callback failure detail not passed to client
I did not find the application type corresponding to thiese two codes,
and to speak honestly I am not eger to implement all of these types - I'd
rather safe some space in the memory (this server should also work
on a LynxOS VME PPC and the main part of 32MB on these should be reserved
for DAQ-processes).
I tried to implement a read function for "enums" and "menuitem", but I didn't
get the concept of these record types and how to merge this with the
gdd::putConvert() function (my code looks like
gddAppFuncTableStatus ControlRecord::readMenuitem(gdd &value) {
if((myValue >= 0) && (myValue < numMenuitems)) {
value.putConvert(menuitem[myValue]);
return S_casApp_success;
} else {
return S_casApp_noSupport;
}
return S_casApp_success;
}
but the only thing I know about this is that it cannot work :-().
Can anybody give me some hints what I did wrong or what the philosophy is
behind the caServer?
Thanks a lot
Benjamin
--
*****************************************************************
Benjamin Sailer
eMail: [email protected]
*****************************************************************
You'll see it's all a show, keep on laughing as You go
just remember that the last laugh is on You
- Replies:
- RE: caTCL with R3.14 and Linux Jeff Hill
- References:
- Re: caTCL with R3.14 and Linux Andy Foster
- Navigate by Date:
- Prev:
CapFast PC training license Dr. Chong Lee
- Next:
Newbie question: symb.dbd in example application John Dobbins
- 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: caTCL with R3.14 and Linux Andy Foster
- Next:
RE: caTCL with R3.14 and Linux 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