Beispiel #1
0
 def start(self):
     super(Kwh2Kw, self).start()
     self.running = True
     self._history = KwList(self._window_size)
     self._sid = SM.create_polled({self._nid:self.link})
     # retrieve an initial value to start things off 
     value = ts = None
     result = SM.poll_all(self._sid)
     if result is None:
         # still waiting
         try:
             value = as_node(self.link).get()
             ts = time.time()
         except:
             pass
     else:
         try:
             value = result[self._nid]['value']
             ts = result[self._nid]['timestamp']
         except:
             pass
         if isinstance(value, MpxException):
             value = None
     if value and ts:
         self._history.add(value, ts)
     self._scheduled = scheduler.seconds_from_now_do(self.sample_period, self.run_update)
     return
Beispiel #2
0
 def _proxy_get_link(self, skip_cache=0):
     try:
         if self._proxy_start_exception:  #if there was an exception during start, repeat it now
             self._start_proxy_get() #try again until it starts ok
         answer = None
         if self.use_subscription:
             if (self._proxy_sid is None):
                 self._proxy_sid = SM.create_polled(
                     {1:self._proxy_linked_node()}, timeout=None
                     )
             answer = SM.poll_all(self._proxy_sid)[1]
             if isinstance(answer, dict):
                 answer = answer['value']
                 if isinstance(answer, Exception):
                     raise answer
         else:
             answer = self._proxy_linked_node().get() # @fixme skip_cache) how to use gets that dont have skip cache
         self._proxy_set_exception(None)
         return answer
     except Exception, e: #transfer any exception over to the proxy
         if hasattr(self, 'error_response'): 
             if self.error_response != '%ERROR%':   #default error response is to pass exception up
                 if self.error_response == '%NONE%': return None
                 return self.error_response  #return specific desired value when an error occurs
         self._proxy_set_exception(e)
         raise # reraise the exception
Beispiel #3
0
 def start(self):
     super(Kwh2Kw, self).start()
     self.running = True
     self._history = KwList(self._window_size)
     self._sid = SM.create_polled({self._nid: self.link})
     # retrieve an initial value to start things off
     value = ts = None
     result = SM.poll_all(self._sid)
     if result is None:
         # still waiting
         try:
             value = as_node(self.link).get()
             ts = time.time()
         except:
             pass
     else:
         try:
             value = result[self._nid]['value']
             ts = result[self._nid]['timestamp']
         except:
             pass
         if isinstance(value, MpxException):
             value = None
     if value and ts:
         self._history.add(value, ts)
     self._scheduled = scheduler.seconds_from_now_do(
         self.sample_period, self.run_update)
     return
Beispiel #4
0
 def _proxy_get_link(self, skip_cache=0):
     try:
         if self._proxy_start_exception:  #if there was an exception during start, repeat it now
             self._start_proxy_get()  #try again until it starts ok
         answer = None
         if self.use_subscription:
             if (self._proxy_sid is None):
                 self._proxy_sid = SM.create_polled(
                     {1: self._proxy_linked_node()}, timeout=None)
             answer = SM.poll_all(self._proxy_sid)[1]
             if isinstance(answer, dict):
                 answer = answer['value']
                 if isinstance(answer, Exception):
                     raise answer
         else:
             answer = self._proxy_linked_node().get(
             )  # @fixme skip_cache) how to use gets that dont have skip cache
         self._proxy_set_exception(None)
         return answer
     except Exception, e:  #transfer any exception over to the proxy
         if hasattr(self, 'error_response'):
             if self.error_response != '%ERROR%':  #default error response is to pass exception up
                 if self.error_response == '%NONE%': return None
                 return self.error_response  #return specific desired value when an error occurs
         self._proxy_set_exception(e)
         raise  # reraise the exception
Beispiel #5
0
 def create_polled(self, node_reference_table=None, timeout=300):
     if not self._properties_loaded:
         self._load_properties()
     if node_reference_table is None:
         node_reference_table = {}
         points = self._get_points()
         for point in points:
             node_reference_table[str((point.ptype, point.name))] = point.reference       
     return SM.create_polled(node_reference_table, timeout)
