2009-09-16 8 views
9

मैं क्या करना चाहता था बैटरी प्रतिशत पर एक लॉग लेना है। मुझे पता है कि लिनक्स में बराबर sysctl (hw.acpi.battery.life) है। हालांकि जब मैक ओएस एक्स में sysctl के आदमी के माध्यम से चला गया तो मुझे इसे खोजने के लिए समकक्ष कोड नहीं मिला। क्या कोई यह बता सकता है कि उद्देश्य सी का उपयोग करके इसे कैसे किया जाए। मैं sysctlbyname को कॉल कर सकता हूं लेकिन इसमें इसकी संरचना में इनपुट के रूप में नहीं है। कृपया मेरी मदद करेंमैक ओएस एक्स मैकबुक के बैटरी जीवन को प्रोग्रामिक रूप से कैसे प्राप्त करें?

+0

शायद "उद्देश्य-सी" टैग जोड़ने का प्रयास करें। मेरे पास अभी तक दुर्भाग्य से संपादित करने का प्रतिनिधि नहीं है। –

+0

[ओएसएक्स में बैटरी स्थिति] की संभावित डुप्लिकेट (http://stackoverflow.com/questions/272552/battery-status-in-osx) –

उत्तर

19

IOKit और IOPowerSources फ़ंक्शंस का उपयोग करने का प्रयास करें। आप ब्लॉब प्राप्त करने के लिए IOPSCopyPowerSourcesInfo() का उपयोग कर सकते हैं, और IOPSCopyPowerSourcesList() उसमें से एक CFArray निकालने के लिए, बिजली स्रोतों को सूचीबद्ध कर सकते हैं। अंत में आप शब्दकोश को पकड़ने के लिए IOPSGetPowerSourceDescription() का उपयोग कर सकते हैं।

आप कमांड लाइन का उपयोग कर सकते हैं, तो आप pmset आदेश

उपयोग कर सकते हैं तो जैसा:

$ pmset -g 
+1

आईओपीवर स्रोतों पर +1 –

+4

अधिक विशेष रूप से 'pmset -g batt' show बैटरी प्रतिशत है और स्थिति। – DebugXYZ

+0

@ डोमिनिक आपकी पोस्ट में अधिकांश लिंक मर चुके हैं। –

3

आप रूप में अच्छी तरह कमांड लाइन पर ioreg उपयोग कर सकते हैं। उदाहरण के लिए:

ioreg -l -w0 |grep MaxCapacity 
0

बैटरी की स्थिति पर कुछ अधिक जानकारी प्राप्त करने का एक और तरीका NSTask उपयोग करने के लिए निष्पादित करने के लिए किया जाता है:

ioreg -l -w0 |grep CurrentCapacity 

आप वर्तमान बैटरी की स्थिति है, जो अधिकतम क्षमता की तुलना में किया जा सकता है देता है तर्क के रूप में SPPowerDataType के साथ system_profiler कमांड।

बैटरी जानकारी::

Model Information: 
     Serial Number: W01396THJD3LA 
     Manufacturer: SMP 
     Device Name: bq20z451 
     Pack Lot Code: 0 
     PCB Lot Code: 0 
     Firmware Version: 201 
     Hardware Revision: 000a 
     Cell Revision: 165 
    Charge Information: 
     Charge Remaining (mAh): 5013 
     Fully Charged: Yes 
     Charging: No 
     Full Charge Capacity (mAh): 5086 
    Health Information: 
     Cycle Count: 72 
     Condition: Normal 
    Battery Installed: Yes 
    Amperage (mA): -300 
    Voltage (mV): 12303 

प्राप्त करने के लिए क्या आप विशेष रूप से, आप या तो उचित लाइनों इस आदेश के साथ पार्स सकता है, या उत्पन्न एक plist: अपने Mac पर, यह मेरे निम्नलिखित परिणाम देता है

$ system_profiler SPPowerDataType -xml> BatteryInfo.plist

इससे विशिष्ट कुंजी के आधार पर मानों को पुनर्प्राप्त करना आसान हो जाएगा।