Esempio n. 1
0
    def update(self, data, error, error_code):
        """Emit the 'replyFromSpec' signal."""
        self.data = data
        self.error = error
        self.error_code = error_code

        SpecEventsDispatcher.emit(self, 'replyFromSpec', (self, ))
Esempio n. 2
0
    def update(self, data, error, error_code):
        """Emit the 'replyFromSpec' signal."""
        self.data = data
        self.error = error
        self.error_code = error_code

        SpecEventsDispatcher.emit(self, "replyFromSpec", (self,))
Esempio n. 3
0
    def specConnected(self):
        """Emit the 'connected' signal when the remote Spec version is connected."""
        old_state = self.state
        self.state = CONNECTED
        if old_state != CONNECTED:
            logging.getLogger('SpecClient').info('Connected to %s:%s', self.host, (self.scanport and self.scanname) or self.port)

            SpecEventsDispatcher.emit(self, 'connected', ())
Esempio n. 4
0
 def specConnected(self):
     """Emit the 'connected' signal when the remote Spec version is connected."""
     old_state = self.state
     self.state = CONNECTED
     if old_state != CONNECTED:
         logging.getLogger('SpecClient').info(
             'Connected to %s:%s', self.host,
             (self.scanport and self.scanname) or self.port)
         SpecEventsDispatcher.emit(self, 'connected', ())
Esempio n. 5
0
 def specConnected(self):
     """Emit the 'connected' signal when the remote Spec version is connected."""
     old_state = self.state
     self.state = CONNECTED
     if old_state != CONNECTED:
         log.log(
             1, 'Connected to %s:%s' %
             (self.host, (self.scanport and self.scanname) or self.port))
         SpecEventsDispatcher.emit(self, 'connected', ())
Esempio n. 6
0
 def spec_disconnected(self):
     """Emit the 'disconnected' signal when the remote Spec version is disconnected."""
     # SpecEventsDispatcher.dispatch()
     old_state = self.state
     self.state = DISCONNECTED
     if old_state == CONNECTED:
         log.log(
             1, 'disconnected from %s:%s' %
             (self.host, self.specname or self.port))
         SpecEventsDispatcher.emit(self, 'disconnected', ())
Esempio n. 7
0
    def specDisconnected(self):
        """Emit the 'disconnected' signal when the remote Spec version is disconnected."""
        old_state = self.state
        self.state = DISCONNECTED
        if old_state == CONNECTED:
            logging.getLogger('SpecClient').info('Disconnected from %s:%s', self.host, (self.scanport and self.scanname) or self.port)

            SpecEventsDispatcher.emit(self, 'disconnected', ())
 
            self.connected_event.clear()
Esempio n. 8
0
    def update(self, data, error, error_code):
        """Emit the 'replyFromSpec' signal."""

        self.data = data
        self.error = error
        self.error_code = error_code

        self.pending = False
        log.log(2, "emitting replyArrived")
        SpecEventsDispatcher.emit(self, 'replyArrived', (self, ))
Esempio n. 9
0
    def specDisconnected(self):
        """Emit the 'disconnected' signal when the remote Spec version is disconnected."""
        SpecEventsDispatcher.dispatch()

        old_state = self.state
        self.state = DISCONNECTED
        if old_state == CONNECTED:
            log.info('Disconnected from %s:%s', self.host,
                     (self.scanport and self.scanname) or self.port)

            SpecEventsDispatcher.emit(self, 'disconnected', ())
Esempio n. 10
0
    def specConnected(self):
        """Emit the 'connected' signal when the remote Spec version is connected."""
        old_state = self.state
        self.state = CONNECTED
        if old_state != CONNECTED:
            logging.getLogger("SpecClient").info(
                "Connected to %s:%s", self.host, (self.scanport and self.scanname) or self.port
            )

            self.connected_event.set()

            SpecEventsDispatcher.emit(self, "connected", ())
Esempio n. 11
0
    def specDisconnected(self):
        """Emit the 'disconnected' signal when the remote Spec version is disconnected."""
        old_state = self.state
        self.state = DISCONNECTED
        if old_state == CONNECTED:
            logging.getLogger('SpecClient').info(
                'Disconnected from %s:%s', self.host,
                (self.scanport and self.scanname) or self.port)

            SpecEventsDispatcher.emit(self, 'disconnected', ())

            self.connected_event.clear()
