davor emard wrote:
> HI
>
> Thanks again for the on-off, and I'd like to know more - do you
> have some similar recipe either via proc or ioctl to read the battery status?
>
> (I'd like to perform a shutdown if battery is found low)
>
> On the opentom there's a small code snippet but it
> refers to #include some ioctl constants that I don't
> know the value as I don't have adequate include file.h
>   

The code I use for reading the battery is this (cut & paste from a
larger project):

support of /proc/barcelona/battery disappeared in fwcore 6.

this is the code I use now to read an approximate battery level (from 0
to 100)


#define BATTERY_DEVNAME                         "battery"
#define BATTERY_MAJOR                           241

typedef struct {
        UINT16 u16BatteryVoltage;               /* battery voltage */
        UINT16 u16ChargeCurrent;                /* charge current */
        UINT8 u8ChargeStatus;
        UINT8 u8VoltageSource;
} BATTERY_STATUS;


#define BATTERY_DRIVER_MAGIC    'B' /* Battery driver magic number */
#define IOR_BATTERY_STATUS      _IOR(BATTERY_DRIVER_MAGIC, 3,
BATTERY_STATUS)
#define IO_ENABLE_CHARGING      _IO(BATTERY_DRIVER_MAGIC, 4)
#define IO_DISABLE_CHARGING     _IO(BATTERY_DRIVER_MAGIC, 5)


BATTERY_STATUS bs;

fd=open("/dev/battery",O_RDONLY|O_NOCTTY|O_NONBLOCK);
ioctl(fd,IOR_BATTERY_STATUS,&bs);
if(bs.u16ChargeCurrent>10)
  return BATTERY_IS_CHARGING;

  if(bs.u16BatteryVoltage>4000)
    return 100;
  else if(bs.u16BatteryVoltage<3600)
    return 0;
  else return (bs.u16BatteryVoltage-3600)/4;


Reply via email to