コード例 #1
0
ファイル: window.py プロジェクト: andrepuschmann/OSPECORR
    def channelButtonClicked(self):
        print "channelButtonClicked"
        if self.tryInitActivityObject() == False:
            print "init failed"
            return
        
        engineName = self.ui.engineName.text()
        componentName = self.ui.componentName.text()            
        config = RadioConfig(engineName, componentName)

        if self.ui.ch1Button.isChecked():
            print "channel 1 cliked"
            index = 0
        elif self.ui.ch2Button.isChecked():
            print "channel 2 cliked"
            index = 1
        elif self.ui.ch3Button.isChecked():
            print "channel 3 cliked"
            index = 2

        # hack to get key for specific value
        for key, value in self.displaychannellist.items():
            if value == index:
                print "freq is: %s" % key
                config.tuneRadio(key)
コード例 #2
0
ファイル: window.py プロジェクト: liuqiaoping7/OSPECORR
    def channelButtonClicked(self):
        print "channelButtonClicked"
        if self.tryInitActivityObject() == False:
            print "init failed"
            return

        engineName = self.ui.engineName.text()
        componentName = self.ui.componentName.text()
        config = RadioConfig(engineName, componentName)

        if self.ui.ch1Button.isChecked():
            print "channel 1 cliked"
            index = 0
        elif self.ui.ch2Button.isChecked():
            print "channel 2 cliked"
            index = 1
        elif self.ui.ch3Button.isChecked():
            print "channel 3 cliked"
            index = 2

        # hack to get key for specific value
        for key, value in self.displaychannellist.items():
            if value == index:
                print "freq is: %s" % key
                config.tuneRadio(key)
コード例 #3
0
    def __init__(self,
                 channels,
                 propabilities,
                 avgHoldTime,
                 minHoldTime,
                 engineName=None,
                 componentName=None):
        threading.Thread.__init__(self)
        self.channels = channels
        self.props = propabilities
        self.avgHoldTime = avgHoldTime
        self.minHoldTime = minHoldTime

        if engineName is None:
            self.engineName = "phyengine1"
        else:
            self.engineName = engineName
        if componentName is None:
            self.componentName = "usrptx1"
        else:
            self.componentName = componentName

        print "Engine name %s" % self.engineName
        print "Component name %s" % self.componentName

        self.radioconfig = RadioConfig(engineName, componentName)

        _stop = threading.Event()
        _pause = threading.Event()
コード例 #4
0
 def __init__(self, channels, propabilities, avgHoldTime, minHoldTime, engineName=None, componentName=None):
      threading.Thread.__init__(self)
      self.channels = channels
      self.props = propabilities
      self.avgHoldTime = avgHoldTime
      self.minHoldTime = minHoldTime
      
      if engineName is None:
         self.engineName = "phyengine1"
      else:
         self.engineName = engineName
      if componentName is None:
         self.componentName = "usrptx1"
      else:
         self.componentName = componentName
      
      print "Engine name %s" % self.engineName
      print "Component name %s" % self.componentName
      
      self.radioconfig = RadioConfig(engineName, componentName)
      
      _stop = threading.Event()
      _pause = threading.Event()
コード例 #5
0
 def __init__(self, channels, propabilities, dutycycle, interarrivaltime, engineName=None, componentName=None):
      threading.Thread.__init__(self)
      self.channels = channels
      self.props = propabilities
      self.dutycycle = dutycycle
      self.interarrivaltime = interarrivaltime
      
      if engineName is None:
         self.engineName = "phyengine1"
      else:
         self.engineName = engineName
      if componentName is None:
         self.componentName = "usrptx1"
      else:
         self.componentName = componentName
      
      print "Engine name %s" % self.engineName
      print "Component name %s" % self.componentName
      
      self.radioconfig = RadioConfig(engineName, componentName)
      
      _stop = threading.Event()
      _pause = threading.Event()
