बैटरी चार्ज स्तर के आधार पर घटना


11

मुझे अभी तक कुछ भी नहीं मिला है इसलिए मैं उम्मीद कर रहा था कि शायद यहाँ किसी को एक विचार था।

मैं एक निश्चित चार्ज स्तर तक पहुंचने वाले Apple लैपटॉप पर बैटरी पर आधारित एक भी किक करना चाहता हूं, या जब बैटरी पूरी तरह से चार्ज हो जाती है।

मुझे पता है कि मैं समय-समय पर कुछ चला सकता हूं, बैटरी के स्तर की जांच कर सकता हूं, और यह तय कर सकता हूं कि क्या करना है, लेकिन मैं संभव हो तो संचालित घटना को प्राथमिकता देता हूं।

जवाबों:


5

पावर मैनेजर मुफ़्त नहीं है, लेकिन बैटरी स्तर (आंतरिक या यूपीएस) के आधार पर ट्रिगरिंग घटनाओं का समर्थन करता है। ईवेंट स्क्रिप्ट चला सकते हैं, एप्लिकेशन लॉन्च कर सकते हैं या शट डाउन करने जैसे कार्य कर सकते हैं।

पावर मैनेजर ईवेंट संचालित है और बैटरी परिवर्तनों के लिए पराग नहीं करता है।

इसके बजाय पावर मैनेजर OS X की IOKit लेयर में हुक करता है और हार्डवेयर से अपडेट की प्रतीक्षा करता है। जब कोई भी लॉग इन नहीं होता है, तो घटनाओं को ट्रिगर किया जा सकता है; यह एक सक्रिय उपयोगकर्ता पर निर्भर नहीं करता है।

पावर मैनेजर - बची हुई बैटरी पर स्क्रिप्ट चलाएँ

अंतर्निहित अनुसूची सहायक कार्य प्रदर्शन पर ध्यान केंद्रित करते हैं जब बैटरी एक विशेष स्तर तक गिरती है, लेकिन उन्हें बैटरी प्रतिशत या शेष समय में उगने के लिए जांचने के लिए ट्विक किया जा सकता है।

ये दोनों पोस्ट यूपीएस बिजली स्रोतों के बारे में बात करते हैं, लेकिन वे आसानी से आपके मैकबुक की आंतरिक बैटरी के लिए अनुकूलित होते हैं:

प्रकटीकरण: मैं पावर मैनेजर के पीछे एक सॉफ्टवेयर इंजीनियर हूं।


3

मैं चाहता हूं कि यह ओएस आधारित हो, इसलिए मुझे इंटरनेट कनेक्शन या ब्राउज़र ओपन आदि की आवश्यकता नहीं है। बस पृष्ठभूमि में ऐसा कुछ हो सकता है

इसे करने का सबसे आसान तरीका एक एप्लिकेशन के साथ होगा, लेकिन यहां इसे केवल अंतर्निहित ओएस कमांड के साथ कैसे करना है। मैं जानता हूं कि आप इसे इवेंट संचालित करना चाहते हैं, लेकिन मुझे यकीन नहीं है कि इसे कैसे पूरा किया जाए, इसलिए यहां बैटरी स्तर की जांच करने का एक तरीका है, फिर कुछ और करना अगर यह एक सीमा से ऊपर / नीचे है।

आप एक launchdप्रक्रिया पर विचार कर सकते हैं , यह मूल रूप से एक निर्धारित कार्य है जो हर xमिनट चलता है । वे अक्सर उन्नत उपयोगकर्ताओं द्वारा उपयोग किए जाते हैं, लेकिन सेट करना बहुत मुश्किल नहीं है। आप किसी .plist फ़ाइल के साथ लॉन्च शेड्यूल किए गए कार्य को कॉन्फ़िगर करते हैं, जिसे आप इस निर्देशिका में रखते हैं: Macintosh HD\Library\LaunchDaemonsऔर यह है कि आप .plist फ़ाइल को कैसे बनाते हैं;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<true/>
<key>ExitTimeOut</key>
<integer>120</integer>
<key>Label</key>
<string>com.me.BatteryInfo</string>
<key>ProgramArguments</key>
<array>
    <string>/Users/yourusername/batt.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>

यदि आप ऊपर बताए com.me.BatteryInfoगए LaunchDaemonsफ़ोल्डर में उस फ़ाइल को सहेजना चाहते हैं, तो यह एक निर्धारित कार्य बनाएगा जो हर 30 मिनट में चलता है। संख्या, 1800सीधे ऊपर, </dict>सेकंड में समय है कि आप कितनी बार कार्य चलाना चाहते हैं। जहां यह कहता <string>/Users/yourusername/batt.sh</string>है कि आप यह निर्दिष्ट करते हैं कि कौन सी स्क्रिप्ट अनुसूची पर चलती है। आपको छोड़ना <string>और </sting>बरकरार रखना होगा।

