Commit Graph

1984 Commits

Author SHA1 Message Date
Andrew Johnson
85c2877746 Document the dynamic-array changes. 2010-08-17 18:06:19 -05:00
Michael Abbott
519c94a6e3 Update rsrv to support V4.13 protocol extension.
The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
2010-08-11 17:36:11 -05:00
Michael Abbott
ee4a615caa Client side support for automatic resizing arrays.
In this commit the channel access client is modified to allow a zero
size request in a caget or camonitor call.  This is passed through to
the corresponding CA_PROTO_READ_NOTIFY or CA_PROTO_EVENT__ADD message,
but only if the minor version of the protocol is >=13.

This commit also adds a new protocol test, CA_V413(), which detects a
server which claims to understand the new zero length request.

Finally, this commit prepares for a subtle change in the CA protocol.
A request for a zero length subscription or data request, which will
only be made for protocol version 4.13 and above, is interpreted as a
request for autosized data, where the intrinsic dynamic length of the
requested waveform should be returned.

With the synchronous ca_array_get() call there is no mechanism available
to pass back the size of the retrieved data if it is different from
the requested count, so the simplest thing is to ensure we don't
request autosizing data through this api.
2010-08-11 17:35:23 -05:00
Michael Abbott
e87bbef75c Update rsrv to support V4.13 protocol extension.
The rsrv server is updated in this commit to deliver variable sized
waveforms in response to a zero length request, implementing an
extension to the v4 EPICS protocol tied to minor version 13.

The core of the changes are in read_reply, rsrv/camessage.c, which first
reserves packet space for the largest possible response, but then resizes
the packet according to how much data is actually returned from the
database.
2010-08-11 16:38:49 -05:00
Michael Abbott
a0c0c55347 Client side support for automatic resizing arrays.
In this commit the channel access client is modified to allow a zero
size request in a caget or camonitor call.  This is passed through to
the corresponding CA_PROTO_READ_NOTIFY or CA_PROTO_EVENT__ADD message,
but only if the minor version of the protocol is >=13.

This commit also adds a new protocol test, CA_V413(), which detects a
server which claims to understand the new zero length request.

Finally, this commit prepares for a subtle change in the CA protocol.
A request for a zero length subscription or data request, which will
only be made for protocol version 4.13 and above, is interpreted as a
request for autosized data, where the intrinsic dynamic length of the
requested waveform should be returned.

With the synchronous ca_array_get() call there is no mechanism available
to pass back the size of the retrieved data if it is different from
the requested count, so the simplest thing is to ensure we don't
request autosizing data through this api.
2010-08-11 16:22:54 -05:00
Andrew Johnson
eda402cf66 Merged Ralph's ca-over-tcp branch.
Fixed some vxWorks compile errors, and made a number of edits
to the HTML in the CAref.html documentation.
2010-08-10 16:05:46 -05:00
Ralph Lange
0666207393 Removed comment about ellfree @Windows in udpiiu.cpp (suggested by Jeff). 2010-05-14 09:34:40 -04:00
Ralph Lange
be978d6499 Fixed issue "TCP Nameserver Connection Down Blocks All Callbacks" and cleaned up the SearchDest list / TCP circuit relation
* Pulled out tcpiiu::SearchDestTCP to have cac create the SearchDest independent from the TCP circuit
* Reorganized the relation between the SearchDestTCP and the TCP circuit:
  - SearchDest stays always on the cac list
  - TCP connection going down sets SearchDest inactive and SearchDestTCP's circuit member to NULL
  - Next seach request creates the new TCP circuit and sets SearchDestTCP's member, but leaves SearchDest inactive
  - Successful connect sets SearchDest active
* ReceiveThread releases the cac mutex before going to sleep in connect loop
2010-04-15 17:06:16 -04:00
Ralph Lange
a0e868e2e1 Make SearchDest.h include all the headers it needs 2010-04-09 10:59:57 -04:00
Ralph Lange
d539db4053 Fix for: TCP Nameserver Connections Do Not Reconnect 2010-04-09 10:38:18 -04:00
Ralph Lange
82551fd175 Added EPICS_CA_NAME_SERVERS paragraph. Fixed lots of minor issues (unprintable characters). 2010-04-07 17:15:39 -04:00
Ralph Lange
23612a7afe Merged Codeathon 2008 changes (10292..10293 on cvs-trunk branch).
* Fixed conflicts until base compiles
 * COMPLETELY UNTESTED
