簡介: CSDN博客專家,專注Android/Linux系統,分享多mic語音方案、音視頻、編解碼等技術,與大家一起成長!
優質專欄:Audio工程師進階系列【原創干貨持續更新中……】🚀
人生格言: 人生從來沒有捷徑,只有行動才是治療恐懼和懶惰的唯一良藥.
1.前言
本篇目的:在Emacs獲取電池是否充電 、電池電量、電池剩余多長時間關機等狀態。
2. V1.0 在mode line中設置顯示電池狀態
;;每次執行完,需要執行此句才能生效
(display-battery-mode 1);;顯示電池百分比,剩余時間,是否充電狀態.
(setq battery-mode-line-format " Bty:%p% [%t] %b")(setq battery-mode-line-format " Battery:%p% [%t] %L");;充電或放電的電流
(setq battery-mode-line-format " Battery:%r");;電流容量(mAh或mWh)
(setq battery-mode-line-format " Battery:%c")(setq battery-mode-line-format " Battery:%B");;顯示電池百分比.
(setq battery-mode-line-format " Battery:%p%");;電池顯示可用時間.
(setq battery-mode-line-format " Battery:%t");;是否充電狀態:如果是充電顯示:"on-line"; 沒有充電,顯示"off-line".
(setq battery-mode-line-format " Battery:%L");;如果是充電顯示:"+"號; 沒有充電,什么也不顯示,耗電狀態是:"-"號.
(setq battery-mode-line-format " Battery:%b");;充電預計在多長時間充滿,可以用小時,分鐘,秒來計算.
(setq battery-mode-line-format " Battery:%h %m %s")
3.battery-status-function方式獲取電池狀態
(battery-format battery-echo-area-format (funcall battery-status-function))
4.自定義獲取PC電池各種狀態
(funcall battery-status-function)參數解釋
(funcall battery-status-function)
返回了一個關聯列表,其中包含了關于電池狀態的信息。每個鍵值對表示一個特定的屬性和對應的值。
根據給出的鍵值對,這是對照表解釋每個鍵的意義:
- 鍵
99
:電池剩余容量百分比 - 鍵
114
:電池當前功耗 - 鍵
76
:電源接入狀態(“on-line” 表示接入電源,“off-line” 表示未接入電源) - 鍵
66
:充電狀態(“charging” 表示正在充電,“discharging” 表示未充電) - 鍵
98
:電池充電等級符號(例如 “+” 表示正在充電,“-” 表示正在放電,“=” 表示已充滿) - 鍵
100
:估計的剩余時間(如果不可用,則為 “N/A”) - 鍵
112
:電源插頭狀態(“0” 表示未插入電源插頭,“1” 表示插入電源插頭) - 鍵
115
:電池電壓 - 鍵
109
:最大電池容量 - 鍵
104
:電池溫度
每個鍵對應的值則提供了相應屬性的具體數值或狀態,了解了鍵值以后,根據每個鍵值或電池的狀態。
<1>.調用(funcall battery-status-function)查看鍵值
<2>. v1.0 獲取電池電量、電池狀態、沖電時間等狀態
(display-battery-mode 1)
(defun display-battery-info ()(setq battery-info (funcall battery-status-function))(when battery-info(let ((battery-level (cdr (assoc 112 battery-info)))(battery-status (cdr (assoc 98 battery-info)))(battery-charge-time (cdr (assoc 116 battery-info)))(battery-power-consumption (cdr (assoc 114 battery-info)))(battery-charge-state (cdr (assoc 76 battery-info)))(battery-voltage (cdr (assoc 115 battery-info)))(battery-temperature (cdr (assoc 104 battery-info))))(message "電池電量:%s%% 電池狀態:%s 沖電/剩余時間: %s 功耗:%s 充電狀態:%s 電池電壓:%s 電池溫度:%s" battery-level battery-status battery-charge-time battery-power-consumption battery-charge-state battery-voltage battery-temperature))))(display-battery-info)
打印:
<3>. v2.0 獲取電池電量、電池狀態、沖電時間等狀態
(display-battery-mode 1)
(funcall battery-status-function)
;;v1.0
(defun display-battery-info ()(setq battery-info (funcall battery-status-function))(when battery-info(let ((battery-level (cdr (assoc 112 battery-info)))(battery-status (cdr (assoc 98 battery-info)))(battery-charge-time (cdr (assoc 116 battery-info)))(battery-power-consumption (cdr (assoc 114 battery-info)))(battery-power-access (cdr (assoc 76 battery-info)))(battery-voltage (cdr (assoc 115 battery-info)))(battery-charge-state (cdr (assoc 66 battery-info))) )(message "電池電量:%s%% 電池符號:%s 沖電/剩余時間: %s 功耗:%s 電源插入狀態:%s 電壓:%s 充電狀態:%s" battery-level battery-status battery-charge-time battery-power-consumption battery-power-access battery-voltage battery-charge-state))))(display-battery-info)