Esempio n. 1
0
    def gather(self):
        reasons = readFromFile(
            self.__class__.SYSFS_RESUME_REASON_PATH).split('\n')
        for line in reasons:
            if line.startswith("*"):
                reason = line[2:]
                break
        else:
            print "nope"
            logger.info("No resume reason marked in %s" %
                        self.__class__.SYSFS_RESUME_REASON_PATH)
            return "unknown"

        if reason == "EINT09_PMU":
            logger.debug("PMU resume reason marked in %s" %
                         self.__class__.SYSFS_RESUME_REASON_PATH)

            value = readFromFile(self.__class__.SYSFS_RESUME_SUBREASON_PATH)
            try:
                subreason = self._intmap2[value]
            except KeyError:
                logger.debug("Unknown subreason for PMU resume")
                return "PMU"
            else:
                return subreason
        else:
            return self._intmap1.get(reason, "unknown")
Esempio n. 2
0
 def __init__( self, bus, index, node ):
     self.interface = self.DBUS_INTERFACE
     self.path = DBUS_PATH_PREFIX + "/Display/%s" % cleanObjectName( node.split('/')[-1] )
     dbus.service.Object.__init__( self, bus, self.path )
     logger.info( "%s %s initialized. Serving %s at %s" % ( self.__class__.__name__, __version__, self.interface, self.path ) )
     self.node = node
     self.max = int( readFromFile( "%s/max_brightness" % self.node ) )
     self.current = int( readFromFile( "%s/actual_brightness" % self.node ) )
     logger.debug( "current brightness %d, max brightness %d" % ( self.current, self.max ) )
     self.fbblank = config.getBool( MODULE_NAME, "fb_blank", True )
     logger.info( "framebuffer blanking %s" % ( "enabled" if self.fbblank else "disabled" ) )
     # also register object under an incremental path
     self.path2 = DBUS_PATH_PREFIX + "/Display/%d" % self.__class__.OBJECT_PATH_COUNTER
     self.add_to_connection( self._connection, self.path2  )
     self.__class__.OBJECT_PATH_COUNTER += 1
Esempio n. 3
0
 def GetInfo( self ):
     # AC/BATs differ in lots of nodes. Do we want additional methods for present / online ?
     keys = [ key for key in os.listdir( self.node ) if key != "uevent" if os.path.isfile( "%s/%s" % ( self.node, key ) ) ]
     dict = {}
     for key in keys:
         dict[key] = readFromFile( "%s/%s" % ( self.node, key ) )
     return dict
Esempio n. 4
0
 def readCapacity( self ):
     if not self.isBattery:
         return 100
     if not self.isPresent():
         return -1
     data = readFromFile( "%s/capacity" % self.node )
     try:
         capacity = int( data )
     except ValueError:
         energy_full = readFromFile( "%s/energy_full" % self.node )
         energy_now = readFromFile( "%s/energy_now" % self.node )
         if energy_full == "N/A" or energy_now == "N/A":
             return -1
         else:
             return 100 * int(energy_now) / int(energy_full)
     else:
         return capacity
Esempio n. 5
0
 def GetCpuInfo(self):
     cpuinfo = readFromFile("/proc/cpuinfo").split('\n')
     d = {}
     for line in cpuinfo:
         try:
             key, value = line.split(':')
         except ValueError:  # no valid line
             continue
         d[key.strip()] = value.strip()
     return d
Esempio n. 6
0
 def __init__( self, bus, index, node ):
     self.interface = self.DBUS_INTERFACE
     self.path = DBUS_PATH_PREFIX + "/LED/%s" % cleanObjectName( node.split('/')[-1] )
     dbus.service.Object.__init__( self, bus, self.path )
     logger.info( "%s %s initialized. Serving %s at %s" % ( self.__class__.__name__, __version__, self.interface, self.path ) )
     self.node = node
     # initial status = off
     self.SetBrightness( 0 )
     # store available triggers for later
     self.triggers = readFromFile( "%s/trigger" % self.node ).split()
     logger.debug( "available triggers %s" % self.triggers )
