IasPlugin2.UdpPlugin
index
/home/ubuntu/IasRoot/lib/python3.10/site-packages/IasPlugin2/UdpPlugin.py

Created on May 9, 2018
 
@author: acaproni

 
Modules
       
logging
socket

 
Classes
       
builtins.object
UdpPlugin

 
class UdpPlugin(builtins.object)
    UdpPlugin(hostname, port)
 
UpdPlugin for python 2 sends monitor points to the java plugin by means 
of UDP sockets.
 
Using UDP has pros and cons. Take into account that UDP
is connectionless and as such does now warrant delivery
neither the delivery order.
On the other hand it is simple and fast (so fast that
can saturate the network).
 
UDP paradigm decouple the python code from the java plugin
that is consistent with IAS design.
Also the case of UDPs not delivered to the java plugin is
consistent with IAS design: a missing monitor point will be marked
as invalid until its value is refreshed.
 
The java plugin is supposed to run in a server (hostname) and 
be listening to UDP from the given port.
 
 
Monitor points and alarm are not sent immediately but
temporarily stored in a dictionary and sent at periodic
time intervals.
In this way if the same value is sent many times in the time interval 
only the last value is effectively sent to the java plugin mitigating
a misbehaving implementation.
 
  Methods defined here:
__init__(self, hostname, port)
Constructor.
 
@param hostname the host name to send data packets to
@param port the port to send UDP packets to
@raise exception: if the hostname is not resolved
shutdown(self)
Shutdown the plugin
start(self)
Start the UdpPlugin
submit(self, mPointID, value, valueType, timestamp=datetime.datetime(2023, 12, 29, 6, 34, 36, 787959), operationalMode='OPERATIONAL')
Submit a monitor point or alarm with the give ID to the java plugin.
 
The monitor point is added to the dictionary and will be sent later
 
@param mPointID: the not None nor empty ID of the monitor point
@param value: the value of the monitor point
@param valueType: the type of the monitor point (must be in self.valueType)
@param timestamp: (datetime) the timestamp when the value has been
                  read from the monitored system
@param operationalMode the optional operational mode must be in (self.mode)
@see: JsonMsg.IAS_SUPPORTED_TYPES

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes defined here:
SENDING_TIME_INTERVAL = 0.25
alarm = ['SET_CRITICAL', 'SET_HIGH', 'SET_MEDIUM', 'SET_LOW', 'CLEARED']
mode = ['STARTUP', 'INITIALIZATION', 'CLOSING', 'SHUTTEDDOWN', 'MAINTENANCE', 'MALFUNCTIONING', 'OPERATIONAL', 'DEGRADED', 'UNKNOWN']
valueType = ['LONG', 'INT', 'SHORT', 'BYTE', 'DOUBLE', 'FLOAT', 'BOOLEAN', 'CHAR', 'STRING', 'ALARM', 'ARRAYOFLONGS', 'ARRAYOFDOUBLES', 'TIMESTAMP']