Example #1
0
  def scanDevices(self):

    #look up our data
    data = {}
    data['bots'] = hive.scanBots()
    data['cameras'] = hive.scanCameras()
    
    scanData = json.dumps(data)
    if scanData != self.lastScanData:
      self.lastScanData = scanData
      self.log.info("Device Scan Results: %s" % data)

      #pull in images from the webcams and save them as base64
      camera_files = []
      if len(data['cameras']):
        for idx, camera in enumerate(data['cameras']):
          outfile = camera['name'] + '.jpg'
          try:
            if hive.takePicture(camera['device'], watermark=None, output=outfile):
              camera_files.append(outfile)
          except Exception as ex:
            self.exception(ex)

      #now update the main site
      self.api.sendDeviceScanResults(data, camera_files)
Example #2
0
  def takePicture(self, filename):
    #create our command to do the webcam image grabbing
    try:
      
      #do we even have a webcam config setup?
      if 'webcam' in self.config:
        if self.data['status'] == 'working':
          watermark = "%s :: %0.2f%% :: BotQueue.com" % (self.config['name'], float(self.data['job']['progress']))
        else:
          watermark = "%s :: BotQueue.com" % self.config['name']

        device = self.config['webcam']['device']

        brightness = 50
        if 'brightness' in self.config['webcam']:
          brightness = self.config['webcam']['brightness']

        contrast = 50
        if 'contrast' in self.config['webcam']:
          contrast = self.config['webcam']['contrast']
              
        return hive.takePicture(device=device, watermark=watermark, output=filename, brightness=brightness, contrast=contrast)

      else:
        return False

    #main try/catch block  
    except Exception as ex:
      self.exception(ex)
      return False