Change of Value (COV) Services¶
-
class
ChangeOfValueServices
(Capability)¶ This class provides the capability of managing COV subscriptions and initiating COV notifications.
-
do_SubscribeCOVRequest(apdu):
Parameters: apdu (SubscribeCOVRequest) – request from the network This method processes the request by looking up the referenced object and attaching a COV detection algorithm object. Any changes the to referenced object properties (such as presentValue to statusFlags) will trigger the algorithm to run and initiate COV notifications as necessary.
-
add_subscription
(cov)¶ This method adds a subscription to the internal dictionary of subscriptions indexed by the object reference. There can be multiple COV subscriptions for the same object.
-
cancel_subscription
(cov)¶ This method removes a subscription from the internal dictionary of subscriptions. If all of the subscriptinos have been removed, for example they have all expired, then the detection “hook” into the object is removed.
-
cov_notification
(cov, request)¶ This method is used to wrap a COV notification request in an IOCB wrapper, submitting it as an IO request. The following confirmation function will be called when it is complete.
-
cov_confirmation
(iocb)¶ This method looks at the response that was given to the COV notification and dispatchs one of the following functions.
-
cov_ack
(cov, request, response)¶ This method is called when the client has responded with a simple acknowledgement.
-
cov_error
(cov, request, response)¶ This method is called when the client has responded with an error. Depending on the error, the COV subscription might be canceled.
-
cov_reject
(cov, request, response)¶ This method is called when the client has responded with a reject. Depending on the error, the COV subscription might be canceled.
-
cov_abort
(cov, request, response)¶ This method is called when the client has responded with an abort. Depending on the error, the COV subscription might be canceled.
-
Support Classes¶
-
class
ActiveCOVSubscriptions
(Property)¶ An instance of this property is added to the local device object. When the property is read it will return a list of COVSubscription objects.
-
class
SubscriptionList
¶ -
append
(cov)¶ Parameters: cov (Subscription) – additional subscription
-
remove
(cov)¶ Parameters: cov (Subscription) – subscription to remove
-
find
(client_addr, proc_id, obj_id)¶ Parameters: - client_addr (Address) – client address
- proc_id (int) – client process identifier
- obj_id (ObjectIdentifier) – object identifier
This method finds a matching Subscription object where all three parameters match. It is used when a subscription request arrives it is used to determine if it should be renewed or canceled.
-
-
class
Subscription
(OneShotTask)¶ Instances of this class are active subscriptions with a lifetime. When the subscription is created it “installs” itself as a task for the end of its lifetime and when the process_task function is called the subscription is canceled.
-
__init__
(obj_ref, client_addr, proc_id, obj_id, confirmed, lifetime)¶ Parameters: - obj_ref – reference to the object being monitored
- client_addr – address of the client
- proc_id – process id of the client
- obj_id – object identifier
- confirmed – issue confirmed notifications
- lifetime – subscription lifetime
-
cancel_subscription
()¶ This method is called to cancel a subscription, it is called by process_task.
-
renew_subscription
(lifetime)¶ Parameters: lifetime (int) – seconds until expiration This method is called to renew a subscription.
-
process_task
()¶ Call when the lifetime of the subscription has run out.
-
-
class
COVDetection
(DetectionAlgorithm)¶ This is a base class for a series of COV detection algorithms. The derived classes provide a list of the properties that are being monitored for changes and a list of properties that are reported.
-
execute
()¶ This method overrides the execute function of the detection algorithm.
-
send_cov_notifications
()¶ This method sends out notifications to all of the subscriptions that are associated with the algorithm.
-
-
class
GenericCriteria
(COVDetection)¶ This is the simplest detection algorithm that monitors the present value and status flags of an object.
-
class
COVIncrementCriteria
(COVDetection)¶ This detection algorithm is used for those objects that have a COV increment property, such as Analog Value Objects, where the change in the present value needs to exceed some delta value.
-
class
AccessDoorCriteria
(COVDetection)¶ This detection algorithm is used for Access Door Objects.
-
class
AccessPointCriteria
(COVDetection)¶ This detection algorithm is used for Access Point Objects.
-
class
CredentialDataInputCriteria
(COVDetection)¶ This detection algorithm is used for Credential Data Input Objects.
-
class
LoadControlCriteria
(COVDetection)¶ This detection algorithm is used for Load Control Objects.
-
class
PulseConverterCriteria
(COVDetection)¶ This detection algorithm is used for Pulse Converter Objects.