editors/DebugViewer.py
changeset 1365 debc97102b23
parent 1363 e87e0166d0a7
child 1431 df59be5afb08
equal deleted inserted replaced
1364:e9e17d3b2849 1365:debc97102b23
   104         # debugging
   104         # debugging
   105         if self.SubscribeTick and self.Debug:
   105         if self.SubscribeTick and self.Debug:
   106             
   106             
   107             # Subscribe tick to new data producer
   107             # Subscribe tick to new data producer
   108             if producer is not None:
   108             if producer is not None:
   109                 producer.SubscribeDebugIECVariable("__tick__", self)
   109                 producer.SubscribeDebugIECVariable("__tick__", self, True)
   110             
   110             
   111             # Unsubscribe tick from old data producer
   111             # Unsubscribe tick from old data producer
   112             if getattr(self, "DataProducer", None) is not None:
   112             if getattr(self, "DataProducer", None) is not None:
   113                 self.DataProducer.UnsubscribeDebugIECVariable("__tick__", self)
   113                 self.DataProducer.UnsubscribeDebugIECVariable("__tick__", self)
   114         
   114         
   132             consumer.Inhibit(inhibit)
   132             consumer.Inhibit(inhibit)
   133         
   133         
   134         # Save inhibit flag
   134         # Save inhibit flag
   135         self.Inhibited = inhibit
   135         self.Inhibited = inhibit
   136     
   136     
   137     def AddDataConsumer(self, iec_path, consumer):
   137     def AddDataConsumer(self, iec_path, consumer, buffer_list=False):
   138         """
   138         """
   139         Subscribe data consumer to DataProducer
   139         Subscribe data consumer to DataProducer
   140         @param iec_path: Path in PLC of variable needed by data consumer
   140         @param iec_path: Path in PLC of variable needed by data consumer
   141         @param consumer: Data consumer to subscribe
   141         @param consumer: Data consumer to subscribe
   142         @return: List of value already received [(tick, data),...] (None if
   142         @return: List of value already received [(tick, data),...] (None if
   146         if self.DataProducer is None:
   146         if self.DataProducer is None:
   147             return None
   147             return None
   148         
   148         
   149         # Subscribe data consumer to DataProducer
   149         # Subscribe data consumer to DataProducer
   150         result = self.DataProducer.SubscribeDebugIECVariable(
   150         result = self.DataProducer.SubscribeDebugIECVariable(
   151                         iec_path, consumer)
   151                         iec_path, consumer, buffer_list)
   152         if result is not None and consumer != self:
   152         if result is not None and consumer != self:
   153             
   153             
   154             # Store data consumer if successfully subscribed and inform
   154             # Store data consumer if successfully subscribed and inform
   155             # consumer of variable data type
   155             # consumer of variable data type
   156             self.DataConsumers[consumer] = iec_path
   156             self.DataConsumers[consumer] = iec_path
   176         Called to Subscribe all data consumers contained in DebugViewer.
   176         Called to Subscribe all data consumers contained in DebugViewer.
   177         May be overridden by inherited classes.
   177         May be overridden by inherited classes.
   178         """
   178         """
   179         # Subscribe tick if needed
   179         # Subscribe tick if needed
   180         if self.SubscribeTick and self.Debug and self.DataProducer is not None:
   180         if self.SubscribeTick and self.Debug and self.DataProducer is not None:
   181             self.DataProducer.SubscribeDebugIECVariable("__tick__", self)
   181             self.DataProducer.SubscribeDebugIECVariable("__tick__", self, True)
   182     
   182     
   183     def UnsubscribeAllDataConsumers(self, tick=True):
   183     def UnsubscribeAllDataConsumers(self, tick=True):
   184         """
   184         """
   185         Called to Unsubscribe all data consumers.
   185         Called to Unsubscribe all data consumers.
   186         """
   186         """