对手持设备来说,电池的充放电曲线非常重要,一般由电池厂家提供。我们在开发的过程中会按照这个标准的充放电曲线设计程序。但设备的工作模式有很多种,为了测试在各模式下电池的放电情况,我们可以自己写个小工具记录下电池的放电状态,然后通过Excel或者Matlab绘制出其放电曲线。
WinCE下电池驱动分MDD和PDD两层,对于一般应用来说,只要实现PDD层,链接标准的MDD层LIB,生成电池驱动battery.dll即可。PDD层的代码实现可参考C:\WINCE600\PLATFORM\DEVICEEMULATOR\SRC\DRIVERS\BATTDRVR。
实现完电池驱动并添加了WinCE的电源管理组件后,WinCE系统就可以监测电池状态并给出相应的提示。同时应用程序可以调用GetSystemPowerStatusEx2()获取当前电池的信息。通常情况下,电池的信息主要是指当前的充电状态及电压值,如果硬件支持,还可以得到当前的充放电的电流值。
加入电池驱动后,任务栏和Shell中会有相应的状态提示,如下图。如果不需要Shell中的提示,可以设置注册表关闭。
在我们的平台上,收集并绘制了几种工作模式下的放电曲线,如下。
顺便也在M8上做了个测试,截图如下。
可以看到M8在播放电影时,电池的放电曲线要干净一些。
得到以上这些曲线后,软件设计就可以作为参考了。
附上一段Matlab的代码:
close all;
clear all;
data = load('D:\我的文档\桌面\电池放电曲线\30-08-08-20-BatLog.txt');
x = data(:,1);
y1 = data(:,2);
y2 = data(:,3);
figure(2);
subplot(2,1,1),plot(x,y1);
subplot(2,1,2),plot(x,y2);