Esempio n. 12
0
 def error(self, error):
     """Propagate 'error' event"""
     SpecEventsDispatcher.emit(self, 'error', (error, ))
Esempio n. 13
0
    def error(self, error):
        """Emit the 'error' signal when the remote Spec version signals an error."""
        logging.getLogger("SpecClient").error("Error from Spec: %s", error)

        SpecEventsDispatcher.emit(self, "error", (error,))
Esempio n. 14
0
    def update(self, channelValue, deleted=False, force=False):
        """Update channel's value and emit the 'valueChanged' signal."""
        if isinstance(channelValue, dict) and self.access1 is not None:
            if self.access1 in channelValue:
                if deleted:
                    SpecEventsDispatcher.emit(self, 'valueChanged', (
                        None,
                        self.name,
                    ))
                else:
                    if self.access2 is None:
                        if force or self.value is None or self.value != channelValue[
                                self.access1]:
                            self.value = channelValue[self.access1]
                            SpecEventsDispatcher.emit(self, 'valueChanged', (
                                self.value,
                                self.name,
                            ))
                    else:
                        if self.access2 in channelValue[self.access1]:
                            if deleted:
                                SpecEventsDispatcher.emit(
                                    self, 'valueChanged', (
                                        None,
                                        self.name,
                                    ))
                            else:
                                if force or self.value is None or self.value != channelValue[
                                        self.access1][self.access2]:
                                    self.value = channelValue[self.access1][
                                        self.access2]
                                    SpecEventsDispatcher.emit(
                                        self, 'valueChanged', (
                                            self.value,
                                            self.name,
                                        ))
            return

        #if type(self.value) == types.DictType and type(channelValue) == types.DictType:
        if isinstance(self.value, dict) and isinstance(channelValue, dict):
            # update dictionary
            if deleted:
                for key, val in iter(channelValue.items()):
                    if isinstance(val, dict):
                        for k in val:
                            try:
                                del self.value[key][k]
                            except KeyError:
                                pass
                        if len(self.value[key]
                               ) == 1 and None in self.value[key]:
                            self.value[key] = self.value[key][None]
                    else:
                        try:
                            del self.value[key]
                        except KeyError:
                            pass
            else:
                for k1, v1 in iter(channelValue.items()):
                    if isinstance(v1, dict):
                        try:
                            self.value[k1].update(v1)
                        except KeyError:
                            self.value[k1] = v1
                        except AttributeError:
                            self.value[k1] = {None: self.value[k1]}
                            self.value[k1].update(v1)
                    else:
                        if k1 in self.value.keys() and isinstance(
                                self.value[k1], dict):
                            self.value[k1][None] = v1
                        else:
                            self.value[k1] = v1
            value2emit = self.value.copy()
        else:
            if deleted:
                self.value = None
            else:
                self.value = channelValue
            value2emit = self.value

        SpecEventsDispatcher.emit(self, 'valueChanged', (
            value2emit,
            self.name,
        ))
Esempio n. 15
0
    def update(self, channelValue, deleted = False):
        """Update channel's value and emit the 'valueChanged' signal."""
        if type(channelValue) == types.DictType and self.access1 is not None:
            if self.access1 in channelValue:
                if deleted:
                    SpecEventsDispatcher.emit(self, 'valueChanged', (None, self.name, ))
                else:
                    if self.access2 is None:
                        if self.value is None or self.value != channelValue[self.access1]: 
                            self.value = channelValue[self.access1]
                            SpecEventsDispatcher.emit(self, 'valueChanged', (self.value, self.name, ))
                    else:
                        if self.access2 in channelValue[self.access1]:
                            if deleted:
                                SpecEventsDispatcher.emit(self, 'valueChanged', (None, self.name, ))
                            else:
                                if self.value is None or self.value != channelValue[self.access1][self.access2]:
                                    self.value = channelValue[self.access1][self.access2]
                                    SpecEventsDispatcher.emit(self, 'valueChanged', (self.value, self.name, ))
            return

        if type(self.value) == types.DictType and type(channelValue) == types.DictType:
            # update dictionary
            if deleted:
                for key,val in channelValue.iteritems():
                    if type(val) == types.DictType:
                        for k in val:
                            try:
                                del self.value[key][k]
                            except KeyError:
                                pass
                        if len(self.value[key])==1 and None in self.value[key]:
                            self.value[key]=self.value[key][None]
                    else:
                        try:
                            del self.value[key]
                        except KeyError:
                            pass
            else:
                for k1,v1 in channelValue.iteritems():
                    if type(v1)==types.DictType:
                        try:
                            self.value[k1].update(v1)
                        except KeyError:
                            self.value[k1]=v1
                        except AttributeError:
                            self.value[k1]={None: self.value[k1]}
                            self.value[k1].update(v1)
                    else:
                        if self.value.has_key(k1) and type(self.value[k1]) == types.DictType:
                            self.value[k1][None] = v1
                        else:
                            self.value[k1] = v1
            value2emit=self.value.copy()
        else:
            if deleted:
                self.value = None
            else:
                self.value = channelValue
            value2emit=self.value

        SpecEventsDispatcher.emit(self, 'valueChanged', (value2emit, self.name, ))