Beispiel #6
0
 def create_polled(self, node_reference_table=None, timeout=300):
     if node_reference_table is None:
         node_reference_table = {}
         for mount_point, nodepath in self.get_mount_points():
             try:
                 node_reference_table[nodepath] = mount_point.host
             except:
                 msg = 'Failed to establish presence monitoring for %s' % nodepath
                 msglog.log('Entity Manager', msglog.types.WARN, msg)
     return SM.create_polled(node_reference_table, timeout)
Beispiel #7
0
 def create_polled(self, node_reference_table=None, timeout=300):
     if not self._properties_loaded:
         self._load_properties()
     if node_reference_table is None:
         node_reference_table = {}
         points = self._get_points()
         for point in points:
             node_reference_table[str(
                 (point.ptype, point.name))] = point.reference
     return SM.create_polled(node_reference_table, timeout)
Beispiel #8
0
 def create_polled(self, node_reference_table=None, timeout=300):
     if node_reference_table is None:
         node_reference_table = {}
         for mount_point, nodepath in self.get_mount_points():
             try:
                 node_reference_table[nodepath] = mount_point.host
             except:
                 msg = 'Failed to establish presence monitoring for %s' % nodepath
                 msglog.log('Entity Manager', msglog.types.WARN, msg)
     return SM.create_polled(node_reference_table, timeout)
Beispiel #9
0
 def create_polled(self, node_reference_table=None, timeout=300):
     if node_reference_table is None:
         node_reference_table = {}
         for setpoint_id in self._entity_map.keys():
             for entity_map in self._entity_map.get(setpoint_id, []):
                 try:
                     property = entity_map.get_property_reference()
                 except:
                     continue
                 entity_path = entity_map.entity_path
                 nrt_id = str([setpoint_id, entity_path])
                 node_reference_table[nrt_id] = property
     return SM.create_polled(node_reference_table, timeout)
Beispiel #10
0
 def create_polled(self, node_reference_table=None, timeout=300):
     if node_reference_table is None:
         node_reference_table = {}
         for setpoint_id in self._entity_map.keys():
             for entity_map in self._entity_map.get(setpoint_id, []):
                 try:
                     property = entity_map.get_property_reference()
                 except:
                     continue
                 entity_path = entity_map.entity_path
                 nrt_id = str([setpoint_id, entity_path])
                 node_reference_table[nrt_id] = property
     return SM.create_polled(node_reference_table, timeout)
Beispiel #11
0
t.change_hardware_settings('IP','eth0','1','47428')


from mpx.lib.node import as_node
ai1 = as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01')
aipv=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/present_value')
ain=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/object_name')
from mpx.lib.bacnet._bacnet import read_property_multiple_g3 as rpm
rpm(aipv.bacnet_property.device, [aipv.bacnet_property.property_tuple, ain.bacnet_property.property_tuple])

from mpx.service.subscription_manager._manager import SUBSCRIPTION_MANAGER as SM
from mpx.lib.node import as_node
ai1 = as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01')
aipv=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/present_value')
ain=as_node('interfaces/eth0/BACnetIP/2/AnalogInput_01/object_name')
sid = SM.create_polled({1:aipv, 2:ain})

from mpx.service.subscription_manager._manager import SUBSCRIPTION_MANAGER as SM
from mpx.lib.node import as_node
aipv=as_node('services/network/BACnet/internetwork1/Devices/1/8/1/77')
ain =as_node('services/network/BACnet/internetwork1/Devices/1/8/1/79')
pcm1=as_node('services/network/BACnet/internetwork1/Devices/1/151/1/85')
pcm2=as_node('services/network/BACnet/internetwork1/Devices/1/151/1/79')
up = as_node('services/network/BACnet/internetwork1/Devices/1/151/1/10209')
mdd= as_node('services/network/BACnet/internetwork1/Devices/1/151/1/10210')

sid = SM.create_polled({1:aipv, 2:ain, 3:pcm1, 4:pcm2, 5:up, 6:mdd})
sid = SM.create_polled({5:up,6:mdd})
SM.poll_all(sid)

SM.destroy(sid)