diff --git a/src/ca/CAref.html b/src/ca/CAref.html index 48d6a5b2f..3b1b46021 100644 --- a/src/ca/CAref.html +++ b/src/ca/CAref.html @@ -151,6 +151,7 @@ height="31" width="88">
If EPICS_CAS_BEACON_ADDR_LIST is defined then its contents will be used to augment this list. Individual entries in EPICS_CAS_BEACON_ADDR_LIST may override the destination port number if ":nnn" follows the host name or IP -address there. 1Alternatively, if EPICS_CAS_BEACON_ADDR_LIST is -not defined, EPICS_CA_ADDR_LIST is defined, and EPICS_CAS_INTF_ADDR_LIST is -not defined, then the contents of EPICS_CA_ADDR_LIST will be used to augment -the list. Otherwise, the list is not augmented.
+address there. Alternatively, if EPICS_CAS_BEACON_ADDR_LIST is not defined, +EPICS_CA_ADDR_LIST is defined, and EPICS_CAS_INTF_ADDR_LIST is not defined, +then the contents of EPICS_CA_ADDR_LIST will be used to augment the list. +Otherwise, the list is not augmented.The EPICS_CAS_BEACON_PORT parameter specifies the destination port for server beacons. The only exception to this occurs when ports are specified @@ -696,10 +702,21 @@ specified in EPICS_CA_REPEATER_PORT.
The parameter EPICS_CAS_INTF_ADDR_LIST allows a ca server to bind itself -to a limited set of network interfaces (each specified by its IP address). By -defualt, the CA server is accessible from all network interfaces configured -into its host. In R3.14 and R3.13 the CA server employed by iocCore does -not implemet this feature.
+to, and therefore accept messages only from, a limited set of network +interfaces (each specified by it's IP address). Specifically, UDP search +messages addressed to both the IP addresses in EPICS_CAS_INTF_ADDR_LIST and +also to the broadcast addresses of the corresponding LAN interfaces will be +accepted by the server. By defualt, the CA server is accessible from all +network interfaces configured into its host. In R3.14 and previous +releases the CA server employed by iocCore does not implemet this +feature. + +Name resolution requests originating from any of the IP addresses +specified in the EPICS_CAS_IGNORE_ADDR_LIST parameter are not replied to. +In R3.14 and previous releases the CA server employed by iocCore does not +implemet this feature.
You should assume that the availablity of paths through your network is -transient. When you create a CA channel its initial connection state will -most commonly be disconnected. If the Process Variable's server is available -the library will immediatly initiate the necessary actions to make a -connection with it. Otherwise, the client library will monitor the state of -servers on the network and immediately connect or reconnect with the process -variable's server when it becomes available. A connection state change call -back function may be installed to be run whenever a CA channel connects or -disconnects. If a connection state change call back function is not installed -(if a nil function pointer is supplied) then the user must wait for -successful status from ca_pend_io prior to using the channel for the first -time. Once the channel connects the user can freely perform IO operations -through the channel, but he should expect that the channel might disconnect -at any time due to network connectivity disruptions or server restarts. -Otherwise, if a connection state change call back function is supplied, one -of the arguments to this function distinguishes between connect and -disconnect events. If a connection state change call back function is -installed on a particular channel by the user ca_pend_io will not block for -the channel to connect. The user's connection state change function will be -run immediately when the channel is created if the CA client and the server -are both hosted in the same address space.
+Application programs should assume that CA server may be restarted, and +that network connectivity is transient. When you create a CA channel it's +initial connection state will most commonly be disconnected. If the Process +Variable's server is available the library will immediatly initiate the +necessary actions to make a connection with it. Otherwise, the client library +will monitor the state of servers on the network and immediately connect or +reconnect with the process variable's server when it becomes available.
+ +Two methods may be used to dermine if a channel has connected: the
+application program can block in ca_pend_io, or the application program can
+install a connection callback handler when it calls ca_create_channel. The ca_pend_io approach is best suited to simple
+command line programs with a short runtime duration, and the conection
+callback method is best suited to toolkit components with a long runtime
+duration. If a connection state change call back function is not
+installed when ca_create_channel is called (if a nil function
+pointer is supplied) then the application program must wait for
+successful status from ca_pend_io
+prior to using the channel for the first time. Otherwise, if a connection
+state change call back function is supplied, then one of the
+arguments to this function distinguishes between connect and disconnect
+events, and ca_pend_io will not
+block for the channel to connect. The user's connection state change
+function will be run immediately from within ca_create_channel if the CA client and
+the server are both hosted within the same address space (within the same
+process).
Once the channel connects the application program can freely perform IO +operations through the channel, but it should expect that the channel might +disconnect at any time due to network connectivity disruptions or server +restarts.
The delay specified to ca_pend_io() should take into account worst case -network delays such as Ethernet collision backoff and retransmission.
+network delays such as Ethernet collision exponential backoff until +retransmission delays which can be quite long on overloaded networks. + +Unlike ca_pend_event, this routine will
+not process CA's background activities if none of the selected IO requests
+are pending.
ECA_NORMAL - Normal successful completion
+ECA_TIMEOUT - Selected IO requests didnt complete before specified +timeout
+ECA_EVDISALLOW - Function inappropriate for use within an event handler
When ca_poll is invoked the send buffer is flushed and any outstanding CA background activity is processed.
-The routine will not return before the time-out expires and all unfinished -channel access labor has been processed.
+This routine will not return before the specified time-out
+expires and all unfinished channel access labor has been processed, and
+unlike ca_pend_io it does not
+indicate anything about the status of pending IO requests when it
+returns ECA_NORMAL.
ca_test_event()dbr_type_to_text()#include <db_access.h>
+const char * dbr_type_text ( chtype TYPE );
+
+Returns a constant null terminated string corresponding to the specified +dbr type.
+ +TYPESTRINGca_test_event()#include <cadef.h>