Esempio n. 16
0
 def error(self, error):
     """Propagate 'error' event"""
     SpecEventsDispatcher.emit(self, 'error', (error, ))
Esempio n. 17
0
 def disconnected(self):
     """Propagate 'disconnection' event"""
     SpecEventsDispatcher.emit(self, 'disconnected', ())
Esempio n. 18
0
 def simulationStatusChanged(self, sim_state):
     self.simulation_mode = sim_state
     SpecEventsDispatcher.emit(self, 'simulation', (sim_state, ))
Esempio n. 19
0
    def update(self, value, deleted = False,force=False):
        """Update channel's value and emit the 'valueChanged' signal."""

        # receive dictionary - access1 is set (init with var/arr/idx1 or var/arr/idx1/idx2 )
        if isinstance(value, dict) and self.access1 is not None:
            if self.access1 in value:
                if deleted:
                    SpecEventsDispatcher.emit(self, 'valueChanged', (None, self.name, ))
                else:
                    if self.access2 is None:
                        if force or self.value is None or self.value != value[self.access1]: 
                            self.value = value[self.access1]
                            SpecEventsDispatcher.emit(self, 'valueChanged', (self.value, self.name, ))
                    else:
                        if self.access2 in value[self.access1]:
                            if deleted:
                                SpecEventsDispatcher.emit(self, 'valueChanged', (None, self.name, ))
                            else:
                                if force or self.value is None or self.value != value[self.access1][self.access2]:
                                    self.value = value[self.access1][self.access2]
                                    SpecEventsDispatcher.emit(self, 'valueChanged', (self.value, self.name, ))
            return

        # receive dictionary - access1 is not set (init with var/arr)
        if isinstance(self.value, dict) and isinstance(value, dict):
            # update dictionary
            if deleted:
                for key,val in iter(value.items()):
                    if isinstance(val,dict):
                        for k in val:
                            try:
                                del self.value[key][k]
                            except KeyError:
                                pass
                        if len(self.value[key])==1 and None in self.value[key]:
                            self.value[key]=self.value[key][None]
                    else:
                        try:
                            del self.value[key]
                        except KeyError:
                            pass
            else:
                for k1,v1 in iter(value.items()):
                    if isinstance(v1,dict):
                        try:
                            self.value[k1].update(v1)
                        except KeyError:
                            self.value[k1]=v1
                        except AttributeError:
                            self.value[k1]={None: self.value[k1]}
                            self.value[k1].update(v1)
                    else:
                        if k1 in self.value.keys() and isinstance(self.value[k1], dict):
                            self.value[k1][None] = v1
                        else:
                            self.value[k1] = v1
            value2emit=self.value.copy()
            SpecEventsDispatcher.emit(self, 'valueChanged', (value2emit, self.name, ))
            return

        # no assoc array - (init with var/var_name)
        if deleted:
            self.value = None
        else:
            self.value = value
            SpecEventsDispatcher.emit(self, 'valueChanged', (self.value, self.name, ))
Esempio n. 20
0
    def error(self, error):
        """Emit the 'error' signal when the remote Spec version signals an error."""
        log.error('Error from Spec: %s', error)

        SpecEventsDispatcher.emit(self, 'error', (error, ))
Esempio n. 21
0
 def disconnected(self):
     """Propagate 'disconnection' event"""
     SpecEventsDispatcher.emit(self, 'disconnected', ())