रेखा <string>com.me.BatteryInfo</string>निर्धारित कार्य का अद्वितीय नाम है। यदि आप एक से अधिक बनाने जा रहे हैं, तो सुनिश्चित करें कि प्रत्येक .plist का यहाँ एक अनूठा नाम है।

अगली चीज़ जो आपको करने की ज़रूरत है वह .plist के स्वामित्व को बदलना है root। यह एक सुरक्षा सुविधा के रूप में आवश्यक है (सॉफ़्टवेयर / उपयोगकर्ताओं को अनुसूचित दुर्भावनापूर्ण कार्य बनाने के लिए रोकना, मुझे लगता है)। फ़ाइल के स्वामित्व को बदलने के लिए, sudo chown root \Library\LaunchDaemons\yourtask.plist(अपने द्वारा बनाए गए .plist के वास्तविक फ़ाइल नाम के साथ yourtask.plist को बदलें)। यह कार्य आपको पासवर्ड के लिए संकेत देगा।

अब आपको स्क्रिप्ट बनाने की ज़रूरत है जो समय-समय पर चलेगी। कंप्यूटर को क्या करना है, यह बताने के लिए आपको .sh फ़ाइल (बैश स्क्रिप्ट) बनाने की आवश्यकता है। .Sh फ़ाइल बनाने के लिए, प्रोग्रामर टेक्स्ट एडिटर, जैसे कि सबलाइम टेक्स्ट या कोमोडो एडिट खोलें । पाठ संपादित का उपयोग न करें, क्योंकि यह अक्सर आपकी फ़ाइलों में पाठ जोड़ता है जो आपकी स्क्रिप्ट में हस्तक्षेप करेगा। टेक्स्ट एडिट को वास्तव में कोड के लिए उपयोग नहीं किया जाना चाहिए।

निम्नलिखित कोड के साथ एक स्क्रिप्ट (.sh फ़ाइल) बनाएं;

#!/bin/sh

percent=$(ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.3f";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}')

if [ $percent > 95 ]
    then
        echo 'charged.'
fi
exit 0

echo 'charged.'जब आप बैटरी चार्ज करना चाहते हैं, तो टर्मिनल कमांड के साथ बदलें । open /Applications/Notes.appनोट्स एप्लिकेशन को खोलेगा; आप एक अलग एप्लिकेशन खोलने के लिए डायरेक्टरी बदल सकते हैं।

$percent > 95यह अगली पंक्ति को केवल तब चलाता है जब बैटरी 95चार्ज से अधिक हो । आप इसे जो चाहें बदल सकते हैं। यहां बैटरी स्तर अक्सर मेनू पट्टी में शीर्ष पर प्रदर्शित होने के लिए थोड़ा अलग होगा। अगर आप 'बैटरी पूरी तरह चार्ज होने पर' चलाना चाहते हैं तो मैं इसे '95' छोड़ने की सलाह देता हूं । अगर आप चाहते हैं कि जब आपकी बैटरी उदाहरण के लिए 20% से नीचे जाए तो उसे चलाने के लिए कार्य को बदल दें$percent < 20

नोट: क्योंकि यह एक शेड्यूल किया गया कार्य है, इसलिए आपकी स्क्रिप्ट हर xमिनट पर चलेगी । इसका मतलब है कि यदि आप open \Applications\Notes.appअपनी स्क्रिप्ट के अंदर रखते हैं, तो नोट्स एप्लिकेशन हर xमिनट (यदि आपकी बैटरी चार्ज हो जाती है) शुरू हो जाएगी

अगर कोई लॉग इन नहीं है तो भी यह कार्य चलेगा।

मुझे पता है कि आपने यह सवाल कुछ समय पहले पूछा था, लेकिन उम्मीद है कि इससे किसी को मदद मिलेगी।


2

यह मैक-विशिष्ट नहीं है, लेकिन मोज़िला ऑरोरा ने बिल्ट-इन एपीआई बनाया है जिसमें बैटरी से संबंधित विभिन्न प्रकार के कार्य शामिल हैं। कोई भी बैटरी की स्थिति का पता लगा सकता है (चाहे वह चार्ज हो या नहीं), बैटरी को डिस्चार्ज / चार्ज करने में कितना समय लगेगा और इसका स्तर क्या होगा। बैटरी स्तर एक निश्चित बिंदु पर होने पर फ़ंक्शन को कॉल करने के लिए एक EventListener को जोड़ने के तरीके का एक सरल उदाहरण है।


मैं चाहता हूं कि यह ओएस आधारित हो, इसलिए मुझे इंटरनेट कनेक्शन या ब्राउज़र ओपन आदि की आवश्यकता नहीं है। बस पृष्ठभूमि में ऐसा कुछ हो सकता है।
फॉल्टीजगलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.