2010-04-06 17:59:35 -04:00
Ralph Lange
bf5e456e2b Added doc for new DBE_PROPERTY flag in CA Reference Manual 2009-12-15 22:42:57 +00:00
Ralph Lange
c8470a2473 Added -l.. commandline options to catools (by Stephanie Allison) 2009-12-15 22:05:55 +00:00
Jeff Hill
d24c66f83d fix for mantis 366 2009-09-11 00:49:02 +00:00
Jeff Hill
955e9cd4d1 improved test id in diag message 2009-08-31 19:47:58 +00:00
Jeff Hill
3fe4def288 monitorAddConnectionCallbackTest test was too specific -
we shouldnt test for exactly two subscription updates when
more than two is sufficent
2009-08-28 23:28:29 +00:00
Jeff Hill
a4e5e540a9 added \n to printf diagnostic 2009-08-25 15:45:20 +00:00
Jeff Hill
33911cd0af improved failure diagnostic 2009-08-25 14:50:11 +00:00
Jeff Hill
4921187178 use verify instead of assert 2009-08-24 17:04:40 +00:00
Jeff Hill
794811b95a exp passed to assert must not change the state of the data structures 2009-08-24 17:03:17 +00:00
Jeff Hill
aa904449c0 we dont need tocheck the return from new with assert 2009-08-24 17:01:21 +00:00
Jeff Hill
8c2278784c fixed mantis 361 2009-08-21 00:53:55 +00:00
Jeff Hill
1fba8dd866 improved fdManagerVerify progress diagnostics 2009-08-20 22:29:53 +00:00
Jeff Hill
782ff1b303 improved create channel unexpected exception diagnostic 2009-08-14 19:12:50 +00:00
Jeff Hill
2fb6b2100f improved test diagnostic 2009-08-14 17:44:33 +00:00
Jeff Hill
0012042a5e accomodate archaic vxWorks gnu compiler 2009-08-14 17:31:34 +00:00
Jeff Hill
e0d16659e1 improved TCP circuit creation failure exception diagnostics 2009-08-14 16:57:48 +00:00
Jeff Hill
8303cf053b improved VC creation failure exception diagnostics 2009-08-14 16:56:31 +00:00
Jeff Hill
0fdda3f794 back out prev change 2009-08-14 00:29:56 +00:00
Jeff Hill
b344841365 fixed the following issues with detection of flow control mode
o the flow control contig frame thresh should be based on max array size
o it appears that the wakeup mechanism for the send thread, who sends
the flow control on/off messages was broken
o looking at full buffers isnt a perfect detection scheme compared to
the simpler approach of just checking to see if bytes are pending in
the socket before calling recv
2009-08-13 23:29:02 +00:00
Jeff Hill
b867dabad0 cache the client ctx ref prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:46:47 +00:00
Jeff Hill
0cea525682 destroy putCallback prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:44:30 +00:00
Jeff Hill
2df7da052a destroy getCallback prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:43:21 +00:00
Jeff Hill
59b820d2f5 added missing epicsShareExtern 2009-08-13 22:42:05 +00:00
Jeff Hill
3fda8dc2b0 added test failure diagnostic 2009-08-13 22:40:02 +00:00
Jeff Hill
44a6e9a005 added SEVCHK string 2009-08-12 00:37:10 +00:00
Jeff Hill
57c9f9344f improved show function 2009-08-10 21:51:07 +00:00
Jeff Hill
7a49a17d1b removed unused template instantiation 2009-08-04 23:32:32 +00:00
Andrew Johnson
c035566d7d Use compile-time assertions, from Micheal Davidsaver. 2009-08-04 19:10:30 +00:00
Jeff Hill
72dbaa8a0f auto-adjust iterations for payload size 2009-07-31 23:26:16 +00:00
Jeff Hill
458689a252 fixed formating 2009-07-31 22:12:32 +00:00
Jeff Hill
0daf347ef3 fixed incorrect Mbps calc based on rounded payload size 2009-07-31 22:01:53 +00:00
Jeff Hill
e32d8d77dc fixed gnu compiler issues 2009-07-31 21:43:03 +00:00
Jeff Hill
ffe7823c22 report send and recv Mbps independently to better understand fullduplex ethernet bw 2009-07-31 21:23:26 +00:00
Jeff Hill
913f724ebf fix for mantis 357 2009-07-31 19:47:46 +00:00
Jeff Hill
001b947702 added more excas options 2009-07-30 23:09:54 +00:00
Jeff Hill
c0d4317ade fixed broken test 2009-07-30 23:08:34 +00:00
Jeff Hill
4ade695a60 upgraded to properly test array performance 2009-07-23 23:59:04 +00:00
Jeff Hill
0abb615d3a improved tests 2009-07-18 03:54:16 +00:00