Esempio n. 7
0
def prepareDaemonConfigurationForInterface( iface ):
#============================================================================#
    name = iface.name()
    address = iface.ipAddress4()

    nameservers = ""
    resolv_conf = readFromFile( ETC_RESOLV_CONF ).split( '\n' )
    for line in resolv.conf:
        if line.startswith( "nameserver" ):
            nameservers += ( line.strip().split( ' ' ) )
            nameservers += " "

    conf_file = daemon_conf_file_template % ( name, nameservers, address )

    writeToFile( ETC_RESOLV_CONF, conf_file )
Esempio n. 8
0
def prepareDaemonConfigurationForInterface(iface):
    #============================================================================#
    name = iface.name()
    address = iface.ipAddress4()

    nameservers = ""
    resolv_conf = readFromFile(ETC_RESOLV_CONF).split('\n')
    for line in resolv_conf:
        if line.startswith("nameserver"):
            nameserver = line.strip().split(' ')[1]
            nameservers += nameserver
            nameservers += " "

    conf_file = daemon_conf_file_template % (name, nameservers, address)

    writeToFile(ETC_UDHCPD_CONF, conf_file)
Esempio n. 9
0
    def __init__( self, bus, index, node ):
        self.interface = self.DBUS_INTERFACE
        self.path = DBUS_PATH_PREFIX + "/PowerSupply/%s" % cleanObjectName( node.split('/')[-1] )
        dbus.service.Object.__init__( self, bus, self.path )
        logger.info( "%s %s initialized. Serving %s at %s" % ( self.__class__.__name__, __version__, self.interface, self.path ) )
        self.node = node

        self.powerStatus = "unknown"
        self.online = False
        self.capacity = -1
        self.type_ = readFromFile( "%s/type" % self.node ).lower()
        self.isBattery = ( self.type_ == "battery" )

        # get polling-free battery notifications via kobject/uevent
        if self.isBattery:
            KObjectDispatcher.addMatch( "change", "/class/power_supply/%s" % node.split('/')[-1], self.handlePropertyChange )
            capacityCheckTimeout = config.getInt( MODULE_NAME, "capacity_check_timeout", 60*5 )
            self.capacityWatch = gobject.timeout_add_seconds( capacityCheckTimeout, self.onCapacityCheck )
            # FIXME should this rather be handled globally (controller issuing a coldstart on every subsystem)? Yes!
            gobject.idle_add( self.onColdstart )
Esempio n. 10
0
 def GetCurrentTime( self ):
     """Return seconds since epoch (UTC)"""
     return int( readFromFile( "%s/since_epoch" % self.node ) )
Esempio n. 11
0
 def getPower(self):
     return int(readFromFile(self.powernode))
Esempio n. 12
0
 def onColdstart( self ):
     data = readFromFile( "%s/uevent" % self.node )
     parts = data.split( '\n' )
     d = dict( [ x.split('=') for x in parts if '=' in x ] )
     self.handlePropertyChange( "coldplug", "<this-battery>", **d )
     return False # mainloop: don't call me again
Esempio n. 13
0
 def theType( self ):
     return readFromFile( "%s/type" % self.node )
Esempio n. 14
0
 def isPresent( self ):
     toRead = "%s/present" if self.isBattery else "%s/online"
     present = readFromFile( toRead % self.node )
     return ( present == "1" )
Esempio n. 15
0
 def getPower( self ):
     return readFromFile( self.powernode ).startswith( "status:\t\tenabled" )
Esempio n. 16
0
 def GetBacklightPower( self ):
     return readFromFile( "%s/bl_power" % self.node ) == "0"
Esempio n. 17
0
 def GetBrightness( self ):
     value = readFromFile( "%s/actual_brightness" % self.node )
     return self._valueToPercent( value )