Como a Bateria de Coco determina a capacidade de design de uma bateria do Macbook?

11

A bateria de um macbook possui três números de carga:

  1. A carga atual
  2. A carga máxima
  3. A capacidade de design

Mesmo que um Macbook permaneça conectado, o OS X não tenta cobrar - desde que (1) seja 95% de (2), e é por isso que a porcentagem na barra de notificação geralmente fica entre 95% e 100%.

Esses dois números contrastam com a "capacidade de design" da bateria. A bateria de coco é o único software que eu descobri que relata a "capacidade de design" da bateria do Macbook.

Essa capacidade de design não aparece nas especificações da Apple, nas Informações do sistema ou no everymac.com.

Como a bateria de coco determina a capacidade de design de uma bateria?

Calaf
fonte
Os menus do iStat também exibem a capacidade de design da bateria
talvez seja possível
6
E aqui eu pensei que uma bateria de coco era algo como uma célula de limão . Que decepção.
Curinga

Respostas:

27

Você pode encontrar essas informações junto com muitas outras informações da bateria e / ou do sistema no comando

ioreg

Este comando, de acordo com sua página de manual, faz:

O ioreg exibe o registro do Kit de E / S. Ele mostra a estrutura de registro hierárquica 1 como uma árvore invertida.

1 : hierárquico [sic]

Usando um filtro pelo nome da classe ( AppleSmartBatterypara bateria) para obter apenas informações relacionadas à bateria:

$ ioreg -brc AppleSmartBattery
-b    Show the object name in bold.
-r    Show subtrees rooted by objects that match the specified criteria.
       If none of -c, -k, or -n are supplied, -r has no effect.
-c    Show the object properties only if the object is an instance of, or
       derives from, the specified C++ class (e.g. IOService).

De man ioreg.

Irá imprimir algo como isto:

$ ioreg -brc AppleSmartBattery
+-o AppleSmartBattery  <class AppleSmartBattery, id 0x100000254, registered, ma$
{
  "ExternalConnected" = Yes
  "TimeRemaining" = 0
  "InstantTimeToEmpty" = 65535
  "ExternalChargeCapable" = Yes
  "FullPathUpdated" = 1464849055
  "CellVoltage" = (4298,4292,4299,0)
  "Voltage" = 12889
  "BatteryInvalidWakeSeconds" = 30
  "AdapterInfo" = 0
  "MaxCapacity" = 5524
  "PermanentFailureStatus" = 0
  "Manufacturer" = "SMP"
  "Location" = 0
  "CurrentCapacity" = 5524
  "LegacyBatteryInfo" = {"Amperage"=0,"Flags"=5,"Capacity"=5524,"Current"=5$
  "FirmwareSerialNumber" = 1
  "BatteryInstalled" = Yes
  "PackReserve" = 200
  "CycleCount" = 318
  "DesignCapacity" = 6330
  "OperationStatus" = 58371
  "ManufactureDate" = 17726
  "AvgTimeToFull" = 65535
  "BatterySerialNumber" = "D864403T3UVFVN7A6"
  "BootPathUpdated" = 1464353527
  "PostDischargeWaitSeconds" = 120
  "Temperature" = 3096
  "UserVisiblePathUpdated" = 1464849490
  "InstantAmperage" = 0
  "ManufacturerData" = <000000000702000a03890000034a34340330304103534449032$
  "MaxErr" = 1
  "FullyCharged" = Yes
  "DeviceName" = "bq20z451"
  "IOGeneralInterest" = "IOCommand is not serializable"
  "Amperage" = 0
  "IsCharging" = No
  "DesignCycleCount9C" = 1000
  "PostChargeWaitSeconds" = 120
  "AvgTimeToEmpty" = 65535
}

O campo que você está procurando é DesignCapacity. Por conveniência, filtre-o com grep(unidade é miliamperes-hora ou mAh):

$ ioreg -brc AppleSmartBattery | grep DesignCapacity
      "DesignCapacity" = 6330

Seu DesignCapacitycampo pode não ser exibido 6330como seu valor. Estou usando um rMBP de 13 "em meados de 2014, mas você pode estar usando outro sistema com diferentes classificações de bateria.

Além das informações da bateria, ioregpode ser usado para descobrir mais sobre o seu sistema e outros periféricos - um pouco como uma ferramenta de Informações do Sistema da linha de comando.


Se você está procurando uma implementação de código desse comando, dê uma olhada no SystemKit da Beltex no Github . É uma das melhores bibliotecas Swift que eu conheço.

Isenção de responsabilidade: não afiliado ao SystemKit ou Beltex. Apenas um usuário feliz do SystemKit.

talvez talvez
fonte