控制Windows Mobile的LED 之一:基础函数

      操作LED的API在coredll.dll里面有,只是在SDK里面没有声明。首先,包含nled.h头文件以及声明两个函数(取得LED信息和设置LED状态)
# include < nled.h > extern " C "
{
       BOOL NLedGetDeviceInfo(INT nID, PVOID pOutput);
       BOOL NLedSetDevice(INT nID, PVOID pOutput);
}

(1)下面的函数可以取得设备上LED总数,如果你的系统支持振动,那么振动电机也是被当作一个LED来对待的
//============================================//
//   功能:   获得设备上LED总数目
//   参数:   无
//   返回:   设备上LED总数目
//   日期:   2009/03/05.10:40--2009/03/05.17:45
//============================================//
int GetLedCount()
{
      NLED_COUNT_INFO nci;
      int wCount = 0;

      if(NLedGetDeviceInfo(NLED_COUNT_INFO_ID, (PVOID) &nci))
            wCount = (int) nci.cLeds; 
      return wCount;

(2)下面的函数设置LED状态
//============================================//
//   功能:   设置设备上LED状态
//   参数:   wLed,wStatus
//   (入口):  wLed      : 表示LED number. The first LED is zero (0).
//   (入口):  wStatus : 表示LED状态0(关闭),1(开启),2(闪烁)
//   返回:   无
//   日期:   2009/03/05.10:40--2009/03/05.17:45
//============================================//
void SetLedStatus(int wLed, int wStatus)
{
      NLED_SETTINGS_INFO nsi;
      nsi.LedNum = (INT) wLed;
      nsi.OffOnBlink = (INT) wStatus;

      NLedSetDevice(NLED_SETTINGS_INFO_ID, &nsi);
}

以操作LED0为例:
关闭: SetLedStatus(0, 0);
点亮: SetLedStatus(0, 1);
闪烁: SetLedStatus(0, 2);

(3)设置电机震动状态
//================================================================//    
//   功能:   设置振动
//   参数:   bStart
//   (出口) bStart: TRUE为开始振动,FALSE为停止振动
//   返回:   无
//   日期:   2009/03/26.9:40--2009/03/26.21:45    
//================================================================//
void StartStopVibrate(BOOL bStart)
{
      NLED_SETTINGS_INFO settings;

      memset(&settings,0,sizeof(NLED_SETTINGS_INFO));
      settings.LedNum   = 1;

      if(bStart)
          settings.OffOnBlink = 1;
      else
          settings.OffOnBlink = 0;
      NLedSetDevice(NLED_SETTINGS_INFO_ID, &settings);
}

 

参考原文:http://blog.csdn.net/li_guotao/archive/2009/07/22/4370271.aspx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值