最近在开发基于WINCE6.0+2443的GPS产品的时候,发现我的机器在电池供电的时候,开机之后,如果没有其他动作,那么大概10分钟左右,我的系统会进入sleep的状态,后来发现我在实现电池驱动的时候把函数BatteryPDDGetStatus()下面部分注释掉了

memcpy(pstatus, &gpStatus->sps, sizeof(*pstatus));

*pfBatteriesChangedSinceLastCall = gpStatus->fChanged;

if(*pfBatteriesChangedSinceLastCall) {

gpStatus->fChanged = FALSE; // reset changed flag if it's set

}

为什么注释了上面这部分代码就会出现这个问题了,我们来看看电池驱动MDD层BatteryAPIGetSystemPowerStatusEx2()的定义:

上图的第117行用来判断系统当前状态是否有AC供电还是电池供电,目前我还没有完全搞清楚为什么是AC供电的情况下,系统就不会进入sleep,我想是和上图中调用的BatteryAPIStopwatch()函数有很大的关系。我后来在BatteryPDDGetStatus()函数返回之前加了下面这句:

pstatus->ACLineStatus =AC_LINE_ONLINE;

这样即使是在电池供电的情况下(这时候,是我做了个假动作来告诉BatteryAPIGetSystemPowerStatusEx2()函数:系统一直是AC供电),这就证明了在AC供电的情况下系统不会进入sleep状态,但到底是为什么呢?有待于后面去彻底搞清楚了,如果大家知道的,麻烦大家告知。

上面提到说加pstatus->ACLineStatus =AC_LINE_ONLINE;这行语句可以不让系统进入sleep,但对于一个需要电池供电的产品来说是不能这样解决这个问题的,因为应用程序需要根据pstatus->ACLineStatus来判断当前是否在充电,以便告诉用户的充电状态。后来经过上网查资料和CSDN各位高手的指点,我在BatteryPDDGetStatus()函数返回之前加入了下面的代码就解决了这个问题:

我为什么加了if(NoEnterSleepStatus >= 50)这个判断呢,就是不想每次调用(隔5s调用一次)BatteryPDDGetStatus()函数的时候就去执行上面的动作,只要赶在系统进入sleep之间timeout之前调用了上面的代码就可以阻止系统进入sleep状态。

在这里有个疑问,网上有很多网友说通过定时调用SystemIdleTimerReset()函数也可以阻止系统进入sleep状态,但我在上面的位置加了下面的代码后也无法阻止系统进入sleep状态,很奇怪,希望知者告知,谢谢啊

WINCE6.0+2443系统大概过10分钟进入sleep状态相关推荐

  1. WINCE5.0+S3C2443系统每隔几分钟会自动关闭LCD显示

    这几天在调试WINCE5.0+S3C2443系统的时候,发现大概每隔6分钟的时候,系统就会自动关闭LCD屏的显示,这时候如果去点击触摸屏就会恢复显示.刚开始我还以为是系统进入了sleep状态了,发现在 ...

  2. 业界首个声纹识别与音频检索系统上线,10分钟搭建产业级应用

    随着深度学习技术的升级与产业的发展,智能语音交互已成为了我们日常生活中一个重要的组成部分,并广泛应用在地图导航播报.智能客服回访.手机语音输入以及各类智能助手等应用场景中,可以说语音已成为了人与机器之 ...

  3. boseqc35能不能连电脑_连win7都用不了?轻量级LXLE系统,只要10分钟,旧电脑也能运行如飞!...

    想必每个人家里都有一台旧电脑吧,其实它放在家里真的是很尴尬. 要扔掉吗?好像没这个资本. 要留着当观赏?简直就是碍地方. 要不升级下硬件?那我还不如买新的. 所以,旧电脑该何去何从? 其实说实话,很多 ...

  4. 惠普服务器win10安装系统教程,惠普笔记本U盘装Win10系统图文教程 10分钟学会重装系统...

    U盘装系统,是电脑爱好者"老生常谈"的一个话题,在"电脑百事网"能找到许多类似的教程文章,不过今天的教程与往期有些不一样,首先是制作启动U盘,选用了一些更安全的 ...

  5. 上线周期缩短上百倍!NLP流水线系统发布,10分钟搭建检索、问答等复杂系统...

    伴随着产业智能化升级的浪潮,企业对灵活可定制的智能NLP系统有着广泛需求.例如,保险公司希望通过智能客服平台向客户提供24小时问答服务,同时也想建设企业内搜平台向员工提供精准.高效的搜索服务.然而众多 ...

  6. 0基础自学软件测试,10分钟从测试9个阶段带你入门【建议收藏】

    0基础如何快速入门软件测试,本文从测试九个阶段,附带9张各阶段测试路线图带你走进软件测试,废话不多说直接上干货! 一.软件测试视频第一阶段-前置基础知识 1.学习目标: 可掌握的核心能力: 1. 熟悉 ...

  7. WINCE6.0刷系统异常

    作者:LoongEmbedded 转自:http://blog.csdn.net/loongembedded/article/details/8956584 1.      刷系统异常现象 随着采用S ...

  8. WINCE6.0文件系统及存储管理器

    *******************************LoongEmbedded******************************** 作者:LoongEmbedded 时间:201 ...

  9. WINCE5.0+2443 camera中断不能进来的原因

    因为项目需要,我需要调试和完成WINCE5.0+2443系统和驱动的功能,在调试camera驱动的时候,发现一个很郁闷的问题,就是camera的中断一直进不来,因为我之前在WINCE6.0+2443系 ...

最新文章

  1. PDF数据提取------1.介绍
  2. python模块学习(四)
  3. 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★
  4. linux more 下一页_Linux学习笔记
  5. 我的 2021 年终总结
  6. leetcode 1438. 绝对差不超过限制的最长连续子数组(滑动窗口+treemap)
  7. java smp_什么是SMP系统
  8. 成为数据分析师需要具备的知识体系
  9. 渗透常用SQL注入语句合集
  10. DXP-2004软件安装
  11. 牛津大学VGG团队提出:改进遮挡检测的Tri-Layer插件 | BMVC 2022
  12. React中useEffect与生命周期钩子函数的对应关系
  13. 百度地图开发:Label文本居中
  14. 北斗卫星轨道有哪些?
  15. imagemagick gif制作
  16. 时隔一年半,我,一个卑微的前端初学者,又来写面经了
  17. 老鸟带你画tiled lines
  18. 在linux系统(CentOS 7)安装gurobi教程
  19. 交叉表、行列转换和交叉查询经典
  20. Android如何自定义一个心电图控件?

热门文章

  1. 009_logback本地Appender
  2. html中加session,Html中如何获取session中的值(如登录后显示XX欢迎您!)
  3. 10 vm 添加串口_STM32的串口通信
  4. Android应用开发-快速入门
  5. Android多媒体编程
  6. valorant服务器维护啥情况,valorant连不上服务器怎么办 valorant连不上服务器解决方法介绍...
  7. java压测请求线程数_程序员撕开京东 618 大促压测的另一面 | 原力计划
  8. dr. unarchiver_P160 四季可穿,数仙女尽折腰!醉高版本Dr马丁靴女2020秋冬新款牛筋底1460英伦风8孔系带复古机车军靴真皮短靴马丁靴...
  9. 在linux下Qt使用sqlite,QT中SQLite使用【实例】
  10. php链接页面时加..,怎么给一个PHP密码访问页面加超链接