コード例 #6
0
class ActivityController(threading.Thread):
    _stop = threading.Event()
    _pause = threading.Event()

    def __init__(self,
                 channels,
                 propabilities,
                 avgHoldTime,
                 minHoldTime,
                 engineName=None,
                 componentName=None):
        threading.Thread.__init__(self)
        self.channels = channels
        self.props = propabilities
        self.avgHoldTime = avgHoldTime
        self.minHoldTime = minHoldTime

        if engineName is None:
            self.engineName = "phyengine1"
        else:
            self.engineName = engineName
        if componentName is None:
            self.componentName = "usrptx1"
        else:
            self.componentName = componentName

        print "Engine name %s" % self.engineName
        print "Component name %s" % self.componentName

        self.radioconfig = RadioConfig(engineName, componentName)

        _stop = threading.Event()
        _pause = threading.Event()

    def pause(self):
        print "pause thread"
        self._pause.set()

    def resume(self):
        print "resume thread"
        self._pause.clear()

    def paused(self):
        return self._pause.isSet()

    def stop(self):
        print "stop called"
        self._stop.set()

    def stopped(self):
        return self._stop.isSet()

    def update_probabilites(self, probs):
        # check if they add up to 1.0
        propsum = 0
        for i in probs:
            propsum += i
        if propsum != 1.0:
            print "Cumulative probability is not 1.0, aborting."
            return -1
        self.props = probs
        print "Channel probabilities have been updated to"
        print self.props
        return 0

    # From PythonCookBook, to draw from list with fix probability
    def random_pick(self, some_list, probabilities):
        x = random.uniform(0, 1)
        cumulative_probability = 0.0
        for item, item_probability in zip(some_list, probabilities):
            cumulative_probability += item_probability
            if x < cumulative_probability: break
        return item

    def run(self):

        # start in pause mode
        self.pause()

        if self.update_probabilites(self.props) == -1:
            return

        # start work
        print "Start : %s" % time.ctime()
        while not self.stopped():
            # pause loop
            while not self.paused():
                # get freq of next channel
                freq = self.random_pick(self.channels, self.props)
                print "Tune to frequency %s" % freq
                self.radioconfig.tuneRadio(freq)

                # draw sample to see for how long we have to stay on channel
                holdtime = np.random.poisson(self.avgHoldTime)
                holdtime = max(
                    holdtime,
                    self.minHoldTime)  # stay at least for minHoldTime
                print "Holdtime %s" % holdtime
                time.sleep(holdtime)

            print "thread paused .."
            time.sleep(1)
        print "End : %s" % time.ctime()
コード例 #7
0
class ActivityController(threading.Thread):
    _stop = threading.Event()
    _pause = threading.Event()
    
    def __init__(self, channels, propabilities, avgHoldTime, minHoldTime, engineName=None, componentName=None):
         threading.Thread.__init__(self)
         self.channels = channels
         self.props = propabilities
         self.avgHoldTime = avgHoldTime
         self.minHoldTime = minHoldTime
         
         if engineName is None:
            self.engineName = "phyengine1"
         else:
            self.engineName = engineName
         if componentName is None:
            self.componentName = "usrptx1"
         else:
            self.componentName = componentName
         
         print "Engine name %s" % self.engineName
         print "Component name %s" % self.componentName
         
         self.radioconfig = RadioConfig(engineName, componentName)
         
         _stop = threading.Event()
         _pause = threading.Event()

    def pause(self):
        print "pause thread"
        self._pause.set()
    
    def resume(self):
        print "resume thread"
        self._pause.clear()
    
    def paused(self):
        return self._pause.isSet()

    def stop(self):
        print "stop called"
        self._stop.set()

    def stopped(self):
        return self._stop.isSet()
        
    def update_probabilites(self, probs):
        # check if they add up to 1.0
        propsum = 0
        for i in probs:
            propsum+=i
        if propsum != 1.0:
            print "Cumulative probability is not 1.0, aborting."
            return -1
        self.props = probs
        print "Channel probabilities have been updated to" 
        print self.props
        return 0

    # From PythonCookBook, to draw from list with fix probability
    def random_pick(self, some_list, probabilities):
        x = random.uniform(0, 1)
        cumulative_probability = 0.0
        for item, item_probability in zip(some_list, probabilities):
            cumulative_probability += item_probability
            if x < cumulative_probability: break
        return item

    def run(self):

        # start in pause mode
        self.pause()
        
        if self.update_probabilites(self.props) == -1:
            return

        # start work
        print "Start : %s" % time.ctime()
        while not self.stopped():
            # pause loop
            while not self.paused():
                # get freq of next channel
                freq = self.random_pick(self.channels, self.props)
                print "Tune to frequency %s" % freq
                self.radioconfig.tuneRadio(freq)
                
                # draw sample to see for how long we have to stay on channel
                holdtime = np.random.poisson(self.avgHoldTime)
                holdtime = max(holdtime, self.minHoldTime) # stay at least for minHoldTime
                print "Holdtime %s" % holdtime
                time.sleep(holdtime)
                
            print "thread paused .."
            time.sleep(1)
        print "End : %s" % time.ctime()