Elisp之获取PC电池状态(二十八)

news2024/10/5 20:25:15

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

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)

<4>.head line最终状态

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/883051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BTC转移案例分析

比特币 / 地址 / 3LyBT9iuka23wgRnYS88QggNw8gC15ntTC — Blockchair 涉及金额&#xff1a;10BTC 案例背景&#xff1a;存入了一定数量的BTC&#xff0c;前几天发现钱包空了&#xff0c;里面预存的BTC丢失了 解决方案&#xff1a;跟踪交易记录&#xff0c;交易所协助查询&am…

xarray 简易体会与实现

1 基础原理 xarray1主要由 xarray 结点组成&#xff0c;xarray 结点主要由槽位&#xff08;即指针&#xff09;、父节点指针等组成。xarray 根据整型索引组织 xarray 结点实现对目标值的高效存、查、删操作。 此文以 存查删等流程对应源码2具体实例 —— xarray 结点槽位数 …

Databend 开源周报第 106 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 数据脱敏 Data…

spring Initializr快速创建项目

spring Initializr快速创建项目 创建创建完成后 创建 勾选依赖 创建完成后

【2022吴恩达机器学习课程视频翻译笔记】3.3代价函数公式

忙了一阵子&#xff0c;回来继续更新 3.3 代价函数公式 In order to implement linear regression. The first key step is first to define something called a cost function. This is something we’ll build in this video, and the cost function will tell us how well…

SMART PLC 64位双精度浮点数转32位单精度浮点数(Double_TO_Float)

有关博途PLC对位、字节、字元素的拆分和合并,请参看下面文章链接: 博途PLC 位/字/字节 Bit/ Word/Byte拆分与合并_博途的bit_RXXW_Dor的博客-CSDN博客有时候我们需要将分散分布的开关量信号组合为一个整体比如一个字节再完成发送,或者一些报警联锁控制,组合为一个字方便触…

原型模式 Prototype Pattern 《游戏编程模式》学习笔记

原型的定义 用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。 举个例子 假设我现在要做一款游戏&#xff0c;这个游戏里有许多不同种类的怪物&#xff0c;鬼魂&#xff0c;恶魔和巫师。这些怪物通过“生产者”进入这片区域&#xff0c;每种敌人…

VR/AR眼镜方案,MTK联发科平台智能眼镜安卓主板设计方案

随着人工智能在不同领域的逐渐深入&#xff0c;人们对一款产品的需求不再局限于某种单一的功能或单一场景&#xff0c;尤其是在工业医疗等专业领域&#xff0c;加快数字化转型才能实现产业的升级。 AR智能眼镜&#xff0c;是一个可以让现场作业更智能的综合管控设备。采用移动…

实验三 图像分割与描述

一、实验目的&#xff1a; &#xff08;1&#xff09;进一步掌握图像处理工具Matlab&#xff0c;熟悉基于Matlab的图像处理函数。 &#xff08;2&#xff09;掌握图像分割方法&#xff0c;熟悉常用图像描述方法。 二、实验原理 1.肤色检测 肤色是人类皮肤重要特征之一&#xff…

Springboot 实践(4)swagger-ui 测试controller

前文项目操作&#xff0c;完成了项目的创建、数据源的配置以及数据库DAO程序的生成与配置。此文讲解利用swagger-ui界面&#xff0c;测试生成的数据库DAO程序。目前&#xff0c;项目swagger-ui界面如下&#xff1a; 以”用户管理”为例&#xff0c;简单讲述swagger-ui测试数据库…

家纺行业小程序商城搭建指南

家纺行业作为一个不可或缺的消费领域&#xff0c;近年来备受关注。随着互联网的发展&#xff0c;小程序商城成为家纺行业拓展市场的新利器。搭建一个家纺行业小程序商城并不是一件困难的事情&#xff0c;只需要按照以下几个步骤进行操作&#xff0c;就能轻松上手。 首先&#x…

软件测试52讲-学习笔记

测试基础知识篇&#xff08;11讲&#xff09; 01 你真的懂测试吗&#xff1f;从“用户登录”测试谈起 测试用例设计框架 基于功能性需求和非功能性需求思考&#xff1a; 功能性需求使用等价类划分、边界值分析、错误推断法设计用例 非功能性需求考虑安全&#xff08;信息的保存…

Postgresql源码(112)plpgsql执行sql时变量何时替换为值

相关 《Postgresql源码&#xff08;41&#xff09;plpgsql函数编译执行流程分析》 《Postgresql源码&#xff08;46&#xff09;plpgsql中的变量类型及对应关系》 《Postgresql源码&#xff08;49&#xff09;plpgsql函数编译执行流程分析总结》 《Postgresql源码&#xff08;5…

【每日一题】—— B - Who is Saikyo?(AtCoder Beginner Contest 313)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

线性表,双向链表,静态链表,循环链表(约瑟夫环)

目录 什么是线性表&#xff08;线性存储结构&#xff09; 顺序存储结构和链式存储结构 前驱和后继 顺序表&#xff08;顺序存储结构&#xff09;及初始化详解 顺序表的初始化 双向链表及创建&#xff08;C语言&#xff09;详解 双向链表的创建 静态链表及其创建&#x…

Ant Design Mobile是什么?

在当今的数字时代&#xff0c;移动应用程序和网页设计已经成为各行各业的重要组成部分。用户界面的设计直接影响到用户体验和产品的成功。为了帮助设计师在移动设计领域更好&#xff0c;Antdesignmobile应运而生。Antdesignmobile是蚂蚁金服的移动UI设计语言和框架&#xff0c;…

Android进阶之多级列表

遇到一个需求需要显示多级列表&#xff0c;因为界面是在平板上的&#xff0c;所以层级是从左向右往下排的&#xff0c;类似于 我当时的写法是在xml布局里一个个RecyclerView往下排的 当然前提是已经规定好最大的层级我才敢如此去写界面&#xff0c;如果已经明确规定只有两级或…

回归预测 | MATLAB实现GRNN广义回归神经网络多输入多输出预测

回归预测 | MATLAB实现GRNN广义回归神经网络多输入多输出预测 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现GRNN广义回归神经网络多输入多输出预测&#xff0c;输入10个特征&#x…

每日一题——合并二叉树

题目 已知两颗二叉树&#xff0c;将它们合并成一颗二叉树。合并规则是&#xff1a;都存在的结点&#xff0c;就将结点值加起来&#xff0c;否则空的位置就由另一个树的结点来代替。例如&#xff1a; 两颗二叉树是: Tree 1 Tree 2 合并后的树为 数据范围&#xff1a;树上节点数…

【笔试题心得】排序算法总结整理

排序算法汇总 常用十大排序算法_calm_G的博客-CSDN博客 以下动图参考 十大经典排序算法 Python 版实现&#xff08;附动图演示&#xff09; - 知乎 冒泡排序 排序过程如下图所示&#xff1a; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻…